56 lines
1.7 KiB
YAML
56 lines
1.7 KiB
YAML
name: basebuild
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
|
|
jobs:
|
|
goreleaser:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
flags: ""
|
|
steps:
|
|
# re-enable auto-snapshot from goreleaser-action@v3
|
|
# (https://github.com/goreleaser/goreleaser-action-v4-auto-snapshot-example)
|
|
- if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
|
|
run: echo "flags=--snapshot" >> $GITHUB_ENV
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 20.17.0
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '>=1.23.9'
|
|
|
|
# This step usually is not needed because the /ui/dist is pregenerated locally
|
|
# but its here to ensure that each release embeds the latest admin ui artifacts.
|
|
# If the artificats differs, a "dirty error" is thrown - https://goreleaser.com/errors/dirty/
|
|
- name: Build Admin dashboard UI
|
|
run: npm --prefix=./ui ci && npm --prefix=./ui run build
|
|
|
|
# Temporary disable as the types can have random generated identifiers making it non-deterministic.
|
|
#
|
|
# # Similar to the above, the jsvm types are pregenerated locally
|
|
# # but its here to ensure that it wasn't forgotten to be executed.
|
|
# - name: Generate jsvm types
|
|
# run: go run ./plugins/jsvm/internal/types/types.go
|
|
|
|
- name: Run tests
|
|
run: go test ./...
|
|
|
|
- name: Run GoReleaser
|
|
uses: goreleaser/goreleaser-action@v6
|
|
with:
|
|
distribution: goreleaser
|
|
version: '~> v2'
|
|
args: release --clean ${{ env.flags }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|