2021-06-11 14:30:59 +08:00
|
|
|
name: Build
|
|
|
|
|
|
|
|
"on":
|
|
|
|
"push":
|
|
|
|
"tags":
|
|
|
|
- "v*"
|
|
|
|
"branches":
|
|
|
|
- "*"
|
|
|
|
"pull_request":
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
env:
|
|
|
|
GO111MODULE: "on"
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@master
|
|
|
|
|
|
|
|
- uses: actions/setup-go@v2
|
|
|
|
with:
|
2022-01-17 15:28:35 +08:00
|
|
|
go-version: 1.17.6
|
2021-06-11 14:30:59 +08:00
|
|
|
|
|
|
|
- name: Prepare environment
|
|
|
|
run: |-
|
|
|
|
RELEASE_VERSION="${GITHUB_REF##*/}"
|
|
|
|
if [[ "${RELEASE_VERSION}" != v* ]]; then RELEASE_VERSION='dev'; fi
|
|
|
|
echo "RELEASE_VERSION=\"${RELEASE_VERSION}@${GITHUB_SHA:0:10}\"" | tee -a $GITHUB_ENV
|
|
|
|
go mod vendor
|
|
|
|
|
|
|
|
# Test
|
|
|
|
- name: Unit Testing
|
|
|
|
run: go test .
|
|
|
|
|
|
|
|
# Win
|
|
|
|
- run: GOOS=windows GOARCH=386 VERSION=${RELEASE_VERSION} make release
|
|
|
|
- run: GOOS=windows GOARCH=amd64 VERSION=${RELEASE_VERSION} make release
|
2022-01-17 15:28:35 +08:00
|
|
|
- run: GOOS=windows GOARCH=arm64 VERSION=${RELEASE_VERSION} make release
|
2021-06-11 14:30:59 +08:00
|
|
|
|
|
|
|
# MacOS
|
|
|
|
- run: GOOS=darwin GOARCH=amd64 VERSION=${RELEASE_VERSION} make release
|
2022-01-17 15:28:35 +08:00
|
|
|
- run: GOOS=darwin GOARCH=arm64 VERSION=${RELEASE_VERSION} make release
|
2021-06-11 14:30:59 +08:00
|
|
|
|
|
|
|
# Linux X86/AMD64
|
|
|
|
- run: GOOS=linux GOARCH=386 VERSION=${RELEASE_VERSION} make release
|
|
|
|
- run: GOOS=linux GOARCH=amd64 VERSION=${RELEASE_VERSION} make release
|
|
|
|
|
|
|
|
# Linux ARM
|
|
|
|
- run: GOOS=linux GOARCH=arm GOARM=6 VERSION=${RELEASE_VERSION} make release
|
|
|
|
- run: GOOS=linux GOARCH=arm64 VERSION=${RELEASE_VERSION} make release
|
|
|
|
|
|
|
|
# Linux MIPS/MIPSLE
|
|
|
|
- run: GOOS=linux GOARCH=mips GOMIPS=softfloat VERSION=${RELEASE_VERSION} make release
|
|
|
|
- run: GOOS=linux GOARCH=mipsle GOMIPS=softfloat VERSION=${RELEASE_VERSION} make release
|
|
|
|
|
|
|
|
# FreeBSD X86
|
|
|
|
- run: GOOS=freebsd GOARCH=386 VERSION=${RELEASE_VERSION} make release
|
|
|
|
- run: GOOS=freebsd GOARCH=amd64 VERSION=${RELEASE_VERSION} make release
|
|
|
|
|
|
|
|
# FreeBSD ARM/ARM64
|
|
|
|
- run: GOOS=freebsd GOARCH=arm GOARM=6 VERSION=${RELEASE_VERSION} make release
|
|
|
|
- run: GOOS=freebsd GOARCH=arm64 VERSION=${RELEASE_VERSION} make release
|
|
|
|
|
|
|
|
- run: ls -l build/aliddns-*
|
|
|
|
|
|
|
|
- name: Create release
|
|
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
|
|
id: create_release
|
|
|
|
uses: actions/create-release@v1
|
|
|
|
env:
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
with:
|
|
|
|
tag_name: ${{ github.ref }}
|
|
|
|
release_name: Release ${{ github.ref }}
|
|
|
|
draft: false
|
|
|
|
prerelease: false
|
|
|
|
|
|
|
|
- name: Upload
|
|
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
|
|
uses: xresloader/upload-to-github-release@v1
|
|
|
|
env:
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
with:
|
|
|
|
file: "build/aliddns-*.tar.gz;build/aliddns-*.zip"
|
|
|
|
tags: true
|
|
|
|
draft: false
|