Skip to content

ci: added pre-commit #1531

ci: added pre-commit

ci: added pre-commit #1531

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/action-setup-kube-tools@v0.11.2
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
deploy-manifests:
runs-on: ubuntu-latest
steps:
- uses: yokawasa/action-setup-kube-tools@v0.11.2
with:
setup-tools: |
helm
helm: v3.16.3 # renovate: datasource=github-releases depName=helm/helm
- uses: actions/checkout@v4
- name: Generate manifests from helm chart
run: hack/update-deployment-yamls.sh
- name: Check for diff
run: git diff --exit-code -- deploy/
- name: Show warning
if: failure()
run: echo "::error title=Deployment Manifests outdated::Please run hack/update-deployment-yamls.sh and commit the changes to deploy/"
helm-chart:
runs-on: ubuntu-latest
steps:
- uses: yokawasa/action-setup-kube-tools@v0.11.2
with:
setup-tools: |
helm
helm: v3.16.3 # renovate: datasource=github-releases depName=helm/helm
- uses: actions/checkout@v4
# This step also verifies that the chart builds
- name: Verify Snapshots
run: |
hack/update-helm-snapshots.sh
git diff --exit-code -- chart/.snapshots/
- name: Show warning
if: failure()
run: echo "::error title=Helm Snapshots outdated::Please run hack/update-helm-snapshots.sh and commit the changes to chart/.snapshots/"
- name: Helm Lint
run: helm lint chart/