mirror of
https://github.com/k3s-io/k3s.git
synced 2024-06-07 19:41:36 +00:00
c77efe64e1
- updated `tests/TESTING.md` - cgroup, snapshotter, and install tests all under tests/vagrant - cgroup and snapshotter workflows trigger for all code changes on all branches (excluding markdown docs, install script, and other vagrant tests) - install workflow triggers for relevant script and fixture changes, only on master or pull-requests that target it - integration and unit test workflows should not trigger for install script changes nor anything under tests/vagrant Signed-off-by: Jacob Blain Christen <jacob@rancher.com>
81 lines
2.4 KiB
YAML
81 lines
2.4 KiB
YAML
name: Snapshotter
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- "**.md"
|
|
- "channel.yaml"
|
|
- "install.sh"
|
|
- "tests/**"
|
|
- "!tests/vagrant/snapshotter/**"
|
|
- ".github/**"
|
|
- "!.github/workflows/snapshotter.yaml"
|
|
pull_request:
|
|
paths-ignore:
|
|
- "**.md"
|
|
- "channel.yaml"
|
|
- "install.sh"
|
|
- "tests/**"
|
|
- "!tests/vagrant/snapshotter/**"
|
|
- ".github/**"
|
|
- "!.github/workflows/snapshotter.yaml"
|
|
workflow_dispatch: {}
|
|
jobs:
|
|
prep:
|
|
name: "Prepare"
|
|
runs-on: ubuntu-20.04
|
|
timeout-minutes: 40
|
|
steps:
|
|
- name: "Checkout"
|
|
uses: actions/checkout@v2
|
|
with: { fetch-depth: 1 }
|
|
- name: "Build"
|
|
run: DOCKER_BUILDKIT=1 SKIP_VALIDATE=1 make
|
|
- name: "Upload Binary"
|
|
uses: actions/upload-artifact@v2
|
|
with: { name: k3s, path: dist/artifacts/k3s }
|
|
test:
|
|
name: "Smoke Test"
|
|
needs: prep
|
|
# nested virtualization is only available on macOS hosts
|
|
runs-on: macos-10.15
|
|
timeout-minutes: 40
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
vm: [opensuse-leap]
|
|
snapshotter: [btrfs]
|
|
max-parallel: 1
|
|
defaults:
|
|
run:
|
|
working-directory: tests/vagrant/snapshotter/${{ matrix.snapshotter }}/${{ matrix.vm }}
|
|
env:
|
|
VAGRANT_EXPERIMENTAL: disks
|
|
steps:
|
|
- name: "Checkout"
|
|
uses: actions/checkout@v2
|
|
with: { fetch-depth: 1 }
|
|
- name: "Download Binary"
|
|
uses: actions/download-artifact@v2
|
|
with: { name: k3s, path: dist/artifacts/ }
|
|
- name: "Vagrant Cache"
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: |
|
|
~/.vagrant.d/boxes
|
|
~/.vagrant.d/gems
|
|
key: snapshotter-${{ hashFiles(format('tests/vagrant/snapshotter/{0}/{1}/Vagrantfile', matrix.snapshotter, matrix.vm)) }}
|
|
id: vagrant-cache
|
|
continue-on-error: true
|
|
- name: "Vagrant Plugin(s)"
|
|
run: vagrant plugin install vagrant-k3s
|
|
- name: "Vagrant Up ⏩ Install K3s"
|
|
run: vagrant up
|
|
- name: "⏳ Node"
|
|
run: vagrant provision --provision-with=k3s-wait-for-node
|
|
- name: "⏳ CoreDNS"
|
|
run: vagrant provision --provision-with=k3s-wait-for-coredns
|
|
- name: "k3s-status" # kubectl get node,all -A -o wide
|
|
run: vagrant provision --provision-with=k3s-status
|
|
- name: "k3s-snapshots" # if no snapshots then we fail
|
|
run: vagrant provision --provision-with=k3s-snapshots
|