-
Notifications
You must be signed in to change notification settings - Fork 9
75 lines (71 loc) · 3.12 KB
/
auto-updates.yaml
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
name: Update translations and Rust packaging related files in main
on:
push:
branches:
- main
paths-ignore:
- debian/control
# Just for testing purposes
pull_request:
concurrency: auto-update
permissions:
pull-requests: write
contents: write
# Jobs in this action must not run concurrently, as they modify the repository.
# When adding more jobs, make sure to use the "needs:" atribute to make sure they run sequentially.
jobs:
update-rust-packaging:
name: Update packaging related Rust files
runs-on: ubuntu-latest
# Right now, ubuntu 22.04 does not have the dh-cargo-vendored-sources script that is needed to
# run this job, so we need to run it inside a rolling container to get the latest version possible.
# This should be updated as soon as the dh-cargo version with the mentioned script gets ported to
# 22.04 or ubuntu-latest changes to a more recent version.
container:
image: ubuntu:rolling
steps:
- name: Install dependencies
run: |
DEBIAN_FRONTEND=noninteractive apt update
DEBIAN_FRONTEND=noninteractive apt install -y cargo dh-cargo git jq
- uses: actions/checkout@v4
with:
ref: main
- name: Vendor the dependencies
run: |
cargo vendor vendor_rust/
- name: Update XS-Vendored-Sources-Rust
run: |
set -eu
export CARGO_VENDOR_DIR=vendor_rust/
VENDORED_SOURCES=$(/usr/share/cargo/bin/dh-cargo-vendored-sources 2>&1 || true)
OUTPUT=$(echo "$VENDORED_SOURCES" | grep ^XS-Vendored-Sources-Rust: || true)
if [ -z "$OUTPUT" ]; then
echo "XS-Vendored-Sources-Rust is up to date. No change is needed.";
exit 0
fi
sed -i "s/^XS-Vendored-Sources-Rust:.*/$OUTPUT/" debian/control
echo "modified=true" >> $GITHUB_ENV
shell: bash
# Since we run this job in a container, we need to manually add the safe directory due to some
# issues between actions/checkout and actions/runner, which seem to be triggered by multiple
# causes (e.g. https://github.com/actions/runner-images/issues/6775, https://github.com/actions/checkout/issues/1048#issuecomment-1356485556).
- name: work around permission issue with git vulnerability (we are local here). TO REMOVE
run: git config --global --add safe.directory "$PWD"
- name: Create Pull Request
id: create-pr
if: ${{ env.modified == 'true' }}
uses: peter-evans/create-pull-request@v5
with:
commit-message: Auto update packaging related Rust files
title: Auto update packaging related Rust files
labels: control, automated pr
branch: auto-update-rust-packaging
delete-branch: true
token: ${{ secrets.GITHUB_TOKEN }}
- name: Merge changes
if: ${{ env.modified == 'true' }} && steps.create-pr.outputs.pull-request-operation == 'created'
run: |
gh pr review --approve "${{ steps.create-pr.outputs.pull-request-number }}"
# Do not merge it yet
# git push origin auto-update-rust-packaging:main