@ -62,10 +62,11 @@ jobs:
generate-metadata-file:
name : "Generate release metadata"
needs : get-product-version
runs-on : ubuntu-latest
needs : get-product-version
outputs:
filepath : ${{ steps.generate-metadata-file.outputs.filepath }}
steps:
- uses : actions/checkout@v2
- name : Generate package metadata
@ -81,27 +82,31 @@ jobs:
path : ${{ steps.generate-metadata-file.outputs.filepath }}
build:
needs : [ "get-product-version" , "get-go-version" ]
runs-on : ubuntu-latest
name : Build for ${{ matrix.goos }}_${{ matrix.goarch }}
runs-on : ${{ matrix.runson }}
needs:
- get-product-version
- get-go-version
strategy:
matrix:
include:
- {goos : "freebsd" , goarch : "386" }
- {goos : "freebsd" , goarch : "amd64" }
- {goos : "freebsd" , goarch : "arm" }
- {goos : "linux" , goarch : "386" }
- {goos : "linux" , goarch : "amd64" }
- {goos : "linux" , goarch : "arm" }
- {goos : "linux" , goarch : "arm64" }
- {goos : "openbsd" , goarch : "386" }
- {goos : "openbsd" , goarch : "amd64" }
- {goos : "solaris" , goarch : "amd64" }
- {goos : "windows" , goarch : "386" }
- {goos : "windows" , goarch : "amd64" }
- {goos : "freebsd" , goarch : "386" , runson : "ubuntu-latest" }
- {goos : "freebsd" , goarch : "amd64" , runson : "ubuntu-latest" }
- {goos : "freebsd" , goarch : "arm" , runson : "ubuntu-latest" }
- {goos : "linux" , goarch : "386" , runson : "ubuntu-latest" }
- {goos : "linux" , goarch : "amd64" , runson : "ubuntu-latest" }
- {goos : "linux" , goarch : "arm" , runson : "ubuntu-latest" }
- {goos : "linux" , goarch : "arm64" , runson : "ubuntu-latest" }
- {goos : "openbsd" , goarch : "386" , runson : "ubuntu-latest" }
- {goos : "openbsd" , goarch : "amd64" , runson : "ubuntu-latest" }
- {goos : "solaris" , goarch : "amd64" , runson : "ubuntu-latest" }
- {goos : "windows" , goarch : "386" , runson : "ubuntu-latest" }
- {goos : "windows" , goarch : "amd64" , runson : "ubuntu-latest" }
- {goos : "darwin" , goarch : "amd64" , runson : "macos-latest" }
- {goos : "darwin" , goarch : "arm64" , runson : "macos-latest" }
fail-fast : false
name : Build for ${{ matrix.goos }}_${{ matrix.goarch }}
steps:
- uses : actions/checkout@v2
@ -110,13 +115,22 @@ jobs:
with:
go-version : ${{ needs.get-go-version.outputs.go-version }}
# FIXME: We're not currently setting the hard-coded version string in
# version/version.go at any point here, which means that the packages
# this process builds are not suitable for release. Once we're using
# Go 1.18 we may begin using the version information automatically
# embedded by the Go toolchain, at which point we won't need any
# special steps during build, but failing that we'll need to rework
# the version/version.go package so we can more readily update it
# using linker flags rather than direct code modification.
- name : Build
env:
GOOS : ${{ matrix.goos }}
GOARCH : ${{ matrix.goarch }}
run : |
mkdir dist out
go build -o dist/ .
go build - ldflags "-w -s" - o dist/ .
zip -r -j out/${{ env.PKG_NAME }}_${{ needs.get-product-version.outputs.product-version }}_${{ matrix.goos }}_${{ matrix.goarch }}.zip dist/
- uses : actions/upload-artifact@v2
@ -145,6 +159,8 @@ jobs:
echo "RPM_PACKAGE=$(basename out/*.rpm)" >> $GITHUB_ENV
echo "DEB_PACKAGE=$(basename out/*.deb)" >> $GITHUB_ENV
# FIXME: Generate homebrew packages when targeting macOS.
- uses : actions/upload-artifact@v2
if : ${{ matrix.goos == 'linux' }}
with:
@ -157,41 +173,6 @@ jobs:
name : ${{ env.DEB_PACKAGE }}
path : out/${{ env.DEB_PACKAGE }}
build-darwin:
needs : [ "get-product-version" , "get-go-version" ]
runs-on : macos-latest
strategy:
matrix:
include:
- {goos : "darwin" , goarch : "amd64" }
- {goos : "darwin" , goarch : "arm64" }
fail-fast : false
name : Build for ${{ matrix.goos }}_${{ matrix.goarch }}
env:
GOOS : ${{ matrix.goos }}
GOARCH : ${{ matrix.goarch }}
steps:
- uses : actions/checkout@v2
- name : Install Go toolchain
uses : actions/setup-go@v2
with:
go-version : ${{ needs.get-go-version.outputs.go-version }}
- name : Build
run : |
mkdir dist out
go build -o dist/
zip -r -j out/${{ env.PKG_NAME }}_${{ needs.get-product-version.outputs.product-version }}_${{ matrix.goos }}_${{ matrix.goarch }}.zip dist/
- uses : actions/upload-artifact@v2
with:
name : ${{ env.PKG_NAME }}_${{ needs.get-product-version.outputs.product-version }}_${{ matrix.goos }}_${{ matrix.goarch }}.zip
path : out/${{ env.PKG_NAME }}_${{ needs.get-product-version.outputs.product-version }}_${{ matrix.goos }}_${{ matrix.goarch }}.zip
build-docker:
name : Build Docker image for linux_${{ matrix.arch }}
needs:
@ -319,7 +300,7 @@ jobs:
runs-on : macos-latest
needs:
- get-product-version
- build -darwin
- build
- e2etest-build
strategy: