From 258827a55b8a635ff5b8821341690f857703b86a Mon Sep 17 00:00:00 2001 From: Simon Deziel Date: Wed, 18 Dec 2024 19:26:47 -0500 Subject: [PATCH] github: make use of LXD's actions/lp-snap-build in build job Signed-off-by: Simon Deziel --- .github/workflows/tests.yml | 52 ++++++++++++------------------------- 1 file changed, 16 insertions(+), 36 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8e672224..61d66cf5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -434,52 +434,32 @@ jobs: runs-on: ubuntu-22.04 needs: [code-tests, system-tests, doc-tests] if: ${{ github.repository == 'canonical/microcloud' && github.event_name == 'push' && github.actor != 'dependabot[bot]' }} + env: + SSH_AUTH_SOCK: /tmp/ssh_agent.sock + PACKAGE: "microcloud" + REPO: "git+ssh://lxdbot@git.launchpad.net/~microcloud-snap/microcloud" + BRANCH: >- + ${{ fromJson('{ + "main": "latest-edge", + "v2-edge": "v2-edge", + "v1-edge": "v1-edge", + }')[github.ref_name] }} steps: - name: Checkout code uses: actions/checkout@v4 - - name: Setup Launchpad SSH access - env: - SSH_AUTH_SOCK: /tmp/ssh_agent.sock - LAUNCHPAD_LXD_BOT_KEY: ${{ secrets.LAUNCHPAD_LXD_BOT_KEY }} - run: | - set -eux - mkdir -m 0700 -p ~/.ssh/ - ssh-agent -a "${SSH_AUTH_SOCK}" > /dev/null - ssh-add - <<< "${{ secrets.LAUNCHPAD_LXD_BOT_KEY }}" - ssh-add -L > ~/.ssh/id_ed25519.pub - # In ephemeral environments like GitHub Action runners, relying on TOFU isn't providing any security - # so require the key obtained by `ssh-keyscan` to match the expected hash from https://help.launchpad.net/SSHFingerprints - ssh-keyscan git.launchpad.net >> ~/.ssh/known_hosts - ssh-keygen -qlF git.launchpad.net | grep -xF 'git.launchpad.net RSA SHA256:UNOzlP66WpDuEo34Wgs8mewypV0UzqHLsIFoqwe8dYo' - - - name: Install Go (${{ matrix.go }}) - uses: actions/setup-go@v5 + - uses: canonical/lxd/.github/actions/lp-snap-build@main with: - go-version: 1.22.x + ssh-key: "${{ secrets.LAUNCHPAD_LXD_BOT_KEY}}" - name: Trigger Launchpad snap build - env: - SSH_AUTH_SOCK: /tmp/ssh_agent.sock - TARGET: >- - ${{ fromJson('{ - "main": "latest-edge", - "v2-edge": "v2-edge", - }')[github.ref_name] }} run: | set -eux - git config --global transfer.fsckobjects true - git config --global user.name "Canonical LXD Bot" - git config --global user.email "lxd@lists.canonical.com" - git config --global commit.gpgsign true - git config --global gpg.format "ssh" - git config --global user.signingkey ~/.ssh/id_ed25519.pub + echo "${PATH}" localRev="$(git rev-parse HEAD)" - GOPROXY=direct go install github.com/canonical/lxd-ci/lxd-snapcraft@latest - git clone -b "${TARGET}" git+ssh://lxdbot@git.launchpad.net/~microcloud-snap/microcloud ~/microcloud-pkg-snap-lp - cd ~/microcloud-pkg-snap-lp - lxd-snapcraft -package microcloud -set-version "git-${localRev:0:7}" -set-source-commit "${localRev}" + cd ~/"${PACKAGE}-pkg-snap-lp" + lxd-snapcraft -package "${PACKAGE}" -set-version "git-${localRev:0:7}" -set-source-commit "${localRev}" git add --all - git commit --all --quiet -s --allow-empty -m "Automatic upstream build (${TARGET})" -m "Upstream commit: ${localRev}" + git commit --all --quiet -s --allow-empty -m "Automatic upstream build (${BRANCH})" -m "Upstream commit: ${localRev}" git show git push --quiet