107 lines
2.2 KiB
YAML
107 lines
2.2 KiB
YAML
name: Build Binaries
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- '*'
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
- '**.md'
|
|
- 'script/gcg/**'
|
|
|
|
env:
|
|
GO_VERSION: '1.23'
|
|
CGO_ENABLED: 0
|
|
|
|
jobs:
|
|
|
|
build-webui:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Setup node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version-file: webui/.nvmrc
|
|
cache: yarn
|
|
cache-dependency-path: webui/yarn.lock
|
|
|
|
- name: Build webui
|
|
working-directory: ./webui
|
|
run: |
|
|
yarn install
|
|
yarn build
|
|
|
|
- name: Package webui
|
|
run: |
|
|
tar czvf webui.tar.gz ./webui/static/
|
|
|
|
- name: Artifact webui
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: webui.tar.gz
|
|
path: webui.tar.gz
|
|
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
os: [ darwin, freebsd, linux, openbsd, windows ]
|
|
arch: [ amd64, arm64 ]
|
|
include:
|
|
- os: freebsd
|
|
arch: 386
|
|
- os: linux
|
|
arch: 386
|
|
- os: linux
|
|
arch: arm
|
|
goarm: 6
|
|
- os: linux
|
|
arch: arm
|
|
goarm: 7
|
|
- os: linux
|
|
arch: ppc64le
|
|
- os: linux
|
|
arch: riscv64
|
|
- os: linux
|
|
arch: s390x
|
|
- os: openbsd
|
|
arch: 386
|
|
- os: windows
|
|
arch: 386
|
|
needs:
|
|
- build-webui
|
|
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Go ${{ env.GO_VERSION }}
|
|
uses: actions/setup-go@v5
|
|
env:
|
|
ImageOS: ${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.goarm }}
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
|
|
- name: Artifact webui
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: webui.tar.gz
|
|
|
|
- name: Untar webui
|
|
run: tar xvf webui.tar.gz
|
|
|
|
- name: Build
|
|
env:
|
|
GOOS: ${{ matrix.os }}
|
|
GOARCH: ${{ matrix.arch }}
|
|
GOARM: ${{ matrix.goarm }}
|
|
run: make binary
|