chore: leave the validation of setHeaderRoute to the plugin when plug… #383
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: Go | |
on: | |
push: | |
branches: | |
# - "master" | |
- "release-*" # Codefresh convention | |
pull_request: | |
branches: | |
# - "master" | |
- "release-*" # Codefresh convention | |
- "master" | |
env: | |
# Golang version to use across CI steps | |
GOLANG_VERSION: '1.20' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
jobs: | |
event_file: | |
name: "Event File" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Upload | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Event File | |
path: ${{ github.event_path }} | |
lint-go: | |
name: Lint Go code | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@v4.1.0 | |
with: | |
go-version: ${{ env.GOLANG_VERSION }} | |
- name: Checkout code | |
uses: actions/checkout@v3.1.0 | |
- name: Run golangci-lint | |
uses: golangci/golangci-lint-action@v3 | |
with: | |
version: v1.53.3 | |
args: --timeout 6m | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@v4.1.0 | |
with: | |
go-version: ${{ env.GOLANG_VERSION }} | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v3.1.0 | |
- name: Restore go build cache | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache/go-build | |
key: ${{ runner.os }}-go-build-v1-${{ github.run_id }} | |
- name: Download all Go modules | |
run: | | |
go mod download | |
- name: Compile all packages | |
run: make controller plugin | |
- name: Test | |
run: make test-unit | |
- name: Upload Unit Test Results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Unit Test Results | |
path: | | |
junit.xml | |
- name: Generate code coverage artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: code-coverage | |
path: coverage.out | |
- name: Upload code coverage information to codecov.io | |
uses: codecov/codecov-action@v3.1.4 | |
with: | |
file: coverage.out | |
codegen: | |
name: Verify Codegen | |
runs-on: ubuntu-latest | |
env: | |
GOPATH: /home/runner/go | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3.1.0 | |
- name: Setup Golang | |
uses: actions/setup-go@v4.1.0 | |
with: | |
go-version: ${{ env.GOLANG_VERSION }} | |
# k8s codegen generates files into GOPATH location instead of the GitHub git checkout location | |
# This symlink is necessary to ensure that `git diff` detects changes | |
- name: Create symlink in GOPATH | |
run: | | |
mkdir -p ~/go/src/github.com/argoproj | |
ln -s $(pwd) ~/go/src/github.com/argoproj/argo-rollouts | |
- uses: actions/cache@v3 | |
with: | |
path: /home/runner/.cache/go-build | |
key: GOCACHE-${{ hashFiles('**/go.mod') }} | |
- uses: actions/cache@v3 | |
with: | |
path: /home/runner/go/pkg/mod | |
key: GOMODCACHE-${{ hashFiles('**/go.mod') }} | |
- uses: actions/cache@v3 | |
with: | |
path: /home/runner/go/bin | |
key: go-bin-v1-${{ hashFiles('**/go.mod') }} | |
- name: Install protoc | |
run: | | |
make install-toolchain | |
- name: Add ~/go/bin to PATH | |
run: | | |
echo "/home/runner/go/bin" >> $GITHUB_PATH | |
- name: Add /usr/local/bin to PATH | |
run: | | |
echo "/usr/local/bin" >> $GITHUB_PATH | |
- name: Run codegen | |
run: | | |
make go-mod-vendor | |
make codegen | |
- name: Ensure nothing changed | |
run: git diff --exit-code |