Continuous Integration #20
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: Continuous Integration | |
on: | |
push: | |
branches: | |
- master | |
# add release branches | |
pull_request: | |
branches: | |
- master | |
# add release branches | |
schedule: | |
- cron: '0 0 * * 1' # Every Monday at 00:00 UTC | |
jobs: | |
golang-check: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
go-version: [ | |
"1.20", | |
"1.21", | |
"1.22", | |
] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: Install Go dependencies | |
run: go mod download | |
- name: Go unit and integration tests | |
run: make simulation-test | |
- name: Go linters | |
if: ${{ matrix.go-version == '1.21' }} | |
uses: golangci/golangci-lint-action@v4 | |
with: | |
version: v1.56.2 | |
skip-pkg-cache: true | |
container-check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build container image | |
run: make docker-build | |
- name: Container file linter | |
uses: hadolint/[email protected] | |
with: | |
dockerfile: Dockerfile | |
project-check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check if 'make generate' was run | |
run: make check-generate | |
- name: Check if 'make manifests' was run | |
run: make check-manifests | |
- name: Check all files format | |
run: make ec | |
- name: Check if images are the same in Makefile and config/manager/kustomization.yaml | |
run: make check-images | |
oadp-compatibility-check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout OADP operator | |
uses: actions/checkout@v4 | |
with: | |
repository: openshift/oadp-operator | |
ref: ${{ github.base_ref || github.ref_name }} | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "1.20" # OADP Go version | |
- name: Checkout Non Admin Controller (NAC) | |
uses: actions/checkout@v4 | |
with: | |
path: oadp-non-admin | |
- name: Check Non Admin Controller (NAC) manifests | |
run: | | |
NON_ADMIN_CONTROLLER_PATH=./oadp-non-admin make update-non-admin-manifests | |
if test -n "$(git status --short -- ':!oadp-non-admin')"; then | |
echo "::warning::run 'make update-non-admin-manifests' in OADP repository to update Non Admin Controller (NAC) manifests" | |
fi |