deps: update github.com/hashicorp/nomad/api digest to 753f752 #1675
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.9.0 # 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.4 # renovate: datasource=github-releases depName=helm/helm | |
kubectl: v1.32.0 # 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: Dump logs & events | |
if: always() | |
continue-on-error: true | |
run: | | |
source dev/files/env.sh | |
mkdir -p debug-logs | |
echo "::group::hcloud-csi.log" | |
kubectl logs \ | |
--namespace kube-system \ | |
--selector app.kubernetes.io/name=hcloud-csi \ | |
--all-containers \ | |
--prefix=true \ | |
--tail=-1 \ | |
| tee debug-logs/hcloud-csi.log | |
echo "::endgroup::" | |
echo "::group::events.yaml" | |
kubectl get events \ | |
--all-namespaces \ | |
--sort-by=.firstTimestamp \ | |
--output yaml \ | |
| tee debug-logs/events.yaml | |
echo "::endgroup::" | |
- name: Cleanup | |
if: always() | |
continue-on-error: true | |
run: make -C dev down | |
- name: Persist debug artifacts | |
if: always() | |
continue-on-error: true | |
uses: actions/upload-artifact@v4 | |
with: | |
name: debug-logs-k8s-${{ env.ENV }} | |
path: debug-logs/ | |
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.5 # renovate: datasource=github-releases depName=hashicorp/nomad | |
consul: 1.20.2 # renovate: datasource=github-releases depName=hashicorp/consul | |
env: | |
TF_VAR_nomad_version: ${{ matrix.nomad }} | |
TF_VAR_consul_version: ${{ matrix.consul }} | |
ENV: gha-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.nomad }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.23" | |
- uses: opentofu/setup-opentofu@v1 | |
with: | |
tofu_version: v1.9.0 # 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: Dump logs & events | |
if: always() | |
continue-on-error: true | |
run: | | |
source nomad/dev/files/env.sh | |
mkdir -p debug-logs | |
fetch_job_info () { | |
# Fetch all allocations from a job | |
ALLOC_IDS=$(nomad job allocs -json "$1" | jq -r ".[].ID") | |
# Fetch logs of each allocation and dump them in a file | |
for ALLOC_ID in $ALLOC_IDS; do | |
echo "::group::hcloud-csi.log::$1::$ALLOC_ID" | |
nomad alloc logs "$ALLOC_ID" | tee "debug-logs/$1-$ALLOC_ID.log" | |
echo "::endgroup::" | |
done | |
# Fetch events of each allocation and dump them in a file | |
for ALLOC_ID in $ALLOC_IDS; do | |
echo "::group::events.json::$1::$ALLOC_ID" | |
nomad alloc status -json $ALLOC_ID \ | |
| jq -r ".TaskStates.plugin.Events" \ | |
| tee "debug-logs/$1-$ALLOC_ID.json" | |
echo "::endgroup::" | |
done | |
} | |
fetch_job_info hcloud-csi-controller | |
fetch_job_info hcloud-csi-node | |
- name: Cleanup | |
if: always() | |
continue-on-error: true | |
run: make -C nomad/dev down | |
- name: Persist debug artifacts | |
if: always() | |
continue-on-error: true | |
uses: actions/upload-artifact@v4 | |
with: | |
name: debug-logs-nomad-${{ env.ENV }} | |
path: debug-logs/ |