Skip to content

feat(nomad): improved nomad support #1536

feat(nomad): improved nomad support

feat(nomad): improved nomad support #1536

Workflow file for this run

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