name: 'Package-Debian'
on:
  workflow_dispatch:
    inputs:
      build_branch:
        description: 'Branch to build from'
        required: true
        default: 'maint-3.9'
      rev:
        description: 'Package revision'
        required: true
        default: '1'
      distribution:
        description: 'Target distribution'
        required: true
        default: 'focal'
jobs:
  linux-docker:
    runs-on: ubuntu-20.04
    # The GH default is 360 minutes (it's also the max as of Feb-2021). However
    # we should fail sooner. The only reason to exceed this time is if a test
    # hangs.
    timeout-minutes: 120
    strategy:
      # Enabling fail-fast would kill all Dockers if one of them fails. We want
      # maximum output.
      fail-fast: false
      matrix:
        # For every distro we want to test here, add one key 'distro' with a
        # descriptive name, and one key 'containerid' with the name of the
        # container (i.e., what you want to docker-pull)
        include:
          - distro: 'Ubuntu 20.04'
            containerid: 'gnuradio/ci:ubuntu-20.04-3.9'
            cxxflags: -Werror
    name: ${{ matrix.distro }}
    container:
      image: ${{ matrix.containerid }}
      volumes:
        - build_data:/build
      options: --cpus 2
    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 0
        ref: ${{ github.event.inputs.build_branch }}
    - uses: actions/setup-python@v1
      with:
        python-version: "3.x"
    - run: apt-get update && apt-get install -yq devscripts debhelper dh-python
    - name: Import GPG key
      id: import_gpg
      uses: crazy-max/ghaction-import-gpg@v3
      with:
        gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
        passphrase: ${{ secrets.PASSPHRASE }}
    - name: GPG user IDs
      run: |
        echo "fingerprint: ${{ steps.import_gpg.outputs.fingerprint }}"
        echo "keyid:       ${{ steps.import_gpg.outputs.keyid }}"
        echo "name:        ${{ steps.import_gpg.outputs.name }}"
        echo "email:       ${{ steps.import_gpg.outputs.email }}"
    - name: Run Packaging Script
      run: |
        export NAME="${{secrets.NAME}}" 
        export EMAIL="${{secrets.EMAIL}}" 
        export DEBFULLNAME="${{secrets.NAME}}"
        export DEBEMAIL="${{secrets.EMAIL}}" 
        export UBUEMAIL="${{secrets.EMAIL}}" 
        export DISTRIBUTION="${{ github.event.inputs.distribution }}"
        export GITBRANCH="${{ github.event.inputs.build_branch }}"
        export REV="${{ github.event.inputs.rev }}"
        cd /build && sh $GITHUB_WORKSPACE/.packaging/scripts/pkg-debian.sh
    - name: Push to Launchpad
      run: 
        cd /build && dput -c $GITHUB_WORKSPACE/.packaging/launchpad/dput.cf "${{ github.event.inputs.build_branch }}" $(ls *.changes)
