From bbd8f8b4f22f69e8cbaa9e0b647e930a4109e5ea Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Tue, 31 Dec 2024 14:47:47 +0100 Subject: [PATCH] build: extract ISO image from build/manifest.json --- .github/workflows/nightly-build.yml | 64 +++++++++++++++++------------ 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index 693f781..3a7ab86 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -112,22 +112,23 @@ jobs: --version ${{ steps.set_env_variables.outputs.build_version }} \ --vyos-mirror $VYOS_MIRROR \ generic - # move artifact one level up for minisign - mv build/vyos-${{ steps.set_env_variables.outputs.build_version }}-generic-amd64.iso .. - - - name: Sign generic ISO image - shell: bash - run: | - echo "${{ secrets.minisign_private_key }}" > /tmp/minisign.key - echo ${{ secrets.minisign_password }} | $GITHUB_WORKSPACE/bin/minisign -s /tmp/minisign.key -Sm vyos-${{ steps.set_env_variables.outputs.build_version }}-generic-amd64.iso + cd build + ls -al . + GENERIC_IMAGE_NAME=$(jq --raw-output .artifacts[0] manifest.json | sed -e 's/.iso//') + GENERIC_IMAGE_ISO=$(jq --raw-output .artifacts[0] manifest.json) + echo "generic_image_iso=${GENERIC_IMAGE_ISO}" >> $GITHUB_OUTPUT + echo "generic_image_name=${GENERIC_IMAGE_NAME}" >> $GITHUB_OUTPUT + # Sign build artifact echo "${{ secrets.minisign_public_key }}" > /tmp/minisign.pub - $GITHUB_WORKSPACE/bin/minisign -Vm vyos-${{ steps.set_env_variables.outputs.build_version }}-generic-amd64.iso -x vyos-${{ steps.set_env_variables.outputs.build_version }}-generic-amd64.iso.minisig -p /tmp/minisign.pub - rm /tmp/minisign.key /tmp/minisign.pub + echo "${{ secrets.minisign_private_key }}" > /tmp/minisign.key + echo "${{ secrets.minisign_password }}" | $GITHUB_WORKSPACE/bin/minisign -s /tmp/minisign.key -Sm ${GENERIC_IMAGE_ISO} + $GITHUB_WORKSPACE/bin/minisign -Vm ${GENERIC_IMAGE_ISO} -x ${GENERIC_IMAGE_ISO}.minisig -p /tmp/minisign.pub + rm -f /tmp/minisign.key /tmp/minisign.pub - uses: actions/upload-artifact@v4 with: - name: vyos-${{ steps.set_env_variables.outputs.build_version }}-generic-amd64 - path: vyos-${{ steps.set_env_variables.outputs.build_version }}-* + name: ${{ steps.build_generic_iso.outputs.generic_image_name }} + path: ${{ steps.build_generic_iso.outputs.generic_image_iso }}* retention-days: 30 if-no-files-found: error @@ -146,14 +147,14 @@ jobs: repository: vyos/vyos-build - uses: actions/download-artifact@v4 with: - name: vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64 + name: ${{ needs.build_iso.outputs.generic_image_name }} path: build - name: VyOS CLI smoketests (no interfaces) id: test shell: bash run: | set -e - ln -s vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64.iso build/live-image-amd64.hybrid.iso + ln -s ${{ needs.build_iso.outputs.generic_image_iso }} build/live-image-amd64.hybrid.iso sudo make test-no-interfaces | tee smoketest_make_test_no_interfaces.log - uses: actions/upload-artifact@v4 with: @@ -177,14 +178,14 @@ jobs: repository: vyos/vyos-build - uses: actions/download-artifact@v4 with: - name: vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64 + name: ${{ needs.build_iso.outputs.generic_image_name }} path: build - name: VyOS CLI smoketests (interfaces only) id: test shell: bash run: | set -e - ln -s vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64.iso build/live-image-amd64.hybrid.iso + ln -s ${{ needs.build_iso.outputs.generic_image_iso }} build/live-image-amd64.hybrid.iso sudo make test-interfaces | tee smoketest_make_test_interfaces.log - uses: actions/upload-artifact@v4 with: @@ -208,14 +209,14 @@ jobs: repository: vyos/vyos-build - uses: actions/download-artifact@v4 with: - name: vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64 + name: ${{ needs.build_iso.outputs.generic_image_name }} path: build - name: VyOS config load tests id: test shell: bash run: | set -e - ln -s vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64.iso build/live-image-amd64.hybrid.iso + ln -s ${{ needs.build_iso.outputs.generic_image_iso }} build/live-image-amd64.hybrid.iso sudo make testc | tee smoketest_make_testc.log - uses: actions/upload-artifact@v4 with: @@ -239,14 +240,23 @@ jobs: repository: vyos/vyos-build - uses: actions/download-artifact@v4 with: - name: vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64 + name: ${{ needs.build_iso.outputs.generic_image_name }} path: build - name: VyOS RAID1 installation tests id: test shell: bash run: | set -e - ln -s vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64.iso build/live-image-amd64.hybrid.iso + echo ls -al + ls -al + echo ls -al build + ls -al build + echo ls -al build/${{ needs.build_iso.outputs.generic_image_name }} + ls -al build/${{ needs.build_iso.outputs.generic_image_name }} + mv build/${{ needs.build_iso.outputs.generic_image_name }}/* build/ + ls -al build + ln -s ${{ needs.build_iso.outputs.generic_image_iso }} build/live-image-amd64.hybrid.iso + ls -al build sudo make testraid | tee smoketest_make_testraid.log - uses: actions/upload-artifact@v4 with: @@ -270,14 +280,14 @@ jobs: repository: vyos/vyos-build - uses: actions/download-artifact@v4 with: - name: vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64 + name: ${{ needs.build_iso.outputs.generic_image_name }} path: build - name: VyOS TPM encryption tests id: test shell: bash run: | set -e - ln -s vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64.iso build/live-image-amd64.hybrid.iso + ln -s ${{ needs.build_iso.outputs.generic_image_iso }} build/live-image-amd64.hybrid.iso sudo make testtpm | tee smoketest_make_testtpm.log - uses: actions/upload-artifact@v4 with: @@ -295,7 +305,7 @@ jobs: - test_encrypted_config_tpm - build_iso runs-on: ubuntu-24.04 - if: failure() + if: failure() && github.ref == 'refs/heads/current' steps: - uses: actions/download-artifact@v4 with: @@ -448,7 +458,7 @@ jobs: json: | [ { - "url": "https://github.com/vyos/vyos-nightly-build/releases/download/${{ needs.build_iso.outputs.build_version }}/vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64.iso", + "url": "https://github.com/vyos/vyos-nightly-build/releases/download/${{ needs.build_iso.outputs.build_version }}/${{ steps.build_generic_iso.outputs.generic_image_iso }}", "version": "${{ needs.build_iso.outputs.build_version }}", "timestamp": "${{ needs.build_iso.outputs.TIMESTAMP }}" } @@ -469,7 +479,7 @@ jobs: - uses: actions/download-artifact@v4 with: - name: vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64 + name: ${{ needs.build_iso.outputs.generic_image_name }} - name: "Release publishing: publish release" uses: softprops/action-gh-release@v2 @@ -478,8 +488,8 @@ jobs: tag_name: ${{ needs.build_iso.outputs.build_version }} fail_on_unmatched_files: true files: | - ./vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64.iso - ./vyos-${{ needs.build_iso.outputs.build_version }}-generic-amd64.iso.minisig + ./${{ steps.build_generic_iso.outputs.generic_image_iso }} + ./${{ steps.build_generic_iso.outputs.generic_image_iso }}.minisig - uses: Nats-ji/delete-old-releases@v1.0.1 with: