diff --git a/.github/workflows/on-release.yaml b/.github/workflows/on-release.yaml new file mode 100644 index 0000000..c2eb99b --- /dev/null +++ b/.github/workflows/on-release.yaml @@ -0,0 +1,58 @@ +name: Release + +on: + push: + tags: + - '*' + workflow_dispatch: + inputs: + tag: + description: 'Tag to release, eg. v0.0.1' + required: true + +permissions: + contents: write + +jobs: + build: + name: Build + strategy: + fail-fast: false + matrix: + include: + # TODO: Add support for arm based runners when GH makes them generally available + - runner: macos-latest + goos: darwin + goarch: arm64 + - runner: ubuntu-latest + goos: linux + goarch: amd64 + - runner: windows-latest + goos: windows + goarch: amd64 + runs-on: ${{ matrix.runner }} + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.22.x + + - name: Build binary + env: + GOOS: ${{ matrix.goos }} + GOARCH: ${{ matrix.goarch }} + run: | + go build -v -o network-hub-${{ matrix.goos == 'darwin' && 'macos' || matrix.goos }}-${{ matrix.goarch }}${{ runner.os == 'Windows' && '.exe' || '' }} ./cmd/main.go + + - name: Upload Executable + uses: xresloader/upload-to-github-release@v1.6.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ inputs.tag || github.ref_name }} + file: network-hub-${{ matrix.goos == 'darwin' && 'macos' || matrix.goos }}-${{ matrix.goarch }}${{ runner.os == 'Windows' && '.exe' || '' }} + overwrite: true diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 4815cfc..9a092bb 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -14,7 +14,7 @@ jobs: - name: Install Go uses: actions/setup-go@v4 with: - go-version: '1.21' + go-version: 1.21.x - name: Make Test id: unit-test