From fe25b786ac43d93bc6d9bbf914579f71e75f9ec2 Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Fri, 21 Jun 2024 22:59:45 +0200 Subject: GitHub: T6494: add workflow to build custom ISO for integration tests For every PR we will build the vyos-1x package and include it in a custom build of the VyOS ISO image (generic flavor) in order to execute the commonly available smoketests: - make test (CLI smoketests) - make testc (config load & migration tests) - make testraid (Installation of RAID1 system with disk replacement) This is a measure agains merged PRs that break the smoketests in the end. --- .github/workflows/build-package.yml | 17 ----- .github/workflows/package-smoketest.yml | 106 ++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+), 17 deletions(-) delete mode 100644 .github/workflows/build-package.yml create mode 100644 .github/workflows/package-smoketest.yml (limited to '.github') diff --git a/.github/workflows/build-package.yml b/.github/workflows/build-package.yml deleted file mode 100644 index 0200aceb4..000000000 --- a/.github/workflows/build-package.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Debian Package Build -on: - pull_request: - branches: - - current - -jobs: - package-build: - runs-on: ubuntu-latest - container: - image: vyos/vyos-build:current - options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Build Debian package - run: dpkg-buildpackage -uc -us -tc -b diff --git a/.github/workflows/package-smoketest.yml b/.github/workflows/package-smoketest.yml new file mode 100644 index 000000000..49bd91669 --- /dev/null +++ b/.github/workflows/package-smoketest.yml @@ -0,0 +1,106 @@ +name: Package ISO Test + +on: + pull_request: + branches: + - current + +jobs: + build: + runs-on: ubuntu-24.04 + container: + image: vyos/vyos-build:current + options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged + env: + BUILD_BY: autobuild@vyos.net + DEBIAN_MIRROR: http://deb.debian.org/debian/ + outputs: + build_version: ${{ steps.version.outputs.build_version }} + steps: + - name: Clone vyos-build source code + uses: actions/checkout@v4 + with: + repository: vyos/vyos-build + - name: Clone vyos-1x source code + uses: actions/checkout@v4 + with: + repository: vyos/vyos-1x + path: packages/vyos-1x + fetch-tags: true # required for Debian package version + - name: Build vyos-1x package + run: | + cd packages/vyos-1x; dpkg-buildpackage -uc -us -tc -b + - name: Generate ISO version string + id: version + run: | + echo "build_version=1.5-integration-$(date -u +%Y%m%d%H%M)" >> $GITHUB_OUTPUT + - name: Build custom ISO image + run: | + sudo --preserve-env ./build-vyos-image \ + --architecture amd64 \ + --build-by $BUILD_BY \ + --debian-mirror $DEBIAN_MIRROR \ + --version ${{ steps.version.outputs.build_version }} \ + --build-type release \ + generic + - uses: actions/upload-artifact@v4 + with: + name: vyos-${{ steps.version.outputs.build_version }} + path: build/live-image-amd64.hybrid.iso + + cli-smoketests: + needs: build + runs-on: ubuntu-24.04 + container: + image: vyos/vyos-build:current + options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged + steps: + # We need the test script from vyos-build repo + - name: Clone vyos-build source code + uses: actions/checkout@v4 + with: + repository: vyos/vyos-build + - uses: actions/download-artifact@v4 + with: + name: vyos-${{ needs.build.outputs.build_version }} + path: build + - name: VyOS CLI smoketests + run: ls -al; ls -al build; sudo make test + + config-load-tests: + needs: build + runs-on: ubuntu-24.04 + container: + image: vyos/vyos-build:current + options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged + steps: + # We need the test script from vyos-build repo + - name: Clone vyos-build source code + uses: actions/checkout@v4 + with: + repository: vyos/vyos-build + - uses: actions/download-artifact@v4 + with: + name: vyos-${{ needs.build.outputs.build_version }} + path: build + - name: VyOS config tests + run: sudo make testc + + raid1-install-test: + needs: build + runs-on: ubuntu-24.04 + container: + image: vyos/vyos-build:current + options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged + steps: + # We need the test script from vyos-build repo + - name: Clone vyos-build source code + uses: actions/checkout@v4 + with: + repository: vyos/vyos-build + - uses: actions/download-artifact@v4 + with: + name: vyos-${{ needs.build.outputs.build_version }} + path: build + - name: VyOS RAID1 install test + run: sudo make testraid -- cgit v1.2.3