-
Notifications
You must be signed in to change notification settings - Fork 0
168 lines (142 loc) · 6.26 KB
/
checks.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will install Deno then run `deno lint` and `deno test`.
# For more information see: https://github.com/denoland/setup-deno
name: Checks
on:
push:
branches: ['main']
pull_request:
branches: ['main']
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Retrieve git dependencies
uses: actions/checkout@v3
with:
submodules: 'true'
token: ${{ secrets.GH_TOKEN }}
- name: Ignore if changes were automated
run: |
- name: Setup Deno
# uses: denoland/setup-deno@v1
uses: denoland/setup-deno@61fe2df320078202e33d7d5ad347e7dcfa0e8f31 # v1.1.2
with:
deno-version: v1.x
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Stash current dependencies
run: |
echo "Rename package.json and package-lock.json to .package.json and .package-lock.json so that they are not picked up by npm install"
mv package.json .package.json
mv package-lock.json .package-lock.json
- name: Install local dependencies
run: |
if git log -1 --pretty=%B | grep -q "AUTOMATED"; then
echo "Changes were automated, exiting"
exit 0
fi
if git log -1 --pretty=%B | grep -q "Chore"; then
echo "Changes were automated, exiting"
exit 0
fi
npm i --save-dev --force prettier-plugin-svelte prettier @typescript-eslint/parser @typescript-eslint/[email protected] eslint typescript prettier-plugin-svelte svelte
- name: Install global dependencies
run: |
if git log -1 --pretty=%B | grep -q "AUTOMATED"; then
echo "Changes were automated, exiting"
exit 0
fi
if git log -1 --pretty=%B | grep -q "Chore"; then
echo "Changes were automated, exiting"
exit 0
fi
npm i -g eslint prettier svelte
- name: Import submodules
run: |
if git log -1 --pretty=%B | grep -q "AUTOMATED"; then
echo "Changes were automated, exiting"
exit 0
fi
if git log -1 --pretty=%B | grep -q "Chore"; then
echo "Changes were automated, exiting"
exit 0
fi
git submodule update --init --recursive --remote
- name: Run Formatter, Linter, then Checks
run: |
if git log -1 --pretty=%B | grep -q "AUTOMATED"; then
echo "Changes were automated, exiting"
exit 0
fi
if git log -1 --pretty=%B | grep -q "Chore"; then
echo "Changes were automated, exiting"
exit 0
fi
sh ./scripts/fmt-lint-check.sh
- name: Restore dependencies
run: |
if git log -1 --pretty=%B | grep -q "AUTOMATED"; then
echo "Changes were automated, exiting"
exit 0
fi
if git log -1 --pretty=%B | grep -q "Chore"; then
echo "Changes were automated, exiting"
exit 0
fi
echo "Restore package.json and package-lock.json to their original names"
rm package.json package-lock.json
mv .package.json package.json
mv .package-lock.json package-lock.json
- name: Git Config
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Push results
run: |
if git log -1 --pretty=%B | grep -q "AUTOMATED"; then
echo "Changes were automated, exiting"
exit 0
fi
if git log -1 --pretty=%B | grep -q "Chore"; then
echo "Changes were automated, exiting"
exit 0
fi
echo "Adding changes..."
git add .
echo "Committing changes..."
git commit --allow-empty -m "AUTOMATED: Format, lint, and check"
echo "Pushing changes..."
git push origin main
- name: Push to deliver
run: |
echo "testing if on branch 'main'"
if [ "$(git rev-parse --abbrev-ref HEAD)" != "main" ]; then
echo "not on branch 'main', exiting"
exit 0
fi
if git log -1 --pretty=%B | grep -q "Chore"; then
echo "Changes were automated, exiting"
exit 0
fi
echo "Good, we're on main. Pushing to deliver..."
echo "Deleting old deliver branch"
git branch -D deliver || true
git push origin --delete deliver || true
echo "Creating new deliver branch"
git checkout --orphan deliver
git reset --hard
git commit --allow-empty -m "Initializing deliver branch"
echo "Merging main into deliver"
git merge main --strategy-option=theirs --allow-unrelated-histories -m "Merging main into gh-pages"
git pull origin main --allow-unrelated-histories
git add .
git commit --allow-empty -m "Merging main into deliver"
git push origin deliver