A better Rust ATProto crate
1name: Linux cross compile tests
2
3on:
4 push:
5 paths-ignore:
6 - ".devcontainer/**"
7 - ".gitpod.yml"
8 - ".vscode/**"
9 - "tests/**"
10 pull_request:
11 paths-ignore:
12 - ".devcontainer/**"
13 - ".gitpod.yml"
14 - ".vscode/**"
15 - "tests/**"
16 schedule:
17 # Run against the last commit on the default branch on Friday at 9pm (UTC?)
18 - cron: "0 21 * * 5"
19
20jobs:
21 linux-cross:
22 runs-on: ubuntu-latest
23 strategy:
24 fail-fast: false
25 matrix:
26 platform:
27 - target: aarch64-unknown-linux-musl
28 rust-version: stable
29 - target: i686-unknown-linux-musl
30 rust-version: stable
31 - target: armv7-unknown-linux-musleabihf
32 rust-version: stable
33 - target: armv5te-unknown-linux-musleabi
34 rust-version: stable
35
36 steps:
37 - name: Checkout Mini Moka
38 uses: actions/checkout@v4
39
40 - name: Install Rust toolchain
41 uses: dtolnay/rust-toolchain@master
42 with:
43 toolchain: ${{ matrix.platform.rust-version }}
44 targets: ${{ matrix.platform.target }}
45
46 - name: Install cross
47 uses: taiki-e/install-action@v2
48 with:
49 tool: cross
50
51 - name: Remove integration tests and force enable rustc_version crate
52 run: |
53 rm -rf tests
54 sed -i '/actix-rt\|async-std\|reqwest/d' Cargo.toml
55
56 - run: cargo clean
57
58 - name: Run tests (sync feature)
59 run: |
60 cross ${{ matrix.platform.carge-version }} test --release -F sync \
61 --target ${{ matrix.platform.target }}