difftreelog
ci build wasm on ci
in: master
6 files changed
.gitignorediffbeforeafterboth--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,5 @@
.idea
.vscode
+
+cache
.gitlab-ci.ymldiffbeforeafterboth1variables:2 CARGO_HOME: $CI_PROJECT_DIR/cache34stages:5 - prepare6 - build78build-container:1image: "rustlang/rust:nightly"9 image: docker:19.03.1110 stage: prepare11 services:12 - docker:19.03.11-dind13 before_script:14 - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY15 script:16 - docker build -t $CI_REGISTRY_IMAGE:build .17 - docker push $CI_REGISTRY_IMAGE:build2183test:cargo:19test-library:20 image: $CI_REGISTRY_IMAGE:build21 stage: build4 script:22 script:5 - rustc --version && cargo --version23 - make test24 cache:25 key: test26 paths:6 - cargo test --all --verbose27 - ./cache2829build-linux:30 image: $CI_REGISTRY_IMAGE:build31 stage: build32 script:33 - make build-native34 cache:35 key: linux36 paths:37 - ./cache38 - ./target39 artifacts:40 paths:41 - ./target/release/jrsonnet42 expire_in: 30 days4344build-wasm:45 image: $CI_REGISTRY_IMAGE:build46 stage: build47 script:48 - make build-wasi49 cache:50 key: wasm51 paths:52 - ./cache53 - ./target54 artifacts:55 paths:56 - ./target/wasm32-wasi/release/jsonnet.wasm57 expire_in: 30 days758Makefilediffbeforeafterboth--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,7 @@
-jsonnet-cpp:
- git clone https://github.com/google/jsonnet jsonnet-cpp
-
-.ONESHELL:
-test-examples: jsonnet-cpp
- cargo build --release
- export JSONNET_BIN="$(PWD)/target/release/jsonnet"
- export EXAMPLES_DIR="$(PWD)/jsonnet-cpp/examples/"
- cd ./jsonnet-cpp/examples/
- ./check.sh
+.PHONY: test build build-wasi
+test:
+ cargo test
+build:
+ RUSTFLAGS="-Zmutable-noalias=yes -C link-arg=-s" cargo build --release -p jrsonnet
+build-wasi:
+ cd ./bindings/ && cargo build --release -p jsonnet --target wasm32-wasi
build/Dockerfilediffbeforeafterboth--- /dev/null
+++ b/build/Dockerfile
@@ -0,0 +1,12 @@
+FROM alpine:edge
+
+RUN apk add --no-cache \
+ gcc \
+ make \
+ g++ \
+ curl \
+ cmake \
+ clang \
+ linux-headers
+RUN apk add --no-cache rustup && rustup-init --default-toolchain nightly -y -t wasm32-wasi
+ENV PATH /root/.rustup/toolchains/nightly-x86_64-unknown-linux-musl/bin/:/root/.cargo/bin/:${PATH}
build/make-docker.shdiffbeforeafterboth--- /dev/null
+++ b/build/make-docker.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+export DOCKER_BUILDKIT=1
+docker build -t jrsonnet -f build/Dockerfile build/
+docker run --rm -it -v $PWD:/build -e CARGO_HOME=/build/cache jrsonnet:latest ash -c "cd /build&&make $@"
build/run-docker.shdiffbeforeafterboth--- /dev/null
+++ b/build/run-docker.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+export DOCKER_BUILDKIT=1
+docker build -t jrsonnet -f build/Dockerfile build/
+docker run --rm -it -v $PWD:/build -e CARGO_HOME=/build/cache jrsonnet:latest ash -c "cd /build&&$@"