---
name: CI

'on':
  - push
  - pull_request

env:
  GOPROXY: https://proxy.golang.org
  GOPATH: ${{ github.workspace }}/go

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Set up go
        uses: actions/setup-go@v5
        with:
          go-version: '1.24.1'

      - uses: actions/checkout@v4
        with:
          path: git-sync

      - name: make all-build
        working-directory: git-sync
        run: |
          make all-build

  test:
    runs-on: ubuntu-latest
    steps:
      - name: Set up go
        uses: actions/setup-go@v5
        with:
          go-version: '1.24.1'

      - uses: actions/checkout@v4
        with:
          path: git-sync

      - name: make test
        working-directory: git-sync
        env:
          SKIP_GITHUB_APP_TEST: true
          #SKIP_GITHUB_APP_TEST: false
          #TEST_GITHUB_APP_APPLICATION_ID: ${{ secrets.TEST_GITHUB_APP_APPLICATION_ID }}
          #TEST_GITHUB_APP_AUTH_TEST_REPO: ${{ secrets.TEST_GITHUB_APP_AUTH_TEST_REPO }}
          #TEST_GITHUB_APP_CLIENT_ID: ${{ secrets.TEST_GITHUB_APP_CLIENT_ID }}
          #TEST_GITHUB_APP_INSTALLATION_ID: ${{ secrets.TEST_GITHUB_APP_INSTALLATION_ID }}
          #TEST_GITHUB_APP_PRIVATE_KEY: ${{ secrets.TEST_GITHUB_APP_PRIVATE_KEY }}
        run: |
          make test

  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Set up go
        uses: actions/setup-go@v5
        with:
          go-version: '1.24.1'

      - uses: actions/checkout@v4
        with:
          path: git-sync

      # We run the github action, even though this is duplicated in `make lint` below.
      # This is because the action gives easier-to-read output than the linter.
      # There is a risk of drift between the two, but this is only linting,
      # not runtime correctness!
      - name: golangci-lint
        uses: golangci/golangci-lint-action@v8
        with:
          working-directory: git-sync
          version: v2.1.0

      - name: make lint
        working-directory: git-sync
        run: |
          make lint
