name: golang

on:
  pull_request:
  push:
    branches:
      - main

concurrency:
  group: '${{ github.workflow }}-${{ github.head_ref || github.ref }}'
  cancel-in-progress: true

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Git Checkout
        uses: actions/checkout@v3
      - name: Set up Go tooling
        uses: actions/setup-go@v3
        with:
          go-version: '1.22'
      - name: Dummy Static Files
        run: touch bskyweb/static/js/blah.js && touch bskyweb/static/css/blah.txt && touch bskyweb/static/media/blah.txt
      - name: Check
        run: cd bskyweb/ && make check
      - name: Build (binary)
        run: cd bskyweb/ && make build
      - name: Test
        run: cd bskyweb/ && make test
  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Git Checkout
        uses: actions/checkout@v3
      - name: Set up Go tooling
        uses: actions/setup-go@v3
        with:
          go-version: '1.22'
      - name: Dummy Static Files
        run: touch bskyweb/static/js/blah.js && touch bskyweb/static/css/blah.txt && touch bskyweb/static/media/blah.txt
      - name: Lint
        run: cd bskyweb/ &&  make lint