name: Build PPA source packages
on:
  release:
    types: [published]
    branches: [v1.18.x]
jobs:
  build:
    runs-on: ubuntu-22.04
    environment:
      name: ppa
    strategy:
      fail-fast: false
      matrix:
        target:
          - jammy
          - noble
          - plucky
          - questing
    steps:
    - uses: actions/checkout@v6
      with:
        fetch-depth: 0
        fetch-tags: true

    - name: Setup dependencies
      run: |
          sudo apt-get update -qq
          sudo apt-get install -qq debhelper devscripts gnupg

      # Note for future maintainers: the secret key should be stored
      # in the GHA secret in ASCII-armored form, and must not be
      # password-protected.
    - name: Setup GPG signing key
      env:
          PPA_SECRET_KEY: ${{ secrets.PPA_SECRET_KEY }}
      run: |
          echo "$PPA_SECRET_KEY" > private-key.asc
          gpg --import --batch private-key.asc
          rm -f private-key.asc

    - name: Build source package
      env:
        DEBFULLNAME: "Github Actions"
        DEBEMAIL: "dqlitebot@lists.canonical.com"
        TARGET: ${{ matrix.target }}
      run: |
          # Get the version from configure.ac
          VERSION=$(autoconf --trace="AC_INIT:\$2" 2>/dev/null)
          dch --create \
            --distribution ${TARGET} \
            --package dqlite1.18 \
            --newversion ${VERSION}~${TARGET}1 \
            "Automatic build from Github"
          debuild -S -sa -d -k${{ vars.PPA_PUBLIC_KEY }}

    - name: Upload to Launchpad
      run: |
          (cd .. && dput -U -u ppa:dqlite/dev *.changes)
