diff options
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/vyos-rolling-nightly-build.yml | 196 |
1 files changed, 97 insertions, 99 deletions
diff --git a/.github/workflows/vyos-rolling-nightly-build.yml b/.github/workflows/vyos-rolling-nightly-build.yml index b86daa7..fcad5fe 100644 --- a/.github/workflows/vyos-rolling-nightly-build.yml +++ b/.github/workflows/vyos-rolling-nightly-build.yml @@ -20,27 +20,12 @@ jobs: - uses: actions/checkout@v3 - # - name: Update latest_build.txt - # run: echo $(date -u +%Y%m%d%H%M) > $GITHUB_WORKSPACE/latest_build.txt - - # - name: Create autocommit and tag - # uses: stefanzweifel/git-auto-commit-action@v4 - # with: - # tagging_message: ${{ env.VYOS_VERSION }} - # commit_message: ${{ env.VYOS_VERSION }} - - name: Git clone vyos-build run: git clone -b current --single-branch https://github.com/vyos/vyos-build - - name: Build ISO + - name: Build ISO (Smoketest) run: | - docker run --rm --privileged -v ./vyos-build/:/vyos -w /vyos vyos/vyos-build:current sudo --preserve-env ./build-vyos-image --architecture amd64 --build-by "autobuild@vyos.net" --vyos-mirror https://rolling-packages.vyos.net/current/ --debian-mirror http://deb.debian.org/debian/ --build-type release --version "${VYOS_VERSION}" iso - - ##### DEBUG ##### - # - run: | - # mkdir -p ./vyos-build/build/ - # echo "TEST" > ./vyos-build/build/live-image-amd64.hybrid.iso - ################# + docker run --rm --privileged -v ./vyos-build/:/vyos -w /vyos vyos/vyos-build:current sudo --preserve-env ./build-vyos-image --architecture amd64 --build-by "autobuild@vyos.net" --vyos-mirror https://rolling-packages.vyos.net/current/ --debian-mirror http://deb.debian.org/debian/ --build-type release --custom-package vyos-1x-smoketest --version "${VYOS_VERSION}" iso - name: Make archive for smoketests run: | @@ -66,86 +51,99 @@ jobs: docker run --rm --privileged -v ~/vyos-build:/vyos -w /vyos vyos/vyos-build:current sudo make testc rm -rf ~/vyos-build || true + - name: Build ISO + run: | + sudo make clean + docker run --rm --privileged -v ./vyos-build/:/vyos -w /vyos vyos/vyos-build:current sudo --preserve-env ./build-vyos-image --architecture amd64 --build-by "autobuild@vyos.net" --vyos-mirror https://rolling-packages.vyos.net/current/ --debian-mirror http://deb.debian.org/debian/ --build-type release --version "${VYOS_VERSION}" iso + + - name: Copy ISO + run: | + cp ./vyos-build/build/live-image-amd64.hybrid.iso ./vyos-$VYOS_VERSION-amd64.iso + + - name: Sign ISO (Minisign) + run: | + echo 'untrusted comment: minisign encrypted secret key' > minisign.key + echo $minisign_key >> minisign.key + shasum minisign.key + echo $minisign_password | $GITHUB_WORKSPACE/bin/minisign -s minisign.key -Sm ./vyos-$VYOS_VERSION-amd64.iso + $GITHUB_WORKSPACE/bin/minisign -Vm ./vyos-$VYOS_VERSION-amd64.iso -x ./vyos-$VYOS_VERSION-amd64.iso.minisig -p $GITHUB_WORKSPACE/minisign.pub + env: + minisign_key: ${{ secrets.minisign_key }} + minisign_password: ${{ secrets.minisign_password }} + + - name: Upload ISO to S3 Glacier + uses: keithweaver/aws-s3-github-action@v1.0.0 + with: + command: cp + source: ./vyos-${{ env.VYOS_VERSION }}-amd64.iso + destination: s3://${{ secrets.aws_s3_bucket }}/vyos-${{ env.VYOS_VERSION }}-amd64.iso + aws_access_key_id: ${{ secrets.aws_access_key_id }} + aws_secret_access_key: ${{ secrets.aws_secret_access_key }} + aws_region: us-east-1 + flags: --storage-class GLACIER + + - name: Upload ISO's signature to S3 Glacier + uses: keithweaver/aws-s3-github-action@v1.0.0 + with: + command: cp + source: ./vyos-${{ env.VYOS_VERSION }}-amd64.iso.minisig + destination: s3://${{ secrets.aws_s3_bucket }}/vyos-${{ env.VYOS_VERSION }}-amd64.iso.minisig + aws_access_key_id: ${{ secrets.aws_access_key_id }} + aws_secret_access_key: ${{ secrets.aws_secret_access_key }} + aws_region: us-east-1 + flags: --storage-class GLACIER + + - name: Upload ISO artifact + uses: actions/upload-artifact@v3 + with: + name: vyos-${{ env.VYOS_VERSION }}-amd64.iso + path: ./vyos-${{ env.VYOS_VERSION }}-amd64.iso + retention-days: 30 + if-no-files-found: error + + - name: Upload ISO's Minisign artifact + uses: actions/upload-artifact@v3 + with: + name: vyos-${{ env.VYOS_VERSION }}-amd64.iso.minisig + path: ./vyos-${{ env.VYOS_VERSION }}-amd64.iso.minisig + retention-days: 30 + if-no-files-found: error + + - name: Update latest_build.txt + run: echo $(date -u +%Y%m%d%H%M) > $GITHUB_WORKSPACE/latest_build.txt + + - name: Create autocommit and tag + uses: stefanzweifel/git-auto-commit-action@v4 + with: + tagging_message: ${{ env.VYOS_VERSION }} + commit_message: ${{ env.VYOS_VERSION }} - # - name: Copy ISO - # run: | - # cp ./vyos-build/build/live-image-amd64.hybrid.iso ./vyos-$VYOS_VERSION-amd64.iso - - # - name: Sign ISO (Minisign) - # run: | - # echo 'untrusted comment: minisign encrypted secret key' > minisign.key - # echo $minisign_key >> minisign.key - # shasum minisign.key - # echo $minisign_password | $GITHUB_WORKSPACE/bin/minisign -s minisign.key -Sm ./vyos-$VYOS_VERSION-amd64.iso - # $GITHUB_WORKSPACE/bin/minisign -Vm ./vyos-$VYOS_VERSION-amd64.iso -x ./vyos-$VYOS_VERSION-amd64.iso.minisig -p $GITHUB_WORKSPACE/minisign.pub - # env: - # minisign_key: ${{ secrets.minisign_key }} - # minisign_password: ${{ secrets.minisign_password }} - - # - name: Upload ISO to S3 Glacier - # uses: keithweaver/aws-s3-github-action@v1.0.0 - # with: - # command: cp - # source: ./vyos-${{ env.VYOS_VERSION }}-amd64.iso - # destination: s3://${{ secrets.aws_s3_bucket }}/vyos-${{ env.VYOS_VERSION }}-amd64.iso - # aws_access_key_id: ${{ secrets.aws_access_key_id }} - # aws_secret_access_key: ${{ secrets.aws_secret_access_key }} - # aws_region: us-east-1 - # flags: --storage-class GLACIER - - # - name: Upload ISO's signature to S3 Glacier - # uses: keithweaver/aws-s3-github-action@v1.0.0 - # with: - # command: cp - # source: ./vyos-${{ env.VYOS_VERSION }}-amd64.iso.minisig - # destination: s3://${{ secrets.aws_s3_bucket }}/vyos-${{ env.VYOS_VERSION }}-amd64.iso.minisig - # aws_access_key_id: ${{ secrets.aws_access_key_id }} - # aws_secret_access_key: ${{ secrets.aws_secret_access_key }} - # aws_region: us-east-1 - # flags: --storage-class GLACIER - - # - name: Upload ISO artifact - # uses: actions/upload-artifact@v3 - # with: - # name: vyos-${{ env.VYOS_VERSION }}-amd64.iso - # path: ./vyos-${{ env.VYOS_VERSION }}-amd64.iso - # retention-days: 30 - # if-no-files-found: error - - # - name: Upload ISO's Minisign artifact - # uses: actions/upload-artifact@v3 - # with: - # name: vyos-${{ env.VYOS_VERSION }}-amd64.iso.minisig - # path: ./vyos-${{ env.VYOS_VERSION }}-amd64.iso.minisig - # retention-days: 30 - # if-no-files-found: error - - # - name: Publish release - # uses: softprops/action-gh-release@v1 - # with: - # tag_name: ${{ env.VYOS_VERSION }} - # fail_on_unmatched_files: true - # files: | - # ./vyos-${{ env.VYOS_VERSION }}-amd64.iso - # ./vyos-${{ env.VYOS_VERSION }}-amd64.iso.minisig - - # - name: Remove old releases - # uses: dev-drprasad/delete-older-releases@v0.2.1 - # with: - # keep_latest: 30 - # delete_tags: true - # env: - # GITHUB_TOKEN: ${{ secrets.CUSTOM_GITHUB_TOKEN }} - - # - name: Send Slack notification on fail - # if: failure() - # id: slack - # uses: slackapi/slack-github-action@v1.24.0 - # with: - # payload: | - # { - # "text": "*vyos-rolling-nightly-builds*\nGitHub Action build result: ${{ job.status }}\n${{ github.event.pull_request.html_url || github.event.head_commit.url }}" - # } - # env: - # SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} - # SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + - name: Publish release + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ env.VYOS_VERSION }} + fail_on_unmatched_files: true + files: | + ./vyos-${{ env.VYOS_VERSION }}-amd64.iso + ./vyos-${{ env.VYOS_VERSION }}-amd64.iso.minisig + + - name: Remove old releases + uses: dev-drprasad/delete-older-releases@v0.2.1 + with: + keep_latest: 30 + delete_tags: true + env: + GITHUB_TOKEN: ${{ secrets.CUSTOM_GITHUB_TOKEN }} + + - name: Send Slack notification on fail + if: failure() + id: slack + uses: slackapi/slack-github-action@v1.24.0 + with: + payload: | + { + "text": "*vyos-rolling-nightly-builds*\nGitHub Action build result: ${{ job.status }}\n${{ github.event.pull_request.html_url || github.event.head_commit.url }}" + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK |