From 2e922115d8c9a7c84b171268c178df9e2a524792 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 29 Dec 2021 12:58:19 +0300 Subject: [PATCH] Replace CircleCI with Github actions Signed-off-by: Evgenii Stratonikov --- .circleci/config.yml | 12 ----- .github/workflows/run_tests.yml | 92 +++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 12 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/run_tests.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index d44e5c7..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,12 +0,0 @@ -# Golang CircleCI 2.0 configuration file -# -# Check https://circleci.com/docs/2.0/language-go/ for more details -version: 2 -jobs: - build: - docker: - - image: circleci/golang:1.11 - working_directory: ~/{{ORG_NAME}}/{{REPO_NAME}} - steps: - - checkout - - run: go test -v ./... \ No newline at end of file diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml new file mode 100644 index 0000000..9925f38 --- /dev/null +++ b/.github/workflows/run_tests.yml @@ -0,0 +1,92 @@ +name: Tests + +on: + pull_request: + branches: + - master + types: [ opened, synchronize ] + workflow_dispatch: + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: golangci-lint + uses: golangci/golangci-lint-action@v2 + with: + version: latest + + test_cover: + name: Coverage + runs-on: ubuntu-20.04 + + env: + CGO_ENABLED: 0 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.17 + + - name: Restore Go modules from cache + uses: actions/cache@v2 + with: + path: /home/runner/go/pkg/mod + key: deps-${{ hashFiles('go.sum') }} + + - name: Update Go modules + run: go mod download -json + + - name: Write coverage profile + run: go test -v ./... -coverprofile=./coverage.txt -covermode=atomic -coverpkg=./pkg...,./cli/... + + - name: Upload coverage results to Codecov + uses: codecov/codecov-action@v1 + with: + fail_ci_if_error: false + path_to_write_report: ./coverage.txt + verbose: true + + tests: + name: Run tests + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ ubuntu-20.04, windows-2022 ] + go_versions: [ '1.15', '1.16', '1.17' ] + exclude: + - os: windows-2022 + go_versions: '1.15' + - os: windows-2022 + go_versions: '1.16' + - os: ubuntu-20.04 + go_versions: '1.17' + fail-fast: false + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: '${{ matrix.go_versions }}' + + - name: Restore Go modules from cache + uses: actions/cache@v2 + with: + path: /home/runner/go/pkg/mod + key: deps-${{ hashFiles('go.sum') }} + + - name: Update Go modules + run: go mod download -json + + - name: Run tests + run: go test -v ./...