82 lines
2.2 KiB
YAML
82 lines
2.2 KiB
YAML
name: CI Workflow
|
|
on:
|
|
# Run this workflow every time a new commit pushed to upstream/fork repository.
|
|
# Run workflow on fork repository will help contributors find and resolve issues before sending a PR.
|
|
push:
|
|
pull_request:
|
|
jobs:
|
|
golangci:
|
|
name: lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: golangci-lint
|
|
uses: golangci/golangci-lint-action@v2
|
|
with:
|
|
# the version of golangci-lint.
|
|
version: v1.32.2
|
|
|
|
# show only new issues if it's a pull request.
|
|
only-new-issues: false
|
|
codegen:
|
|
name: codegen, crdgen
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: checkout code
|
|
uses: actions/checkout@v2
|
|
- name: install Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.14.x
|
|
- name: verify codegen
|
|
run: hack/verify-codegen.sh
|
|
- name: verify crdgen
|
|
run: hack/verify-crdgen.sh
|
|
build:
|
|
name: compile binary and images
|
|
needs: codegen # rely on codegen successful completion
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: checkout code
|
|
uses: actions/checkout@v2
|
|
with:
|
|
# Number of commits to fetch. 0 indicates all history for all branches and tags.
|
|
# We need to guess version via git tags.
|
|
fetch-depth: 0
|
|
- name: install Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.14.x
|
|
- name: compile
|
|
run: make all
|
|
- name: make images
|
|
run: make images
|
|
test:
|
|
name: unit test
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: checkout code
|
|
uses: actions/checkout@v2
|
|
- name: install Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.14.x
|
|
- name: make test
|
|
run: make test
|
|
e2e:
|
|
name: e2e test
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: checkout code
|
|
uses: actions/checkout@v2
|
|
- name: install Go
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.14.x
|
|
- name: setup e2e test environment
|
|
run: hack/karmada-bootstrap.sh
|
|
- name: run e2e
|
|
run: hack/run-e2e.sh
|