diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f20df96..5623e762 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,89 +1,83 @@ name: Kubernetes-sigs/krew CI -on: +on: push: - branches: - - '*' - tags: - - 'v*.*.*' + branches: + - "*" + tags: + - "v*.*.*" pull_request: - branches: - - '*' + branches: + - "*" jobs: - build: runs-on: ubuntu-latest steps: + - name: Set up Go 1.13 + uses: actions/setup-go@v1 + with: + go-version: 1.13 + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Add GOPATH/bin to PATH + run: echo "::add-path::$(go env GOPATH)/bin" + + - name: Install dependencies + run: go mod download + + - name: Install gox + run: hack/install-gox.sh + + - name: Ensure go module is tidy + run: go mod tidy && git diff --no-patch --exit-code + + - name: Verify code patterns + run: hack/verify-code-patterns.sh + + - name: Verify boilerplate + run: hack/verify-boilerplate.sh + + - name: Run code lint + run: hack/run-lint.sh + + - name: Run unit tests + run: go test -short -coverprofile=coverage.txt -covermode=atomic ./... + + - name: Make binaries && verify krew installation + run: hack/make-all.sh + + - name: Ensure kubectl installed + run: hack/ensure-kubectl-installed.sh + + - name: Verify installation + run: hack/verify-installation.sh + + - name: Run integration tests + run: hack/run-integration-tests.sh + + - name: Verify receipt migration from 0.2.x to 0.3.x + run: hack/verify-receipts-upgrade-migration.sh - - name: Set up Go 1.13 - uses: actions/setup-go@v1 - with: - go-version: 1.13 - id: go - - - name: Check out code into the Go module directory - uses: actions/checkout@v2 - - - name: Add GOPATH - run: echo "::add-path::$(go env GOPATH)/bin" - - - name: Install dependencies - run: go mod download - - - name: Install gox - run: hack/install-gox.sh - - - name: Verify code quality - run: go mod tidy && git diff --no-patch --exit-code - - - name: Verify code patterns - run: hack/verify-code-patterns.sh - - - name: Verify boilerplate - run: hack/verify-boilerplate.sh - - - name: Run code lint - run: hack/run-lint.sh - - - name: Run unit tests - run: go test -short -coverprofile=coverage.txt -covermode=atomic ./... - - - name: Make binaries && verify krew installation - run: hack/make-all.sh - - - name: Ensure kubectl installed - run: hack/ensure-kubectl-installed.sh - - - name: Verify installation - run: hack/verify-installation.sh - - - name: Run integration tests - run: hack/run-integration-tests.sh - - - name: Receipts upgrade migrations - run: hack/verify-receipts-upgrade-migration.sh - - - name: Create release - if: contains(github.ref, 'tags') - id: create_release - uses: actions/create-release@v1.0.0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.ref }} - release_name: Release ${{ github.ref }} - draft: false - prerelease: false - - - name: Upload binaries to release - if: contains(github.ref, 'tags') - uses: svenstaro/upload-release-action@v1-release - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: out/krew.* - tag: ${{ github.ref }} - overwrite: true - file_glob: true - - + - name: Create a new release + if: contains(github.ref, 'tags') + id: create_release + uses: actions/create-release@v1.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false + - name: Upload binaries to the new release + if: contains(github.ref, 'tags') + uses: svenstaro/upload-release-action@v1-release + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: out/krew.* + tag: ${{ github.ref }} + overwrite: true + file_glob: true