diff --git a/.github/workflows/k8s-snap-integration.yaml b/.github/workflows/k8s-snap-integration.yaml new file mode 100644 index 00000000..fec0cf2f --- /dev/null +++ b/.github/workflows/k8s-snap-integration.yaml @@ -0,0 +1,70 @@ +name: Integration Test K8s-snap + +on: + push: + branches: ["master"] + pull_request: + +permissions: + contents: read + +jobs: + build: + name: Build K8-dqlite + runs-on: ubuntu-20.04 + + steps: + - name: Checking out repo + uses: actions/checkout@v4 + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: '3.8' + - name: Install tox + run: pip install tox + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: "1.21" + - name: Download latest k8s-snap + run: | + sudo snap download k8s --channel=latest/edge --basename k8s + - name: Install lxd + run: | + sudo snap refresh lxd --channel 5.21/stable + sudo lxd init --auto + sudo usermod --append --groups lxd $USER + sg lxd -c 'lxc version' + - name: Build k8s-dqlite + run: | + make static + - name: Unpack Snap + run: | + sudo unsquashfs -d snap-unpack-dir k8s.snap + - name: Replace k8s-dqlite binary + run: | + sudo cp ./bin/static/k8s-dqlite snap-unpack-dir/bin/k8s-dqlite + sudo chmod o+r snap-unpack-dir/bin/k8s-dqlite + - name: Repack Snap + run: | + sudo mksquashfs snap-unpack-dir k8s-updated.snap -noappend -comp lzo -no-fragments + - name: Running + env: + TEST_SNAP: ${{ github.workspace }}/k8s-updated.snap + TEST_SUBSTRATE: lxd + TEST_LXD_IMAGE: ubuntu:22.04 + TEST_INSPECTION_REPORTS_DIR: ${{ github.workspace }}/inspection-reports + run: | + git clone https://github.com/canonical/k8s-snap.git + cd k8s-snap/tests/integration && sg lxd -c 'tox -e integration' + - name: Prepare inspection reports + if: failure() + run: | + tar -czvf inspection-reports.tar.gz -C ${{ github.workspace }} inspection-reports + - name: Upload inspection report artifact + if: failure() + uses: actions/upload-artifact@v4 + with: + name: inspection-reports + path: ${{ github.workspace }}/inspection-reports.tar.gz +