feat(nomad): improved nomad support #1537
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
env: | |
GOTOOLCHAIN: local | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.23" | |
- name: Run tests | |
run: go test -v -tags integration -race -coverprofile=coverage.txt ./... | |
- name: Upload coverage reports to Codecov | |
if: > | |
!startsWith(github.head_ref, 'renovate/') && | |
!startsWith(github.head_ref, 'releaser-pleaser--') | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
kubernetes: | |
name: kubernetes ${{ matrix.k3s }} | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.k3s }} | |
cancel-in-progress: true | |
strategy: | |
fail-fast: false # Continue tests matrix if a flaky run occur. | |
matrix: | |
include: | |
- k3s: v1.29 | |
k8s-test: v1.29.9 | |
- k3s: v1.30 | |
k8s-test: v1.30.5 | |
- k3s: v1.31 | |
k8s-test: v1.31.1 | |
env: | |
K3S_CHANNEL: ${{ matrix.k3s }} | |
K8S_TEST_VERSION: ${{ matrix.k8s-test }} | |
ENV: gha-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.k3s }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.23" | |
- uses: opentofu/setup-opentofu@v1 | |
with: | |
tofu_version: v1.8.7 # renovate: datasource=github-releases depName=opentofu/opentofu | |
tofu_wrapper: false | |
- uses: docker/setup-buildx-action@v3 | |
- uses: yokawasa/[email protected] | |
with: | |
setup-tools: | | |
helm | |
kubectl | |
skaffold | |
helm: v3.16.3 # renovate: datasource=github-releases depName=helm/helm | |
kubectl: v1.31.4 # renovate: datasource=github-releases depName=kubernetes/kubernetes | |
skaffold: v2.13.2 # renovate: datasource=github-releases depName=GoogleContainerTools/skaffold | |
- name: Setup k3sup | |
run: curl -sLS https://get.k3sup.dev | sh | |
- name: Setup k8s test binaries | |
run: make -C test/e2e/kubernetes bin | |
- uses: hetznercloud/tps-action@main | |
- name: Setup environment | |
run: make -C dev up | |
- name: Run skaffold | |
run: | | |
source dev/files/env.sh | |
skaffold run | |
- name: Check XFS config file existence | |
run: | | |
DOCKER_IMAGE_ID=$(docker images --format "{{.ID}} {{.CreatedAt}}" localhost:30666/docker_io_hetznercloud_hcloud-csi-driver | sort -k2 -r | head -n1 | awk '{print $1}') | |
docker run --rm -i $DOCKER_IMAGE_ID test -f /usr/share/xfsprogs/mkfs/lts_4.19.conf | |
- name: Run parallel tests | |
run: | | |
source dev/files/env.sh | |
make -C test/e2e/kubernetes parallel | |
- name: Run serial tests | |
run: | | |
source dev/files/env.sh | |
make -C test/e2e/kubernetes serial | |
- name: Cleanup | |
if: always() | |
continue-on-error: true | |
run: make -C dev down | |
nomad: | |
name: nomad ${{ matrix.nomad }} | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.nomad }} | |
cancel-in-progress: true | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- nomad: 1.9.3 # renovate: datasource=github-releases depName=hashicorp/nomad | |
consul: 1.20.1 # renovate: datasource=github-releases depName=hashicorp/consul | |
env: | |
TF_VAR_nomad_version: ${{ matrix.nomad }} | |
TF_VAR_consul_version: ${{ matrix.consul }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.23" | |
- uses: opentofu/setup-opentofu@v1 | |
with: | |
tofu_version: v1.8.6 # renovate: datasource=github-releases depName=opentofu/opentofu | |
tofu_wrapper: false | |
- uses: docker/setup-buildx-action@v3 | |
- uses: yokawasa/[email protected] | |
with: | |
setup-tools: | | |
skaffold | |
skaffold: v2.13.2 # renovate: datasource=github-releases depName=GoogleContainerTools/skaffold | |
- uses: hashicorp/setup-nomad@main | |
id: setup | |
with: | |
version: ${{ matrix.nomad }} | |
# used for generating the certificates | |
- name: setup consul binary | |
run: | | |
curl -o consul.zip https://releases.hashicorp.com/consul/${{ matrix.consul }}/consul_${{ matrix.consul }}_linux_amd64.zip | |
unzip consul.zip | |
mv consul /usr/local/bin/ | |
- uses: hetznercloud/tps-action@main | |
- name: Setup environment | |
run: make -C nomad/dev up | |
- name: Run skaffold | |
run: | | |
source nomad/dev/files/env.sh | |
skaffold -f nomad/skaffold.yaml build | |
- name: Run tests | |
run: | | |
source nomad/dev/files/env.sh | |
go test -v -tags e2e ./test/e2e/nomad/... | |
- name: Cleanup | |
if: always() | |
continue-on-error: true | |
run: make -C nomad/dev down |