Update packages #3
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
concurrency: | |
cancel-in-progress: true | |
group: "${{ github.workflow }}-${{ github.ref }}" | |
jobs: | |
update: | |
permissions: | |
contents: "write" | |
id-token: "write" | |
pages: "write" | |
runs-on: "ubuntu-latest" | |
steps: | |
- env: | |
SECRETS: "${{ toJSON(secrets) }}" | |
name: "Secret tests" | |
uses: "actions/github-script@v7" | |
with: | |
script: | | |
const secrets = JSON.parse(process.env.SECRETS); | |
if (secrets.GPG_KEY === undefined || secrets.RADXA_APT_KEY_2024 === undefined) { | |
core.setFailed('Required secrets are unset!'); | |
} | |
- name: "Checkout rsdk" | |
uses: "actions/checkout@v4" | |
with: | |
ref: "c8dce447111d4287590ecbfe18f3fdfe88455702" | |
repository: "RadxaOS-SDK/rsdk" | |
- name: "Checkout current repo" | |
uses: "actions/checkout@v4" | |
with: | |
path: ".infra-repo" | |
- env: | |
GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
id: "build" | |
name: "Build apt archive" | |
run: | | |
# ubuntu-latest is currently ubuntu-22.04, which provides aptly 1.4.0 | |
# Only 1.5.0 supports Ubuntu's zstd compressed packages: | |
# https://github.com/aptly-dev/aptly/pull/1050 | |
# ubuntu-24.04 provides 1.5.0, but will not be available till August: | |
# https://github.com/actions/runner-images/issues/9691#issuecomment-2063926929 | |
# Install aptly from upstream archive for now. | |
sudo tee /etc/apt/sources.list.d/10-aptly.list <<< "deb http://repo.aptly.info/ squeeze main" | |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EE727D4449467F0E | |
sudo apt-get update | |
sudo apt-get install -y aptly pandoc | |
# Workaround https://github.com/aptly-dev/aptly/issues/1297 | |
git clone -b 1297-hack https://github.com/RadxaOS-SDK/aptly.git /tmp/aptly | |
export PATH="$HOME/go/bin:$PATH" | |
pushd /tmp/aptly | |
make release | |
popd | |
APTLY_PATH=/tmp/aptly/xc-out/*/linux_amd64 | |
export PATH="$APTLY_PATH:$PATH" | |
git config --global user.name 'github-actions[bot]' | |
git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com' | |
cat << EOF | gpg --import | |
${{ secrets.GPG_KEY }} | |
EOF | |
cat << EOF | gpg --import | |
${{ secrets.RADXA_APT_KEY_2024 }} | |
EOF | |
suites=( | |
"rk3582-bookworm-test" | |
) | |
pushd .infra-repo | |
if [[ "${{ github.repository }}" != *-test ]] && \ | |
wget "https://raw.githubusercontent.com/${{ github.repository }}-test/main/pkgs.lock" -O pkgs.lock.new; then | |
mv pkgs.lock.new pkgs.lock | |
git add pkgs.lock | |
fi | |
../src/bin/rsdk infra-pkg-snapshot | |
../src/bin/rsdk infra-pkg-download --no-default-distro "${suites[@]}" | |
../src/bin/rsdk infra-repo-sync --origin "${suites[0]}" --label "${suites[0]}" "${suites[@]}" | |
export RSDK_REPO_ORIGIN="${suites[0]}" | |
git add pkgs.json | |
pushd "$HOME/.aptly/public/$RSDK_REPO_ORIGIN/" | |
cp "$OLDPWD/pkgs.json" ./ | |
pandoc --from gfm --to html --standalone "$OLDPWD/README.md" --output index.html | |
find . > files.list | |
echo "pages=$(realpath .)" >> $GITHUB_OUTPUT | |
popd | |
if [[ -n "$(git status --porcelain)" ]]; then | |
git commit -m "chore: update package snapshot" | |
fi | |
popd | |
shell: "bash" | |
- name: "Setup GitHub Pages" | |
uses: "actions/configure-pages@v5" | |
- name: "Upload artifact" | |
uses: "actions/upload-pages-artifact@v3" | |
with: | |
path: "${{ steps.build.outputs.pages }}" | |
- id: "deploy" | |
if: "github.event_name != 'pull_request'" | |
name: "Deploy to GitHub Pages" | |
uses: "actions/deploy-pages@v4" | |
- if: "steps.deploy.outcome == 'success'" | |
name: "Commit package snapshot" | |
run: | | |
pushd .infra-repo | |
git push | |
popd | |
shell: "bash" | |
name: "Update packages" | |
"on": | |
repository_dispatch: | |
types: | |
- "new_package_release" | |
workflow_dispatch: {} | |
permissions: {} |