Merge pull request #303 from codefresh-io/skip-validation-with-plugin #384
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/[email protected] | |
with: | |
go-version: ${{ env.GOLANG_VERSION }} | |
- name: Checkout code | |
uses: actions/[email protected] | |
- 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/[email protected] | |
with: | |
go-version: ${{ env.GOLANG_VERSION }} | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/[email protected] | |
- 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/[email protected] | |
with: | |
file: coverage.out | |
codegen: | |
name: Verify Codegen | |
runs-on: ubuntu-latest | |
env: | |
GOPATH: /home/runner/go | |
steps: | |
- name: Checkout code | |
uses: actions/[email protected] | |
- name: Setup Golang | |
uses: actions/[email protected] | |
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 |