omissis/goarkitect

View on GitHub
.github/workflows/development.yaml

Summary

Maintainability
Test Coverage
---
name: development

on:
  push:
    branches:
      - main
  pull_request:

permissions:
  contents: read
  pull-requests: read

concurrency:
  group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
  cancel-in-progress: true

jobs:
  qa:
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Setup Git Crypt
        run: sudo apt-get install -y git-crypt
      - name: Setup Golang
        uses: actions/setup-go@v3
        with:
          go-version: '^1.19.1'
      - name: Fix file permissions
        run: sudo chmod 0700 internal/arch/file/expect/test/permissions/0700.txt
      - name: Lint Go files
        uses: golangci/golangci-lint-action@v3
        with:
          version: v1.49.0
          args: -v --color=always --config=.rules/.golangci.yml ./...
      - name: Run tests
        run: go test -v -race -covermode=atomic -coverprofile=coverage.out ./...
      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v3
      - name: Build binaries
        uses: goreleaser/goreleaser-action@v3
        with:
          distribution: goreleaser
          version: '1.11.2'
          args: release --debug --snapshot --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GO_VERSION: '1.19.1'