Skip to content

Commit c40f46d

Browse files
committed
Github Actions: add linux-aarch64 release build
1 parent 70e8088 commit c40f46d

File tree

4 files changed

+148
-66
lines changed

4 files changed

+148
-66
lines changed
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM rust:1
2+
#FROM ghcr.io/cross-rs/aarch64-unknown-linux-gnu:edge
3+
4+
# set CROSS_DOCKER_IN_DOCKER to inform `cross` that it is executed from within a container
5+
ENV CROSS_DOCKER_IN_DOCKER=true
6+
7+
RUN cargo install cross
8+
RUN dpkg --add-architecture arm64 && \
9+
apt-get update && \
10+
apt-get install -qy curl && \
11+
curl -sSL https://get.docker.com/ | sh && \
12+
apt-get install --assume-yes libxkbcommon0:arm64 libwayland-cursor0:arm64 libxkbcommon-dev:arm64 libwayland-dev:arm64 libxkbcommon-x11-dev:arm64
+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
on: [push]
2+
3+
name: linux-aarch64 build
4+
5+
jobs:
6+
linux_aarch64:
7+
name: Linux aarch64
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v2
11+
- uses: actions-rs/toolchain@v1
12+
with:
13+
toolchain: stable
14+
target: aarch64-unknown-linux-gnu
15+
override: true
16+
- name: Build cross image
17+
run: |
18+
#cargo install cross
19+
docker build -t wasmer/aarch64 /home/runner/work/wasmer/wasmer/.github/cross-linux-aarch64/
20+
#cat << EOF > ./Cross.toml
21+
#[target.aarch64-unknown-linux-gnu]
22+
#image = "wasmer/aarch64"
23+
#EOF
24+
env:
25+
CROSS_DOCKER_IN_DOCKER: true
26+
- name: Install LLVM
27+
shell: bash
28+
run: |
29+
sudo apt-get update -y
30+
sudo apt-get install -yq tree
31+
curl --proto '=https' --tlsv1.2 -sSf "https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.0/clang+llvm-13.0.0-aarch64-linux-gnu.tar.xz" -L -o llvm.tar.xz
32+
LLVM_DIR=$(pwd)/${{ env.LLVM_DIR }}
33+
mkdir ${LLVM_DIR}
34+
tar xf llvm.tar.xz --strip-components=1 -C ${LLVM_DIR}
35+
echo "${LLVM_DIR}/bin" >> $GITHUB_PATH
36+
echo "LLVM_SYS_120_PREFIX=${LLVM_DIR}" >> $GITHUB_ENV
37+
env:
38+
LLVM_DIR: .llvm
39+
- name: Build Wasmer binary
40+
run: |
41+
make build-wasmer
42+
env:
43+
CARGO_BINARY: docker run -v /var/run/docker.sock:/var/run/docker.sock -v /home/runner/work/wasmer/wasmer:/project -w /project wasmer/aarch64 cross
44+
CROSS_DOCKER_IN_DOCKER: true
45+
CARGO_TARGET: --target aarch64-unknown-linux-gnu
46+
PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
47+
PKG_CONFIG_ALLOW_CROSS: true
48+
- name: Build C API
49+
run: |
50+
make build-capi
51+
env:
52+
CARGO_BINARY: docker run -v /var/run/docker.sock:/var/run/docker.sock -v /home/runner/work/wasmer/wasmer:/project -w /project wasmer/aarch64 cross
53+
CROSS_DOCKER_IN_DOCKER: true
54+
CARGO_TARGET: --target aarch64-unknown-linux-gnu
55+
PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
56+
PKG_CONFIG_ALLOW_CROSS: true
57+
- name: Dist
58+
run: |
59+
#tree target/
60+
make distribution
61+
env:
62+
CARGO_BINARY: docker run -v /var/run/docker.sock:/var/run/docker.sock -v /home/runner/work/wasmer/wasmer:/project -w /project wasmer/aarch64 cross
63+
CROSS_DOCKER_IN_DOCKER: true
64+
CARGO_TARGET: --target aarch64-unknown-linux-gnu
65+
PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
66+
PKG_CONFIG_ALLOW_CROSS: true
67+
TARGET: aarch64-unknown-linux-gnu
68+
TARGET_DIR: target/aarch64-unknown-linux-gnu/release
69+
- name: Upload Artifacts
70+
uses: actions/upload-artifact@v2
71+
with:
72+
name: wasmer.tar.gz
73+
path: dist
74+
if-no-files-found: error
75+
retention-days: 1

.github/workflows/test-sys.yaml

+8-16
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,6 @@ jobs:
7676
use_sccache: true
7777
run_test: true
7878
run_test_capi: false # We can't run yet the capi tests on Windows
79-
#- build: linux-aarch64
80-
# os: [self-hosted, linux, ARM64]
81-
# random_sccache_port: true
82-
# use_sccache: true
83-
# llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/12.x/linux-aarch64.tar.gz'
84-
# artifact_name: 'wasmer-linux-aarch64'
85-
# run_integration_tests: false
8679
- build: linux-musl-x64
8780
os: ubuntu-latest
8881
container: alpine:latest
@@ -247,8 +240,16 @@ jobs:
247240
echo "rpath = false" >> Cargo.toml
248241
make build-wasmer-headless-minimal
249242
- name: Dist
243+
if: matrix.build != 'macos-arm64'
250244
run: |
251245
make distribution
246+
- name: Dist macos-arm64
247+
if: matrix.build == 'macos-arm64'
248+
run: |
249+
make distribution
250+
env:
251+
TARGET: aarch64-apple-darwin
252+
TARGET_DIR: target/aarch64-apple-darwin/release
252253
- name: Run integration tests (Windows)
253254
shell: cmd
254255
run: |
@@ -438,15 +439,6 @@ jobs:
438439
asset_path: artifacts/wasmer-darwin-arm64/wasmer.tar.gz
439440
asset_name: wasmer-darwin-arm64.tar.gz
440441
asset_content_type: application/gzip
441-
#- name: Upload Release Asset Linux aarch64
442-
# uses: actions/upload-release-asset@v1
443-
# env:
444-
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
445-
# with:
446-
# upload_url: ${{ steps.create_release.outputs.upload_url }}
447-
# asset_path: artifacts/wasmer-linux-aarch64/wasmer.tar.gz
448-
# asset_name: wasmer-linux-aarch64.tar.gz
449-
# asset_content_type: application/gzip
450442

451443
audit:
452444
name: Audit

0 commit comments

Comments
 (0)