summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2024-06-21 22:59:45 +0200
committerChristian Breunig <christian@breunig.cc>2024-06-22 07:53:01 +0200
commitfe25b786ac43d93bc6d9bbf914579f71e75f9ec2 (patch)
treee1609ee4c45db763aa37f71a0da580cc2d518b75
parent569b29eafda7073f95784786cf34387df53f2b35 (diff)
downloadvyos-1x-fe25b786ac43d93bc6d9bbf914579f71e75f9ec2.tar.gz
vyos-1x-fe25b786ac43d93bc6d9bbf914579f71e75f9ec2.zip
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.
-rw-r--r--.github/workflows/build-package.yml17
-rw-r--r--.github/workflows/package-smoketest.yml106
2 files changed, 106 insertions, 17 deletions
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