This PR removes the dist folder from the repo. With omitting dist, we will see much less merge conflicts and reduce the barriers for new contributors. This should not impact build speed as we're using actions/cache to re-use the built ui artefacts across jobs.
132 lines
2.4 KiB
YAML
132 lines
2.4 KiB
YAML
name: Default
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
clean:
|
|
name: Clean
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-go@v3
|
|
with:
|
|
go-version: ^1.18
|
|
cache: true
|
|
id: go
|
|
|
|
- name: Install tools
|
|
run: make install
|
|
|
|
- name: Assets
|
|
run: make assets
|
|
|
|
- name: Porcelain
|
|
run: make porcelain
|
|
|
|
build:
|
|
name: Build
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-go@v3
|
|
with:
|
|
go-version: ^1.18
|
|
cache: true
|
|
id: go
|
|
|
|
- name: Build
|
|
run: mkdir dist && touch dist/empty && make build
|
|
|
|
test:
|
|
name: Test
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-go@v3
|
|
with:
|
|
go-version: ^1.18
|
|
cache: true
|
|
id: go
|
|
|
|
- name: Test
|
|
run: mkdir dist && touch dist/empty && make test
|
|
|
|
lint:
|
|
name: Lint
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-go@v3
|
|
with:
|
|
go-version: ^1.18
|
|
cache: true
|
|
id: go
|
|
|
|
- run: mkdir dist && touch dist/empty
|
|
|
|
- name: Lint
|
|
uses: golangci/golangci-lint-action@v3
|
|
with:
|
|
version: latest
|
|
args: --timeout 3m
|
|
|
|
build-ui:
|
|
name: UI
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: "18"
|
|
|
|
- name: Get NPM cache dir
|
|
id: npm-cache-dir
|
|
run: |
|
|
echo "dir=$(npm config get cache)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Cache NPM modules
|
|
uses: actions/cache@v3
|
|
id: npm-cache
|
|
with:
|
|
path: ${{ steps.npm-cache-dir.outputs.dir }}
|
|
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-node-
|
|
|
|
- name: Install tools
|
|
run: make install-ui
|
|
|
|
- name: Lint
|
|
run: make lint-ui
|
|
|
|
- name: Test
|
|
run: make test-ui
|
|
|
|
- name: Porcelain
|
|
run: |
|
|
test -z "$(git status --porcelain)" || (git status; git diff; false)
|
|
|
|
- name: Build
|
|
run: make ui
|
|
|
|
- name: Cache dist
|
|
uses: actions/cache@v3
|
|
id: cache-dist
|
|
with:
|
|
path: dist
|
|
key: ${{ runner.os }}-dist
|