name: Release General

on:
  push:
    tags:
      - 'v[0-9]+.[0-9]+*'

jobs:
  release:
    name: Create GitHub release
    runs-on: ubuntu-latest
    if: startsWith(github.ref, 'refs/tags/')
    outputs:
      upload_url: ${{ steps.create_release.outputs.upload_url }}
      release_id: ${{ steps.create_release.outputs.id }}
    steps:
      - uses: actions/checkout@v2
      - name: Extract ChangeLog entry ...
        # Hack to extract latest entry for body_path below
        run: |
          awk '/-----*/{if (x == 1) exit; x=1;next}x' ChangeLog.md \
              |head -n -1 > release.md
          cat release.md
      - name: Create release ...
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: Merecat httpd ${{ github.ref }}
          body_path: release.md
          draft: false
          prerelease: false
  tarball:
    name: Build and upload release tarball
    needs: release
    if: startsWith(github.ref, 'refs/tags/')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install dependencies ...
        run: |
          sudo apt-get -y update
          sudo apt-get -y install tree libconfuse-dev libssl-dev zlib1g-dev php-cgi
      - name: Creating Makefiles ...
        run: |
          ./autogen.sh
          ./configure
      - name: Build release ...
        run: |
          make release
          mkdir -p artifacts/
          mv ../*.tar.* artifacts/
      - name: Upload release artifacts ...
        uses: skx/github-action-publish-binaries@release-0.15
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          releaseId: ${{ needs.release.outputs.release_id }}
          args: artifacts/*
