Skip to content

Update packages

Update packages #3

Workflow file for this run

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: {}