1 |
name: Build Extensions |
2 |
|
3 |
on: |
4 |
push: |
5 |
branches: [main] |
6 |
schedule: |
7 |
- cron: "0 0 * * *" |
8 |
|
9 |
jobs: |
10 |
build: |
11 |
runs-on: ubuntu-latest |
12 |
if: github.event_name != 'push' || ( startsWith(github.event.head_commit.message, 'chore(extensions') || startsWith(github.event.head_commit.message, 'build(extensions') ) |
13 |
|
14 |
steps: |
15 |
- uses: actions/checkout@v4 |
16 |
with: |
17 |
submodules: "true" |
18 |
|
19 |
- name: Use Node.js 21.x |
20 |
uses: actions/setup-node@v4 |
21 |
with: |
22 |
node-version: 21.x |
23 |
|
24 |
- name: Install tools |
25 |
run: | |
26 |
sudo apt-get update; |
27 |
sudo apt-get install -y jq libarchive-dev gnupg; |
28 |
cd /tmp; |
29 |
git clone https://github.com/wahern/tarsum --depth=1; |
30 |
cd tarsum; |
31 |
make; |
32 |
sudo cp tarsum /usr/bin/tarsum; |
33 |
rm -fr /tmp/tarsum; |
34 |
|
35 |
- name: Build main project |
36 |
run: ./blazew build |
37 |
|
38 |
- name: Build extensions |
39 |
run: | |
40 |
cd extensions; |
41 |
bash ../scripts/build-extensions.sh; |
42 |
|
43 |
- name: Build index |
44 |
run: node scripts/extensions.js --mkindex |
45 |
|
46 |
- name: Prepare GPG keys for importing |
47 |
run: echo "${{ secrets.COMMIT_GPG_KEY }}" > private.key |
48 |
|
49 |
- name: Import GPG key |
50 |
run: gpg --import private.key |
51 |
|
52 |
- name: Cleanup after importing GPG key |
53 |
run: rm -f private.key |
54 |
|
55 |
- name: Commit and Push Changes |
56 |
run: | |
57 |
git config --global user.email "[email protected]" |
58 |
git config --global user.name "Ar Rakin" |
59 |
git config --global user.signingkey "6AE7B08C68169452" |
60 |
git config --global commit.gpgsign true |
61 |
git add extensions |
62 |
git commit -sm "chore(extensions): build extensions [skip ci]" |
63 |
git config pull.rebase false |
64 |
git pull origin main |
65 |
git push origin HEAD:main |