Skip to content

propogate labels from limitador to deployment template #854

propogate labels from limitador to deployment template

propogate labels from limitador to deployment template #854

Workflow file for this run

name: Tests
on:
push:
branches: [ 'main' ]
pull_request:
branches: [ '*' ]
merge_group:
types: [ checks_requested ]
workflow_dispatch:
schedule:
- cron: "15 1 * * *"
jobs:
pre-job:
runs-on: ubuntu-latest
name: Pre job checks
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- uses: actions/checkout@v4
- id: skip_check
uses: fkirc/[email protected]
with:
cancel_others: false
paths_ignore: '["**/*.md", "**/*.adoc", "LICENSE"]'
unit-tests:
name: Unit Tests
if: ${{ github.event_name == 'schedule' || needs.pre-job.outputs.should_skip != 'true' }}
needs: pre-job
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- uses: actions/checkout@v4
- name: Run make test-unit
run: |
make test-unit
- name: Upload unit-test coverage reports to CodeCov # more at https://github.com/codecov/codecov-action
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: unit
fail_ci_if_error: false
verbose: true
integration-tests:
name: Integration Tests
if: ${{ github.event_name == 'schedule' || needs.pre-job.outputs.should_skip != 'true' }}
needs: pre-job
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Create k8s Kind Cluster
uses: helm/[email protected]
with:
version: v0.22.0
config: utils/kind-cluster.yaml
cluster_name: limitador-local
wait: 120s
- name: Check cluster info
run: |
kubectl cluster-info dump
- name: Run integration tests
run: |
make test-integration
- name: Upload integration-test coverage reports to CodeCov # more at https://github.com/codecov/codecov-action
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: integration
fail_ci_if_error: false
verbose: true
verify-manifests:
name: Verify manifests
if: ${{ github.event_name == 'schedule' || needs.pre-job.outputs.should_skip != 'true' }}
needs: pre-job
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- uses: actions/checkout@v4
- name: Verify manifests
run: make verify-manifests
verify-bundle:
name: Verify bundle
if: ${{ github.event_name == 'schedule' || needs.pre-job.outputs.should_skip != 'true' }}
needs: pre-job
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Run make verify-bundle
run: |
make verify-bundle
verify-fmt:
name: Verify fmt
if: ${{ github.event_name == 'schedule' || needs.pre-job.outputs.should_skip != 'true' }}
needs: pre-job
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Run make verify-fmt
run: |
make verify-fmt
verify-tidy:
name: Verify tidy
if: ${{ github.event_name == 'schedule' || needs.pre-job.outputs.should_skip != 'true' }}
needs: pre-job
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Run go mod tidy
run: |
go mod tidy
- name: Run make verify-tidy
run: |
make verify-tidy
lint:
name: Lint
if: ${{ github.event_name == 'schedule' || needs.pre-job.outputs.should_skip != 'true' }}
needs: pre-job
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Go Lint
run: make run-lint
verify-generate:
name: Verify generate
if: ${{ github.event_name == 'schedule' || needs.pre-job.outputs.should_skip != 'true' }}
needs: pre-job
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Verify generate command
run: |
make verify-generate
verify-go-mod:
name: Verify go.mod
if: ${{ github.event_name == 'schedule' || needs.pre-job.outputs.should_skip != 'true' }}
needs: pre-job
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Verify generate command
run: |
make verify-go-mod
verify-helm-charts:
name: Verify helm charts
if: ${{ github.event_name == 'schedule' || needs.pre-job.outputs.should_skip != 'true' }}
needs: pre-job
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.22.x
uses: actions/setup-go@v4
with:
go-version: 1.22.x
id: go
- name: Check out code
uses: actions/checkout@v4
- name: Run make verify-helm-charts
run: |
make verify-helm-charts
required-checks:
name: Tests Required Checks
# This check adds a list of checks to one job to simplify adding settings to the repo.
# If a new check is added in this file, and it should be retested on entry to the merge queue,
# it needs to be added to the list below aka needs: [ existing check 1, existing check 2, new check ].
needs: [ unit-tests, integration-tests, verify-manifests, verify-bundle, verify-fmt, verify-tidy, lint, verify-generate, verify-go-mod, verify-helm-charts ]
if: always()
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: echo '${{ toJSON(needs) }}' | jq -e 'all(.[]; .result == "success" or .result == "skipped")'