This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update translations and Rust packaging related files in main | |
on: | |
push: | |
branches: | |
- "*" | |
paths-ignore: | |
- debian/control | |
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:" attribute to make sure they run sequentially. | |
jobs: | |
update-rust-packaging: | |
strategy: | |
fail-fast: false | |
matrix: | |
ubuntu-version: ['devel'] | |
branch: [main] | |
# dependencies: [ [ -] ] | |
include: | |
- ubuntu-version: noble | |
branch: noble | |
name: Update ${{ matrix.ubuntu-version }} packaging related Rust files | |
runs-on: ubuntu-24.04 # ubuntu-latest-runner | |
container: | |
image: ubuntu:${{ matrix.ubuntu-version }} | |
env: | |
CARGO_VENDOR_DIR: ${{ github.workspace }}/vendor_rust | |
UPDATE_BRANCH: auto-update-rust-packaging-${{ matrix.ubuntu-version }} | |
steps: | |
- name: Install dependencies | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
CARGO_VENDOR_FILTERER_VERSION: 0.5.16 | |
shell: bash | |
run: | | |
set -euo pipefail | |
apt update -y | |
apt install -y dh-cargo libssl-dev pkg-config | |
cargo install --locked --root=/usr \ | |
cargo-vendor-filterer@${{ env.CARGO_VENDOR_FILTERER_VERSION }} | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ matrix.branch }} | |
- name: Vendor the dependencies | |
# uses: kohlerdominik/[email protected] | |
# with: | |
# image: ubuntu:devel | |
# # volumes: ${{ github.workspace }}:${{ github.workspace }} | |
# # workdir: ${{ github.workspace }} | |
# shell: bash | |
# environment: | | |
# DEBIAN_FRONTEND=noninteractive | |
# CARGO_VENDOR_DIR=${{ github.workspace }}/vendor_rust | |
# CARGO_PATH=/usr/share/cargo/bin/cargo | |
# run: | | |
# echo "::group::Install dependencies" | |
# set -euo pipefail | |
# apt update -y | |
# apt install -y dh-cargo cargo-vendor-filterer | |
# echo "::endgroup::" | |
# set -x | |
# # FIXME: drop this when it lands... | |
# apt install -y wget | |
# wget https://launchpad.net/ubuntu/+source/dh-cargo/31ubuntu4/+build/30122553/+files/dh-cargo_31ubuntu4_all.deb \ | |
# https://launchpad.net/ubuntu/+source/dh-cargo/31ubuntu4/+build/30122553/+files/dh-cargo-tools_31ubuntu4_all.deb | |
# dpkg -i ./dh-cargo_31ubuntu4_all.deb ./dh-cargo-tools_31ubuntu4_all.deb | |
# echo "::group::Vendor the dependencies" | |
# # export CARGO_VENDOR_DIR=${PWD}/vendor_rust | |
# # export CARGO_PATH=/usr/share/cargo/bin/cargo | |
# sh -x debian/vendor-rust.sh | |
# echo "::endgroup::" | |
# echo "::group::Update XS-Vendored-Sources-Rust" | |
# VENDORED_SOURCES=$(/usr/share/cargo/bin/dh-cargo-vendored-sources 2>&1 || true) \ | |
# || cmd_status=$? | |
# OUTPUT=$(echo "$VENDORED_SOURCES" | grep ^XS-Vendored-Sources-Rust: || true) | |
# if [ -z "$OUTPUT" ]; then | |
# if [ "${cmd_status:-0}" -ne 0 ]; then | |
# # dh-cargo-vendored-sources failed because of other reason, so let's fail with it! | |
# echo "dh-cargo-vendored-sources failed:" | |
# echo "${VENDORED_SOURCES}" | |
# exit "${cmd_status}" | |
# fi | |
# 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}" | |
# echo "::endgroup::" | |
env: | |
CARGO_PATH: /usr/share/cargo/bin/cargo | |
shell: bash | |
run: | | |
set -euo pipefail | |
# FIXME: drop this when it lands... | |
apt install -y wget | |
wget https://launchpad.net/ubuntu/+source/dh-cargo/31ubuntu4/+build/30122553/+files/dh-cargo_31ubuntu4_all.deb \ | |
https://launchpad.net/ubuntu/+source/dh-cargo/31ubuntu4/+build/30122553/+files/dh-cargo-tools_31ubuntu4_all.deb | |
dpkg -i ./dh-cargo_31ubuntu4_all.deb ./dh-cargo-tools_31ubuntu4_all.deb | |
sh -x debian/vendor-rust.sh | |
- name: Update XS-Vendored-Sources-Rust | |
shell: bash | |
run: | | |
set -euo pipefail | |
set -x | |
VENDORED_SOURCES=$(/usr/share/cargo/bin/dh-cargo-vendored-sources 2>&1) \ | |
|| cmd_status=$? | |
OUTPUT=$(echo "$VENDORED_SOURCES" | grep ^XS-Vendored-Sources-Rust: || true) | |
if [ -z "${OUTPUT}" ]; then | |
if [ "${cmd_status:-0}" -ne 0 ]; then | |
# dh-cargo-vendored-sources failed because of other reason, so let's fail with it! | |
echo "dh-cargo-vendored-sources failed:" | |
echo "${VENDORED_SOURCES}" | |
exit "${cmd_status}" | |
fi | |
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}" | |
- name: Create Pull Request | |
if: ${{ env.modified == 'true' }} | |
uses: peter-evans/create-pull-request@v7 | |
with: | |
commit-message: Auto update packaging related Rust files | |
title: | | |
[${{ matrix.ubuntu-version }}] Auto update packaging related Rust files | |
labels: control, automated pr | |
branch: ${{ env.UPDATE_BRANCH }} | |
delete-branch: true | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Push branch | |
if: ${{ env.modified == 'true' }} | |
run: | | |
git push origin ${{ env.UPDATE_BRANCH }}:${{ matrix.branch }} |