-
Notifications
You must be signed in to change notification settings - Fork 0
66 lines (58 loc) · 2.14 KB
/
Copy pathsyncbase.yml
File metadata and controls
66 lines (58 loc) · 2.14 KB
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
name: "Step 1, Sync generate.yml from BaseVM"
on:
schedule:
- cron: '0 1 * * *'
workflow_dispatch:
push:
branches:
- 'main'
paths:
- '.github/data/*'
- 'conf/*'
- '.github/workflows/syncbase.yml'
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
token: ${{ secrets.VM_TOKEN }}
- name: Using main branch
run: |
git switch main || (git fetch --all && git checkout -b main origin/main)
. conf/default.release.conf
echo "DEFAULT_RELEASE=$DEFAULT_RELEASE" >> $GITHUB_ENV
echo "ALL_RELEASES=\"$(ls conf/ | grep -v default | sed 's/.conf//g' | tr '\n' ',' | sed "s/,\$//" | sed 's/,/", "/g')\"" >> $GITHUB_ENV
git clone https://github.com/vmactions/base-vm.git
- name: Sync generate.yml
uses: anyvm-org/template-render@v0.0.4
with:
datafile: .github/data/datafile.ini
files: |
base-vm/.github/tpl/generate.tpl.yml : .github/workflows/generate.yml
- name: Commit and push changes
run: |
git add .github/workflows/generate.yml
git diff --cached --quiet && exit 0
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git commit -m "Sync from base-builder"
# Step 2 and the version bumper push to main within seconds of
# this job, so the ref can move between the rebase and the push
# -- GitHub then rejects with "cannot lock ref ... is at X but
# expected Y" and the run goes red even though the content is
# fine. Rebase and retry instead of failing.
pushed=""
for attempt in 1 2 3 4 5; do
git pull --rebase --autostash
if git push; then
pushed=yes
break
fi
echo "push rejected (attempt ${attempt}), retrying in ${attempt}s"
sleep "${attempt}"
done
if [ -z "$pushed" ]; then
echo "push still rejected after 5 attempts"
exit 1
fi