mirror of
https://github.com/SamTherapy/dnscrypt.git
synced 2024-12-22 08:50:43 +00:00
109 lines
3.1 KiB
YAML
109 lines
3.1 KiB
YAML
name: Build
|
|
|
|
'on':
|
|
'push':
|
|
'tags':
|
|
- 'v*'
|
|
'branches':
|
|
- '*'
|
|
'pull_request':
|
|
|
|
jobs:
|
|
tests:
|
|
runs-on: ${{ matrix.os }}
|
|
env:
|
|
GO111MODULE: "on"
|
|
strategy:
|
|
matrix:
|
|
os:
|
|
- windows-latest
|
|
- macos-latest
|
|
- ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
|
|
- uses: actions/setup-go@v3
|
|
with:
|
|
go-version: 1.x
|
|
|
|
- name: Run tests
|
|
run: |-
|
|
go test -race -v -bench=. -coverprofile=coverage.txt -covermode=atomic ./...
|
|
|
|
- name: Upload coverage
|
|
uses: codecov/codecov-action@v3
|
|
if: "success() && matrix.os == 'ubuntu-latest'"
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
file: ./coverage.txt
|
|
|
|
build:
|
|
needs:
|
|
- tests
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
GO111MODULE: "on"
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
|
|
- uses: actions/setup-go@v3
|
|
with:
|
|
go-version: 1.x
|
|
|
|
- name: Prepare environment
|
|
run: |-
|
|
RELEASE_VERSION="${GITHUB_REF##*/}"
|
|
if [[ "${RELEASE_VERSION}" != v* ]]; then RELEASE_VERSION='dev'; fi
|
|
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\"" >> $GITHUB_ENV
|
|
|
|
# Win
|
|
- run: GOOS=windows GOARCH=386 VERSION=${RELEASE_VERSION} make release
|
|
- run: GOOS=windows GOARCH=amd64 VERSION=${RELEASE_VERSION} make release
|
|
|
|
# MacOS
|
|
- run: GOOS=darwin GOARCH=amd64 VERSION=${RELEASE_VERSION} make release
|
|
|
|
# Linux X86
|
|
- 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/dnscrypt-*
|
|
|
|
- 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/dnscrypt-*.tar.gz;build/dnscrypt-*.zip"
|
|
tags: true
|
|
draft: false
|