name: Install Script on: push: branches: [main, master] paths: - "channel.yaml" - "install.sh" - "tests/install/**" - ".github/workflows/install.yaml" pull_request: branches: [main, master] paths: - "install.sh" - "tests/install/**" - ".github/workflows/install.yaml" workflow_dispatch: {} permissions: contents: read jobs: build: uses: ./.github/workflows/build-k3s.yaml test: name: "Smoke Test" needs: build runs-on: ubuntu-latest timeout-minutes: 40 strategy: fail-fast: false matrix: vm: [centos-9, alma-10, rocky-9, fedora, opensuse-leap, ubuntu-2404] max-parallel: 3 defaults: run: working-directory: tests/install/${{ matrix.vm }} env: INSTALL_K3S_SKIP_DOWNLOAD: binary steps: - name: Remove Unnecessary Tools working-directory: / run: | sudo rm -rf \ /home/linuxbrew \ /home/packer \ /opt/az \ /opt/microsoft \ /usr/lib/firefox \ /usr/lib/google-cloud-sdk \ /usr/local/julia* \ /usr/local/share/boost \ /usr/local/share/chromium \ /usr/local/share/powershell \ /usr/share/az* \ /usr/share/dotnet \ /usr/share/miniconda \ /usr/share/swift df -khl - name: "Checkout" uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: {fetch-depth: 1} - name: Set up vagrant and libvirt uses: ./.github/actions/vagrant-setup - name: "Vagrant Cache" uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 with: path: | ~/.vagrant.d/boxes key: vagrant-box-${{ matrix.vm }} - name: "Vagrant Plugin(s)" run: vagrant plugin install vagrant-k3s vagrant-reload vagrant-scp - name: "Download k3s binary" uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: k3s-amd64 path: tests/install/${{ matrix.vm }} - name: "Vagrant Up" run: vagrant up --no-tty --no-provision - name: "Prepare K3s binary" run: | chmod +x k3s vagrant scp k3s /tmp/k3s vagrant ssh -c "sudo mv /tmp/k3s /usr/local/bin/k3s" - name: Run K3s Install Test run: vagrant provision - name: Cleanup VM run: vagrant destroy -f