diff --git a/.github/workflows/verify.yaml b/.github/workflows/verify.yaml new file mode 100644 index 00000000..673bfa73 --- /dev/null +++ b/.github/workflows/verify.yaml @@ -0,0 +1,73 @@ +name: verify + +on: + push: + branches: + - 'main' + paths-ignore: + - '*.md' + tags: + - 'v*' + pull_request: + paths-ignore: + - '*.md' + workflow_dispatch: + +jobs: + verify: + runs-on: ubuntu-latest + name: Build & Test + + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - uses: actions/setup-go@v5 + with: + go-version: ~1.22 + cache: true + + - name: go version + run: | + go version + + - name: build + run: | + make + + - name: verify that generated code is up-to-date + run: | + # make (which we ran in the previous step) will implicitly also run the targets manifests & generate, which + # could potentially modify code that is under version control, if changes have been comitted that would have + # required updating manifests or generated code and these updates have not been done. + git diff --exit-code + + - name: lint + run: | + make lint + + - name: test + run: | + make test + + # Instead of running make docker-build, we run docker build via a dedicated action, which enables Docker layer + # caching. + - uses: docker/setup-buildx-action@v3 + # - uses: docker/login-action@v3 + # with: + # username: ${{ secrets.DOCKERHUB_USERNAME }} + # password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: build container image + uses: docker/build-push-action@v5 + with: + context: . + push: false + tags: dash0-operator-controller:latest + cache-from: type=gha + cache-to: type=gha,mode=max + + # TODO look into https://github.com/helm/kind-action and run e2e test in GH action + # - name: end-to-end test + # run: | + # make test-e2e \ No newline at end of file