Feature/image state update action #187
Workflow file for this run
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: Unit Tests | |
on: | |
push: | |
branches: | |
- main | |
- release-* | |
tags: | |
- "v*" | |
pull_request: | |
branches: | |
- main | |
- release-* | |
workflow_dispatch: { } | |
env: | |
GO_VERSION: '1.19' | |
jobs: | |
detect-noop: | |
name: Detect No-op Changes | |
runs-on: ubuntu-latest | |
outputs: | |
noop: ${{ steps.noop.outputs.should_skip }} | |
steps: | |
- name: Detect No-op Changes | |
id: noop | |
uses: fkirc/skip-duplicate-actions@v4.0.0 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
paths_ignore: '["**.md", "**.mdx", "**.png", "**.jpg", "**.svg"]' | |
do_not_skip: '["workflow_dispatch", "schedule", "push"]' | |
concurrent_skipping: false | |
unit-test: | |
name: Run Unit Tests and Integration Tests | |
runs-on: ubuntu-latest | |
needs: detect-noop | |
if: needs.detect-noop.outputs.noop != 'true' | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v3 | |
- name: Setup Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
cache: true | |
- name: Cache envtest binaries | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.local/share/kubebuilder-envtest | |
key: ${{ runner.os }}-kubebuilder-envtest-${{ hashFiles('Makefile') }} | |
restore-keys: | | |
${{ runner.os }}-kubebuilder-envtest- | |
- name: Install ginkgo | |
run: | | |
go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo | |
- name: Prepare minikube | |
# For whatever reason, certain unit tests relies on k8s. | |
# Although such reliance should be removed, in the meantime, | |
# we set up a local k8s cluster to run such tests. | |
# Use minikube simply because it comes with GitHub runner. | |
run: minikube start | |
- name: Run tests | |
run: make test | |
- name: Upload coverage report | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./cover.out | |
flags: unittests | |
name: codecov-umbrella | |
fail_ci_if_error: true | |
verbose: true |