feat: Kotlin CI (#45) #305
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build_rust_and_test: | |
name: Rust project - latest | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Run sccache-cache | |
uses: mozilla-actions/[email protected] | |
- run: rustup update stable && rustup default stable | |
- run: rustup toolchain install nightly -c rustfmt | |
- run: docker compose up -d | |
working-directory: test/scripts/forked_state | |
- run: while ! curl localhost:8545/health; do sleep 1; done | |
- run: while ! curl localhost:4337/health; do sleep 1; done | |
- run: while ! curl localhost:3000/ping; do sleep 1; done | |
- run: cargo build --workspace --features=full --all-targets | |
- run: cargo test --features=full --lib --bins | |
- run: cargo clippy --workspace --features=full --all-targets -- -D warnings | |
- run: cargo clippy -p yttrium --all-targets -- -D warnings # `-p yttrium` to avoid feature unification; kotlin-ffi enables uniffi feature and we want to test without that | |
- run: cargo +nightly fmt --all -- --check | |
udeps: | |
name: Unused dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Run sccache-cache | |
uses: mozilla-actions/[email protected] | |
- run: rustup update stable && rustup default stable | |
- run: rustup toolchain install nightly -c rustfmt | |
- run: git submodule update --init --recursive | |
- run: cargo install cargo-udeps | |
- run: cargo +nightly udeps --workspace | |
# build_wasm: | |
# name: Build on WASM | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v4 | |
# with: | |
# submodules: recursive | |
# - name: Run sccache-cache | |
# uses: mozilla-actions/[email protected] | |
# - run: rustup update stable && rustup default stable | |
# - run: rustup target add wasm32-unknown-unknown | |
# - run: cargo build --workspace --features=full --lib --bins --target wasm32-unknown-unknown --exclude=ffi | |
build_swift_and_test: | |
name: Swift Package - latest | |
runs-on: macos-14 | |
strategy: | |
matrix: | |
config: | |
- debug | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Run sccache-cache | |
uses: mozilla-actions/[email protected] | |
- run: rustup update stable && rustup default stable | |
- run: make build-ios-bindings | |
- name: Select Xcode 15.4 | |
run: sudo xcode-select -s /Applications/Xcode_15.4.app | |
- name: Build ${{ matrix.config }} | |
run: make CONFIG=${{ matrix.config }} build-swift-apple-platforms | |
# - name: Install Docker | |
# run: | | |
# HOMEBREW_NO_AUTO_UPDATE=1 brew install --cask docker | |
# sudo /Applications/Docker.app/Contents/MacOS/Docker --unattended --install-privileged-components | |
# open -a /Applications/Docker.app --args --unattended --accept-license | |
# echo "We are waiting for Docker to be up and running. It can take over 2 minutes..." | |
# while ! /Applications/Docker.app/Contents/Resources/bin/docker info &>/dev/null; do sleep 1; done | |
# - name: Start test infrastructure | |
# run: docker compose up --debug | |
# working-directory: test/scripts/forked_state | |
# - name: Wait for local RPC to be ready | |
# run: while ! curl localhost:8545/health; do sleep 1; done | |
# - name: Wait for local bundler to be ready | |
# run: while ! curl localhost:4337/health; do sleep 1; done | |
# - name: Wait for local paymaster to be ready | |
# run: while ! curl localhost:3000/ping; do sleep 1; done | |
# - name: Run ${{ matrix.config }} tests | |
# run: make CONFIG=${{ matrix.config }} test-swift-apple-platforms |