forked from servo/servo
-
Notifications
You must be signed in to change notification settings - Fork 0
70 lines (69 loc) · 2.78 KB
/
book-export.yml
File metadata and controls
70 lines (69 loc) · 2.78 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
65
66
67
68
69
70
name: Book Export
on:
push:
branches:
- main
jobs:
upstream:
# Run job only on servo/servo
if: github.repository == 'servo/servo'
runs-on: ubuntu-latest
environment:
name: book-sync
deployment: false
steps:
- name: Check out Servo
uses: actions/checkout@v6
with:
sparse-checkout: |
python/servo/platform/linux_packages
fetch-depth: '2'
- name: Check out Servo book
uses: actions/checkout@v6
with:
path: book
repository: 'servo/book'
token: ${{ secrets.BOOK_SYNC_TOKEN }}
- name: Check for changes
working-directory: python/servo/platform/linux_packages
id: changes
run: |
# Note: This check assumes the action only runs on `main`.
if git diff --quiet HEAD HEAD^ -- . ; then
echo "No changes detected, exiting."
echo "CHANGES=false" >> $GITHUB_OUTPUT
else
echo "Changes detected, exporting book."
./generate_pkg_list.sh apt/apt_common.txt > ${{github.workspace}}/book/src/building/linux_packages/apt_common.txt
./generate_pkg_list.sh apt/apt_ubuntu_only.txt > ${{github.workspace}}/book/src/building/linux_packages/apt_ubuntu_only.txt
./generate_pkg_list.sh dnf/dnf_base.txt > ${{github.workspace}}/book/src/building/linux_packages/dnf_base.txt
./generate_pkg_list.sh xbps/xbps_base.txt > ${{github.workspace}}/book/src/building/linux_packages/xbps_base.txt
echo "CHANGES=true" >> $GITHUB_OUTPUT
fi
- name: Commit changes
working-directory: book
if: ${{ steps.changes.outputs.CHANGES == 'true'}}
run: |
git config --local user.email "ghbot+book-sync@servo.org"
git config --local user.name "Book Sync Bot"
git add src/building/linux_packages/
git commit -m "linux: Update dependency list based on servo/servo@${GITHUB_SHA::13}"
- name: Push changes
if: ${{ steps.changes.outputs.CHANGES == 'true'}}
working-directory: book
run: git push 'https://${{ secrets.BOOK_SYNC_TOKEN }}@github.com/servo-bot/book.git' 'HEAD:linux_pkgs_sync_${{ github.sha }}'
- name: Open PR
if: ${{ steps.changes.outputs.CHANGES == 'true'}}
env:
GH_TOKEN: ${{ secrets.BOOK_SYNC_CREATE_PR_TOKEN }}
UPDATE_BRANCH: linux_pkgs_sync_${{ github.sha }}
working-directory: book
run: |
BODY=$(cat <<EOF
Update dependency list based on servo/servo@${GITHUB_SHA}
EOF
)
gh pr create \
--title "Sync Linux packages with servo (${GITHUB_SHA::7})" \
--repo servo/book \
--body "$BODY" --head servo-bot:${{ env.UPDATE_BRANCH }}