From 77d00846d045e0aeb1a54fc12eb2b6b43b306433 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Simas?= Date: Thu, 20 Jun 2024 07:25:50 -0300 Subject: [PATCH] ci: add check ci workflow --- .github/workflows/check.yaml | 86 ++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 .github/workflows/check.yaml diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml new file mode 100644 index 0000000..59f2abe --- /dev/null +++ b/.github/workflows/check.yaml @@ -0,0 +1,86 @@ +name: Check + +on: + push: + branches: [main] + pull_request: + branches: [main] + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + format: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' + - name: Format + run: go fmt ./... && git diff --exit-code + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' + - name: Vet + run: go vet ./... + - name: Lint + uses: golangci/golangci-lint-action@v6 + with: + version: v1.58 + module: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' + - name: Mod tidy + run: go mod tidy && git diff --exit-code + - name: Mod download + run: go mod download + - name: Mod verify + run: go mod verify + build: + needs: [format, build, module] + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' + - name: Build + run: go build -o /dev/null ./cmd/zettelkasten-exporter/main.go + test: + needs: build + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' + - name: Test + run: go test -v -race -shuffle=on -coverprofile=coverage.txt ./... + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v4.0.1 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: coverage.txt