Skip to content

deps: update dependency go to v1.25.3 #2502

deps: update dependency go to v1.25.3

deps: update dependency go to v1.25.3 #2502

Workflow file for this run

name: Test
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-go@v6
with:
go-version-file: go.mod
- 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.31
k8s-test: v1.31.1
- k3s: v1.32
k8s-test: v1.32.1
- k3s: v1.33
k8s-test: v1.33.1
- k3s: v1.34
k8s-test: v1.34.1
env:
K3S_CHANNEL: ${{ matrix.k3s }}
K8S_TEST_VERSION: ${{ matrix.k8s-test }}
ENV: gha-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.k3s }}
# These ginkgo flags were only added in 2.17+2.18, which is available in Kubernetes v1.31+
# Can be simplified once we no longer test <1.31.
GINKGO_EXTRA_ARGS: ${{ (matrix.k3s != 'v1.29' && matrix.k3s != 'v1.30') && '--silence-skips --github-output' || '' }}
steps:
- uses: actions/checkout@v5
- uses: actions/setup-go@v6
with:
go-version-file: go.mod
- uses: opentofu/setup-opentofu@v1
with:
tofu_version: v1.10.6 # 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.19.0 # renovate: datasource=github-releases depName=helm/helm
kubectl: v1.34.1 # renovate: datasource=github-releases depName=kubernetes/kubernetes
skaffold: v2.16.1 # renovate: datasource=github-releases depName=GoogleContainerTools/skaffold
- name: Setup k3sup
env:
K3SUP_VERSION: 0.13.11 # renovate: datasource=github-releases depName=alexellis/k3sup
run: |
curl https://github.com/alexellis/k3sup/releases/download/$K3SUP_VERSION/k3sup -sSL -o /usr/local/bin/k3sup
chmod +x /usr/local/bin/k3sup
- 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 --entrypoint test $DOCKER_IMAGE_ID -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: Get code coverage
run: |
source dev/files/env.sh
bash hack/get-coverage-from-k8s.sh
- name: Upload controller 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 }}
files: ./coverage/controller/coverage.txt
flags: e2e-controller
- name: Upload node 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 }}
files: ./coverage/node/coverage.txt
flags: e2e-node
- 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.10.5 # renovate: datasource=github-releases depName=hashicorp/nomad extractVersion=v(?<version>.+)
consul: 1.21.5 # renovate: datasource=github-releases depName=hashicorp/consul extractVersion=v(?<version>.+)
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@v5
- uses: actions/setup-go@v6
with:
go-version-file: go.mod
- uses: opentofu/setup-opentofu@v1
with:
tofu_version: v1.10.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.16.1 # 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/