Added GH workflow, readme, etc #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} | |
files: ./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 | |
# MacOS ARM | |
- run: GOOS=darwin GOARCH=arm64 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/snirelay-* | |
- name: Create release | |
if: startsWith(github.ref, 'refs/tags/v') | |
id: create_release | |
uses: softprops/action-gh-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
body: See [CHANGELOG.md](./CHANGELOG.md) for the list of changes. | |
draft: false | |
prerelease: false | |
files: | | |
build/snirelay-*.tar.gz | |
build/snirelay-*.zip |