on:
  release:
    types: [published]

name: release
jobs:
  release:
    name: release
    runs-on: ubuntu-latest
    steps:

    - name: Get release
      id: get_release
      uses: bruceadams/get-release@v1.3.2
      env:
        GITHUB_TOKEN: ${{ github.token }}

    - name: Checkout repo
      uses: actions/checkout@v3
      with:
        fetch-depth: 0

    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: ^1.15

    - name: Build binaries
      run: go run build/build.go

    - name: Get release from tag
      run: echo ::set-output name=RELEASE_VERSION::$(echo ${GITHUB_REF:11})
      id: versioner

    - name: Create target directory
      run: mkdir -p usr/bin

    - name: Copy Linux version to dnscontrol
      run: cp dnscontrol-Linux usr/bin/dnscontrol

    - name: Bundle RPM
      uses: bpicode/github-action-fpm@master
      with:
        fpm_args: 'usr/'
        fpm_opts: '-n dnscontrol -t rpm -s dir -v ${{ steps.versioner.outputs.RELEASE_VERSION }} --license "The MIT License (MIT)" --url "https://dnscontrol.org/" --description "DNSControl: Infrastructure as Code for DNS Zones"'

    - name: Bundle DEB
      uses: bpicode/github-action-fpm@master
      with:
        fpm_args: 'usr/'
        fpm_opts: '-n dnscontrol -t deb -s dir -v ${{ steps.versioner.outputs.RELEASE_VERSION }} --license "The MIT License (MIT)" --url "https://dnscontrol.org/" --description "DNSControl: Infrastructure as Code for DNS Zones"'

    - name: Upload dnscontrol-Darwin
      uses: actions/upload-release-asset@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: ${{ steps.get_release.outputs.upload_url }}
        asset_path: ./dnscontrol-Darwin
        asset_name: dnscontrol-Darwin
        asset_content_type: application/octet-stream

    - name: Upload dnscontrol-Linux
      uses: actions/upload-release-asset@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: ${{ steps.get_release.outputs.upload_url }}
        asset_path: ./dnscontrol-Linux
        asset_name: dnscontrol-Linux
        asset_content_type: application/octet-stream

    - name: Upload dnscontrol.exe
      uses: actions/upload-release-asset@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: ${{ steps.get_release.outputs.upload_url }}
        asset_path: ./dnscontrol.exe
        asset_name: dnscontrol.exe
        asset_content_type: application/octet-stream

    - name: Upload RPM
      uses: actions/upload-release-asset@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: ${{ steps.get_release.outputs.upload_url }}
        asset_path: dnscontrol-${{ steps.versioner.outputs.RELEASE_VERSION }}-1.x86_64.rpm
        asset_name: dnscontrol-${{ steps.versioner.outputs.RELEASE_VERSION }}-1.x86_64.rpm
        asset_content_type: application/x-rpm

    - name: Upload DEB
      uses: actions/upload-release-asset@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: ${{ steps.get_release.outputs.upload_url }}
        asset_path: dnscontrol_${{ steps.versioner.outputs.RELEASE_VERSION }}_amd64.deb
        asset_name: dnscontrol_${{ steps.versioner.outputs.RELEASE_VERSION }}_amd64.deb
        asset_content_type: application/vnd.debian.binary-package

