Skip to content

Commit 490e713

Browse files
committed
Reproducible builds: WASM
1 parent b412095 commit 490e713

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,8 @@ wasm-client.wasm
1919
# Mobile build output
2020
build/
2121

22+
# Reproducible build output
23+
reproducible-builds/
24+
2225
# Misc
2326
*.DS_Store

Dockerfile-wasm

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#Get golang 1.17.3-buster as a base image
2+
FROM golang:1.17.3-buster@sha256:ee3a388a872237ddb600de3ab9512e73df0043f8878f0f355baeb5b723ef16ec as builder
3+
4+
#Define the working directory in the container
5+
WORKDIR /app
6+
7+
#Copy all files from root into the container
8+
COPY . ./
9+
10+
#Use go mod tidy to handle dependencies
11+
RUN go mod tidy
12+
13+
#Run the make task
14+
RUN make wasm

Makefile

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ build:
6666
wasm:
6767
# The appengine build tag is needed because of the jessevdk/go-flags library
6868
# that has some OS specific terminal code that doesn't compile to WASM.
69-
cd cmd/wasm-client; GOOS=js GOARCH=wasm go build -trimpath -ldflags="$(LDFLAGS)" -tags="$(RPC_TAGS)" -v -o wasm-client.wasm .
69+
cd cmd/wasm-client; CGO_ENABLED=0 GOOS=js GOARCH=wasm go build -trimpath -ldflags="$(LDFLAGS)" -tags="$(RPC_TAGS)" -v -o wasm-client.wasm .
7070
$(CP) cmd/wasm-client/wasm-client.wasm example/wasm-client.wasm
7171

7272
apple:
@@ -91,6 +91,23 @@ android:
9191

9292
mobile: ios android
9393

94+
repro-wasm:
95+
#Build the repro-wasm image
96+
docker build -f Dockerfile-wasm -t repro-wasm-image --no-cache .
97+
98+
#Run the repro-wasm-image in a new container called repro-wasm
99+
docker run --name repro-wasm repro-wasm-image
100+
101+
#Copy the compiled WASM file to the host machine
102+
mkdir -p reproducible-builds
103+
docker cp repro-wasm:/app/cmd/wasm-client/wasm-client.wasm ./reproducible-builds/
104+
105+
#Remove the repro-wasm container
106+
docker rm repro-wasm
107+
108+
#Remove the repro-wasm-image
109+
docker image rm repro-wasm-image
110+
94111
# =======
95112
# TESTING
96113
# =======

0 commit comments

Comments
 (0)