Skip to content

Commit 7b0bf48

Browse files
committed
update build workflows
1 parent 67c23a1 commit 7b0bf48

File tree

4 files changed

+78
-4
lines changed

4 files changed

+78
-4
lines changed

.github/workflows/_shared-build.yaml

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,13 @@ jobs:
5555
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
5656
with:
5757
go-version: 1.25.x
58-
58+
- name: Set up Node.js
59+
uses: actions/setup-node@v4
60+
with:
61+
node-version: '20'
62+
cache: 'npm'
63+
cache-dependency-path: web-ui/package-lock.json
64+
5965
# setup project dependencies
6066
- name: Get dependencies
6167
run: |
@@ -65,6 +71,7 @@ jobs:
6571
- name: Build linux amd64 binary
6672
run: |
6773
make docs
74+
make ui
6875
make build
6976
env:
7077
RELEASE: ${{ inputs.release }}
@@ -89,13 +96,19 @@ jobs:
8996
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
9097
with:
9198
go-version: 1.25.x
99+
- name: Set up Node.js
100+
uses: actions/setup-node@v4
101+
with:
102+
node-version: '20'
103+
cache: 'npm'
104+
cache-dependency-path: web-ui/package-lock.json
92105

93106
# setup cross build libs
94107
- name: Get cross build dependencies
95108
run: |
96109
sudo apt-get update
97110
sudo apt-get -y install gcc-aarch64-linux-gnu libstdc++-11-dev-arm64-cross libstdc++-12-dev-arm64-cross
98-
111+
99112
# setup project dependencies
100113
- name: Get dependencies
101114
run: |
@@ -105,6 +118,7 @@ jobs:
105118
- name: Build linux arm64 binary
106119
run: |
107120
make docs
121+
make ui
108122
make build GOARCH=arm64 CC=/usr/bin/aarch64-linux-gnu-gcc
109123
env:
110124
RELEASE: ${{ inputs.release }}
@@ -129,6 +143,12 @@ jobs:
129143
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
130144
with:
131145
go-version: 1.25.x
146+
- name: Set up Node.js
147+
uses: actions/setup-node@v4
148+
with:
149+
node-version: '20'
150+
cache: 'npm'
151+
cache-dependency-path: web-ui/package-lock.json
132152

133153
# setup project dependencies
134154
- name: Get dependencies
@@ -139,6 +159,7 @@ jobs:
139159
- name: Build windows binary
140160
run: |
141161
make docs
162+
make ui
142163
make build
143164
env:
144165
RELEASE: ${{ inputs.release }}
@@ -163,6 +184,12 @@ jobs:
163184
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
164185
with:
165186
go-version: 1.25.x
187+
- name: Set up Node.js
188+
uses: actions/setup-node@v4
189+
with:
190+
node-version: '20'
191+
cache: 'npm'
192+
cache-dependency-path: web-ui/package-lock.json
166193

167194
# setup project dependencies
168195
- name: Get dependencies
@@ -173,6 +200,7 @@ jobs:
173200
- name: Build macos amd64 binary
174201
run: |
175202
make docs
203+
make ui
176204
make build
177205
env:
178206
RELEASE: ${{ inputs.release }}
@@ -197,6 +225,12 @@ jobs:
197225
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
198226
with:
199227
go-version: 1.25.x
228+
- name: Set up Node.js
229+
uses: actions/setup-node@v4
230+
with:
231+
node-version: '20'
232+
cache: 'npm'
233+
cache-dependency-path: web-ui/package-lock.json
200234

201235
# setup project dependencies
202236
- name: Get dependencies
@@ -207,6 +241,7 @@ jobs:
207241
- name: Build macos arm64 binary
208242
run: |
209243
make docs
244+
make ui
210245
make build GOARCH=arm64
211246
env:
212247
RELEASE: ${{ inputs.release }}

.github/workflows/_shared-check.yaml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,26 @@ jobs:
7171
echo "Please add documentation for $taskname task"
7272
exit 1
7373
fi
74-
done
74+
done
75+
76+
check_frontend:
77+
name: Run frontend checks
78+
runs-on: ubuntu-latest
79+
steps:
80+
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
81+
82+
- name: Set up Node.js
83+
uses: actions/setup-node@v4
84+
with:
85+
node-version: '20'
86+
cache: 'npm'
87+
cache-dependency-path: web-ui/package-lock.json
88+
89+
- name: Install dependencies
90+
run: cd web-ui && npm ci
91+
92+
- name: Run linter
93+
run: cd web-ui && npm run lint
94+
95+
- name: Run type check
96+
run: cd web-ui && npm run typecheck

Dockerfile

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
# syntax=docker/dockerfile:1
2+
FROM node:20-slim AS ui-builder
3+
WORKDIR /src
4+
COPY web-ui/package.json web-ui/package-lock.json ./web-ui/
5+
RUN cd web-ui && npm ci
6+
COPY web-ui/ ./web-ui/
7+
COPY pkg/web/static/embed.go ./pkg/web/static/
8+
RUN cd web-ui && npm run build
9+
210
FROM golang:1.25 AS builder
311
WORKDIR /src
412
COPY go.sum go.mod ./
513
RUN go mod download
614
COPY . .
15+
COPY --from=ui-builder /src/pkg/web/static/ ./pkg/web/static/
716
RUN make build
817

918
FROM ubuntu:latest
@@ -25,4 +34,3 @@ COPY --from=builder /src/bin/* /app/
2534
RUN chown -R assertoor:assertoor /app
2635
USER assertoor
2736
ENTRYPOINT ["/app/assertoor"]
28-

Dockerfile-local

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
# syntax=docker/dockerfile:1
2+
FROM node:20-slim AS ui-builder
3+
WORKDIR /src
4+
COPY web-ui/package.json web-ui/package-lock.json ./web-ui/
5+
RUN cd web-ui && npm ci
6+
COPY web-ui/ ./web-ui/
7+
COPY pkg/web/static/embed.go ./pkg/web/static/
8+
RUN cd web-ui && npm run build
9+
210
FROM golang:1.25 AS builder
311
WORKDIR /src
412
COPY go.sum go.mod ./
@@ -7,6 +15,7 @@ COPY main.go Makefile ./
715
ADD .git ./.git
816
ADD cmd ./cmd
917
ADD pkg ./pkg
18+
COPY --from=ui-builder /src/pkg/web/static/ ./pkg/web/static/
1019
RUN make build
1120

1221
FROM debian:stable-slim

0 commit comments

Comments
 (0)