Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace committed binary with GitHub actions workflow #18

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions .github/workflows/build-and-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Build and release

on: [push]

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
# Specify a test matrix of specific OS/arch pairs using GitHub's special expansion matching syntax described in
# [1]
#
# [1] https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/running-variations-of-jobs-in-a-workflow#expanding-or-adding-matrix-configurations
go-os-target: ["windows", "darwin", "linux"]
go-arch-target: ["amd64", "arm64"]
include:
# Add the JS/wasm target (standalone since it can't pair with the matrix above
- go-os-target: "js"
go-arch-target: "wasm"

steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.20'

- name: Build all protodot other than Windows
run: go build -o "build/protodot-${{ matrix.go-os-target }}-${{ matrix.go-arch-target }}"
if: matrix.go-os-target != 'windows'
env:
GOOS: ${{ matrix.go-os-target }}
GOARCH: ${{ matrix.go-arch-target }}

- name: Build protodot for Windows with exe extension
run: go build -o "build/protodot-${{ matrix.go-os-target }}-${{ matrix.go-arch-target }}.exe"
if: matrix.go-os-target == 'windows'
env:
GOOS: ${{ matrix.go-os-target }}
GOARCH: ${{ matrix.go-arch-target }}


- name: Upload built assets (on tag push)
uses: softprops/action-gh-release@v2
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
with:
files: build/*

# Upload GitHub Action workflow *artifacts*. Note "artifacts" are a different concept to GitHub release assets.
# The former is available on each GitHub Actions workflow run. The latter is associated with only a pushed tag.

- name: Upload release artifacts except Windows
uses: actions/upload-artifact@v4
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whoops I lost the following line that's supposed to be here

        if: matrix.go-os-target != 'windows'

with:
name: "protodot-${{ matrix.go-os-target }}-${{ matrix.go-arch-target }}"
path: "build/protodot-${{ matrix.go-os-target }}-${{ matrix.go-arch-target }}"

# Ensure Windows assets have exe extension
- name: Upload remaining Windows release artifacts (with 'exe' extension)
uses: actions/upload-artifact@v3
if: matrix.go-os-target == 'windows'
with:
name: "protodot-${{ matrix.go-os-target }}-${{ matrix.go-arch-target }}.exe"
path: "build/protodot-${{ matrix.go-os-target }}-${{ matrix.go-arch-target }}.exe"
2 changes: 1 addition & 1 deletion Gopkg.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
version = "1.6.4"

[[constraint]]
branch = "master"
version = "1.1.8"
name = "github.com/seamia/tools"

[prune]
Expand Down
Binary file removed binaries/protodot-darwin-amd64
Binary file not shown.
Binary file removed binaries/protodot-darwin-arm64
Binary file not shown.
Binary file removed binaries/protodot-js-wasm
Binary file not shown.
Binary file removed binaries/protodot-linux-amd64
Binary file not shown.
Binary file removed binaries/protodot-windows-amd64.exe
Binary file not shown.