diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 0000000..eb9a35a --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,59 @@ +# This is a basic workflow to help you get started with Actions +name: CI + +permissions: + contents: read + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "main" branch + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: 📥 Check out the code + uses: actions/checkout@v4 + with: + fetch-depth: 2 + + - name: 💿 Set up Go + uses: actions/setup-go@v4 + with: + go-version: 1.21 + cache: false + + - name: 🕵 Lint the code + uses: golangci/golangci-lint-action@v3 + with: + version: v1.54 + args: --timeout=3m --out-format=colored-line-number + + - name: 🏭 Install dependencies + run: go mod vendor + + - name: 🔬 Run unit tests + run: make test + + - name: 📊 Upload coverage to Codecov + uses: codecov/codecov-action@v4.0.1 + with: + token: ${{ secrets.CODECOV_TOKEN }} + slug: sumelms/microservice-activity + fail_ci_if_error: true + + - name: 🧰 Build + run: make build