Testsuite: T9214: fix GRUB auto-boot race in console-select navigation #158
Workflow file for this run
This file contains hidden or 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
| name: VyOS ISO Integration Test | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - rolling | |
| - circinus | |
| - sagitta | |
| paths: | |
| - '**' | |
| - '!.github/**' | |
| - '!**/*.md' | |
| - '!scripts/package-build/**' | |
| - '!docker-vyos/**' | |
| pull_request_target: | |
| branches: | |
| - rolling | |
| - circinus | |
| - sagitta | |
| paths: | |
| - '**' | |
| - '!.github/**' | |
| - '!**/*.md' | |
| - '!scripts/package-build/**' | |
| - '!docker-vyos/**' | |
| permissions: | |
| pull-requests: write | |
| contents: read | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| BUILD_BY: autobuild@vyos.net | |
| DEBIAN_MIRROR: http://deb.debian.org/debian/ | |
| DEBIAN_SECURITY_MIRROR: http://deb.debian.org/debian-security | |
| jobs: | |
| set_config: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| branch: ${{ steps.config.outputs.branch }} | |
| vyos_mirror: ${{ steps.config.outputs.vyos_mirror }} | |
| container_image: ${{ steps.config.outputs.container_image }} | |
| use_pat: ${{ steps.config.outputs.use_pat }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Set branch-specific configuration | |
| id: config | |
| run: | | |
| if [[ "${{ github.event_name }}" == "pull_request_target" ]]; then | |
| BRANCH="${{ github.event.pull_request.base.ref }}" | |
| else | |
| BRANCH="${{ github.ref_name }}" | |
| fi | |
| CONFIG=$(jq ".branches[\"${BRANCH}\"]" .github/config/smoketest-branches.json) | |
| if [ "$CONFIG" = "null" ] || [ -z "$CONFIG" ]; then | |
| echo "::error::No smoketest configuration found for branch '${BRANCH}' in .github/config/smoketest-branches.json" | |
| exit 1 | |
| fi | |
| echo "branch=${BRANCH}" >> $GITHUB_OUTPUT | |
| echo "vyos_mirror=$(echo $CONFIG | jq -r .vyos_mirror)" >> $GITHUB_OUTPUT | |
| echo "container_image=$(echo $CONFIG | jq -r .container_image)" >> $GITHUB_OUTPUT | |
| echo "use_pat=$(echo $CONFIG | jq -r .use_pat)" >> $GITHUB_OUTPUT | |
| build_iso: | |
| needs: set_config | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 45 | |
| container: | |
| image: ${{ needs.set_config.outputs.container_image }} | |
| options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged | |
| outputs: | |
| build_version: ${{ steps.version.outputs.build_version }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| with: | |
| repository: ${{ github.repository }} | |
| ref: ${{ needs.set_config.outputs.branch }} | |
| - name: Generate ISO version string | |
| id: version | |
| run: | | |
| echo "build_version=$(date -u +'%Y.%m.%d-%H%M-integration')" >> $GITHUB_OUTPUT | |
| - name: Build custom ISO image | |
| shell: bash | |
| run: | | |
| sudo --preserve-env ./build-vyos-image \ | |
| --architecture amd64 \ | |
| --build-by autobuild@vyos.net \ | |
| --build-type release \ | |
| --custom-package vyos-1x-smoketest \ | |
| --debian-mirror http://deb.debian.org/debian/ \ | |
| --debian-security-mirror http://deb.debian.org/debian-security \ | |
| --version ${{ steps.version.outputs.build_version }} \ | |
| --vyos-mirror ${{ needs.set_config.outputs.vyos_mirror }} \ | |
| generic | |
| - uses: actions/upload-artifact@v7 | |
| with: | |
| retention-days: 2 | |
| name: vyos-${{ steps.version.outputs.build_version }} | |
| path: | | |
| build/live-image-amd64.hybrid.iso | |
| build/manifest.json | |
| test_config_load: | |
| needs: [build_iso, set_config] | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 90 | |
| container: | |
| image: ${{ needs.set_config.outputs.container_image }} | |
| options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged | |
| outputs: | |
| exit_code: ${{ steps.test.outputs.exit_code }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| with: | |
| repository: ${{ github.repository }} | |
| ref: ${{ needs.set_config.outputs.branch }} | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: vyos-${{ needs.build_iso.outputs.build_version }} | |
| path: build | |
| - name: VyOS config load tests | |
| id: test | |
| shell: bash | |
| run: | | |
| if sudo make testc; then | |
| echo "exit_code=success" >> $GITHUB_OUTPUT | |
| else | |
| echo "exit_code=fail" >> $GITHUB_OUTPUT | |
| exit 1 | |
| fi | |
| result: | |
| needs: | |
| - set_config | |
| - test_config_load | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 5 | |
| if: always() && github.event_name == 'pull_request_target' | |
| steps: | |
| - name: Add PR comment | |
| if: always() && github.event_name == 'pull_request_target' | |
| uses: mshick/add-pr-comment@v3 | |
| with: | |
| message: | | |
| CI integration ${{ (needs.test_config_load.outputs.exit_code == 'success' && '👍 passed!') || '❌ failed!' }} | |
| ### Details | |
| [CI logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) | |
| * Config tests ${{ needs.test_config_load.outputs.exit_code == 'success' && '👍 passed' || '❌ failed' }} | |
| message-id: "SMOKETEST_RESULTS" | |
| allow-repeats: false | |
| refresh-message-position: true |