name: Golangci-lint

on:
  push:
    branches:
      - main
  pull_request:

permissions:
  contents: read
  # Allow read access to pull request. Use with `only-new-issues` option.
  pull-requests: read

# Abort runs of *this* workflow, if a new commit with the same ref is pushed.
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
  golangci:
    name: lint
    runs-on: ubuntu-latest
    env:
      GOPRIVATE: github.com/edgelesssys/*
    steps:
      - name: Checkout
        uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b

      - name: Install Dependencies
        run: sudo apt-get update && sudo apt-get -y install libcryptsetup-dev

      - name: Setup Go environment
        uses: actions/setup-go@268d8c0ca0432bb2cf416faae41297df9d262d7f
        with:
          go-version: "1.18"
          cache: true

      - name: golangci-lint
        uses: golangci/golangci-lint-action@537aa1903e5d359d0b27dbc19ddd22c5087f3fbc
        with:
          skip-pkg-cache: true
          skip-build-cache: true
          args: --timeout=15m
