dnscontrol/.github/workflows/release.yml
Tom Limoncelli 7efec559fc
Remove bruceadams/get-release (#2350)
Co-authored-by: Tom Limoncelli <tal@whatexit.org>
2023-05-10 15:23:35 -04:00

119 lines
3.8 KiB
YAML

on:
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+
- v[0-9]+.[0-9]+.[0-9]+-*
name: release
jobs:
release:
name: release
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ^1.15
- name: Install goreleaser
run: go install github.com/goreleaser/goreleaser@latest
- name: Build binaries
run: go run build/build.go
env:
CGO_ENABLED: 0
- name: Goreleaser release
run: goreleaser release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- 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: Get release
# id: get_release
# uses: bruceadams/get-release@v1.3.2
# env:
# GITHUB_TOKEN: ${{ github.token }}
- 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