name: release
on:
  push:
    tags:
      - 'v[0-9]+.[0-9]+.[0-9]+'
jobs:
  release:
    runs-on: ubuntu-latest
    services:
      postgres:
        image: postgres:17
        env:
          POSTGRES_USER: ntfy
          POSTGRES_PASSWORD: ntfy
          POSTGRES_DB: ntfy_test
        ports:
          - 5432:5432
        options: >-
          --health-cmd "pg_isready -U ntfy"
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
    env:
      NTFY_TEST_DATABASE_URL: "postgres://ntfy:ntfy@localhost:5432/ntfy_test?sslmode=disable"
      NTFY_TEST_S3_URL: ${{ secrets.NTFY_TEST_S3_URL }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Install Go
        uses: actions/setup-go@v4
        with:
          go-version: '1.25.x'
      - name: Install node
        uses: actions/setup-node@v3
        with:
          node-version: '24'
          cache: 'npm'
          cache-dependency-path: './web/package-lock.json'
      - name: Docker login
        uses: docker/login-action@v2
        with:
          username: ${{ github.repository_owner }}
          password: ${{ secrets.DOCKER_HUB_TOKEN }}
      - name: Install dependencies
        run: make build-deps-ubuntu
      - name: Build and publish
        run: make release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Print build results and checksums
        run: make cli-build-results
