diff --git a/.github/workflows/cd-containers.yaml b/.github/workflows/cd-containers.yaml index 79a347fffb..3479718c6c 100644 --- a/.github/workflows/cd-containers.yaml +++ b/.github/workflows/cd-containers.yaml @@ -11,7 +11,7 @@ jobs: github.event.pull_request.merged && endsWith(github.event.pull_request.title, '/workflows/cd-containers') && github.event.pull_request.user.login != 'polywrap-build-bot' - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 diff --git a/.github/workflows/ci-containers.yaml b/.github/workflows/ci-containers.yaml new file mode 100644 index 0000000000..32369956a7 --- /dev/null +++ b/.github/workflows/ci-containers.yaml @@ -0,0 +1,32 @@ +name: CI-Containers + +on: + pull_request: + paths: + - "packages/cli/src/lib/defaults/build-strategies/wasm/rust/vm/Dockerfile" + - "packages/cli/src/lib/defaults/build-strategies/wasm/assemblyscript/vm/Dockerfile" + +jobs: + Build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Cache Image Directories + run: | + echo IMAGE_RS_VM_DIR=./packages/cli/src/lib/defaults/build-strategies/wasm/rust/vm >> $GITHUB_ENV + echo IMAGE_AS_VM_DIR=./packages/cli/src/lib/defaults/build-strategies/wasm/assemblyscript/vm >> $GITHUB_ENV + + - name: Build RS VM Image + working-directory: ${{env.IMAGE_RS_VM_DIR}} + run: | + docker buildx build . --platform=linux/amd64,linux/arm64 + + - name: Build AS VM Image + working-directory: ${{env.IMAGE_AS_VM_DIR}} + run: | + docker buildx build . --platform=linux/amd64,linux/arm64 diff --git a/packages/cli/src/lib/defaults/build-strategies/wasm/rust/image/Dockerfile.mustache b/packages/cli/src/lib/defaults/build-strategies/wasm/rust/image/Dockerfile.mustache index df8f59ba41..6174bc7054 100644 --- a/packages/cli/src/lib/defaults/build-strategies/wasm/rust/image/Dockerfile.mustache +++ b/packages/cli/src/lib/defaults/build-strategies/wasm/rust/image/Dockerfile.mustache @@ -1,4 +1,4 @@ -FROM rust:1.66-alpine as base +FROM rust:1.70-alpine as base # Install the wasm32 rust build target RUN rustup target add wasm32-unknown-unknown @@ -12,19 +12,22 @@ RUN apk add curl pkgconfig openssl-dev bash RUN apk add clang llvm build-base # Install wasm-opt -RUN cargo install wasm-opt - -# Install the toml-cli -RUN cargo install toml-cli +RUN curl -L https://github.com/WebAssembly/binaryen/releases/download/version_101/binaryen-version_101-x86_64-linux.tar.gz | tar -xz \ + && chmod +x binaryen-version_101/bin/wasm-opt \ + && cp binaryen-version_101/bin/wasm-opt /usr/local/bin/ \ + && rm -rf binary-version_101 # Install wasm-snip RUN cargo install wasm-snip +# Install wasm-tools +RUN cargo install wasm-tools + # Install wasm-bindgen RUN cargo install wasm-bindgen-cli -# Install wasm-tools -RUN cargo install wasm-tools +# Install the toml-cli +RUN cargo install toml-cli # Install cargo-build-deps RUN cargo install cargo-build-deps diff --git a/packages/cli/src/lib/defaults/build-strategies/wasm/rust/local/local.sh b/packages/cli/src/lib/defaults/build-strategies/wasm/rust/local/local.sh index 56037f4056..00385def23 100644 --- a/packages/cli/src/lib/defaults/build-strategies/wasm/rust/local/local.sh +++ b/packages/cli/src/lib/defaults/build-strategies/wasm/rust/local/local.sh @@ -15,9 +15,6 @@ cargo install wasm-bindgen-cli # Install wasm-tools cargo install wasm-tools -# Install wasm-opt -cargo install wasm-opt - # Ensure the module at {{dir}} has the crate-type = ["cdylib"] toml set "$1"/Cargo.toml lib.crate-type ["cdylib"] > "$1"/Cargo-local.toml && \ mv "$1"/Cargo.toml "$1"/Cargo-bak.toml && \ diff --git a/packages/cli/src/lib/defaults/build-strategies/wasm/rust/vm/Dockerfile b/packages/cli/src/lib/defaults/build-strategies/wasm/rust/vm/Dockerfile index 5c04849272..e692599a6c 100644 --- a/packages/cli/src/lib/defaults/build-strategies/wasm/rust/vm/Dockerfile +++ b/packages/cli/src/lib/defaults/build-strategies/wasm/rust/vm/Dockerfile @@ -1,4 +1,4 @@ -FROM rust:1.66-alpine as base +FROM rust:1.70-alpine as base # Install the wasm32 rust build target RUN rustup target add wasm32-unknown-unknown @@ -12,22 +12,22 @@ RUN apk add curl pkgconfig openssl-dev bash RUN apk add clang llvm build-base # Install wasm-opt -RUN cargo install wasm-opt - -# Install the toml-cli -RUN cargo install toml-cli +RUN curl -L https://github.com/WebAssembly/binaryen/releases/download/version_101/binaryen-version_101-x86_64-linux.tar.gz | tar -xz \ + && chmod +x binaryen-version_101/bin/wasm-opt \ + && cp binaryen-version_101/bin/wasm-opt /usr/local/bin/ \ + && rm -rf binary-version_101 # Install wasm-snip RUN cargo install wasm-snip -# Install wasm-bindgen -RUN cargo install wasm-bindgen-cli - # Install wasm-tools RUN cargo install wasm-tools -# Install cargo-build-deps -RUN cargo install cargo-build-deps +# Install wasm-bindgen +RUN cargo install wasm-bindgen-cli + +# Install the toml-cli +RUN cargo install toml-cli # Ensure the Wasm module is configured to use imported memory ENV RUSTFLAGS="-C link-arg=-z -C link-arg=stack-size=65536 -C link-arg=--import-memory"