name: ci

on:
  push:
    branches:
      - main
      - feature/*
  pull_request:
    branches:
      - main

jobs:
  Build:
    runs-on: docker
    services:
      localstack:
        image: localstack/localstack
        ports:
          - "4566:4566"
        env:
          SERVICES: ssm,dynamodb
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Setup Go
        uses: actions/setup-go@v3
        with:
          go-version: 1.25
      - name: Configure
        run: |
          git config --global url."https://${{ secrets.GO_MODULES_TOKEN }}:x-oauth-basic@github.com/lmika".insteadOf "https://github.com/lmika"
      - name: Test
        run: |
          set -xue
          go get ./...
          go test -p 1 ./...
        env:
          TEST_DYNAMO_URL: "http://localstack:4566"
          GOPRIVATE: "github:com/lmika/*"

  # Start Release
  Site:
    runs-on: docker
    env:
      NETLIFY_SITE_ID: 987651c8-4ffd-48d8-af67-4dbd49c48887
      NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Setup Go
        uses: actions/setup-go@v3
        with:
          go-version: 1.24
      - name: Install Hugo
        run: |
          curl -LO https://github.com/gohugoio/hugo/releases/download/v0.146.0/hugo_extended_0.146.0_linux-amd64.deb
          apt install -y ./hugo_extended_0.146.0_linux-amd64.deb
      - name: Build Site
        run: |
          cd _site
          mkdir -p themes
          git clone https://github.com/alex-shpak/hugo-book.git themes/hugo-book
          npm install
          hugo --minify
      - name: Publish Site
        run: |
          cd _site
          netlify deploy --dir docs --prod 

  'Release MacOS':
#    needs: build
    runs-on: macos
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Setup Go
        uses: actions/setup-go@v3
        with:
          go-version: 1.25
      - name: Configure
        run: |
          git config --global url."https://${{ secrets.GO_MODULES_TOKEN }}:x-oauth-basic@github.com/lmika".insteadOf "https://github.com/lmika"
      - name: Setup Goreleaser
        run: |
          go install github.com/goreleaser/goreleaser/v2@v2.12.7
      - name: Release
        # if: startsWith(github.ref, 'refs/tags/')
        run: |
          goreleaser release -f macos.goreleaser.yml --skip=validate --clean
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          HOMEBREW_TAP_PRIVATE_KEY: ${{ secrets.HOMEBREW_TAP_PRIVATE_KEY }}