Test more windows targets #653
Workflow file for this run
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: cross | |
on: | |
push: | |
branches: | |
- '*' | |
- '!generate/aws-lc-*' | |
pull_request: | |
branches: | |
- '*' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref_name }} | |
cancel-in-progress: true | |
env: | |
RUST_BACKTRACE: 1 | |
# We can pin the version if nightly is too unstable. | |
# Otherwise, we test against the latest version. | |
RUST_NIGHTLY_TOOLCHAIN: nightly-2024-05-22 | |
jobs: | |
aws-lc-rs-cross-test: | |
if: github.repository_owner == 'aws' | |
name: aws-lc-rs cross tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-22.04 ] | |
target: | |
- aarch64-linux-android | |
- aarch64-unknown-linux-gnu | |
- aarch64-unknown-linux-musl | |
- arm-linux-androideabi | |
- arm-unknown-linux-gnueabihf | |
- armv7-linux-androideabi | |
- armv7-unknown-linux-gnueabihf | |
- i686-unknown-linux-gnu | |
- powerpc-unknown-linux-gnu | |
- powerpc64-unknown-linux-gnu | |
- powerpc64le-unknown-linux-gnu | |
- riscv64gc-unknown-linux-gnu | |
- s390x-unknown-linux-gnu | |
- x86_64-pc-windows-gnu | |
- x86_64-unknown-linux-musl | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: 'stable' | |
- name: Install cross | |
run: cargo install cross ${{ (matrix.target == 'riscv64gc-unknown-linux-gnu' && '--locked') || '' }} --git https://github.com/cross-rs/cross | |
- uses: dtolnay/rust-toolchain@master | |
id: toolchain | |
with: | |
toolchain: ${{ (matrix.target == 'riscv64gc-unknown-linux-gnu' && '1.72.1') || 'stable' }} | |
target: ${{ matrix.target }} | |
- name: Set Rust toolchain override | |
run: rustup override set ${{ steps.toolchain.outputs.name }} | |
- if: ${{ matrix.target == 'riscv64gc-unknown-linux-gnu' }} | |
run: | | |
cargo update | |
cargo update -p clap --precise 4.4.18 | |
- name: Cross-compilation (build debug) | |
run: cross build -p aws-lc-rs --features unstable --target ${{ matrix.target }} | |
- name: Cross-compilation (test release) | |
run: cross test -p aws-lc-rs --release --features unstable --target ${{ matrix.target }} | |
aws-lc-rs-ios-aarch64: | |
if: github.repository_owner == 'aws' | |
name: iOS aarch64 cross-platform build | |
runs-on: macos-13-xlarge | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- run: | | |
brew install llvm | |
echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' | |
echo 'export LIBCLANG_PATH=/opt/homebrew/opt/llvm' >> "$GITHUB_ENV" | |
- uses: dtolnay/rust-toolchain@master | |
id: toolchain | |
with: | |
toolchain: stable | |
target: aarch64-apple-ios-sim | |
- name: Install bash | |
run: brew install bash | |
- name: iOS Simulator Runner | |
run: ./scripts/ci/ios-simulator-runner.sh | |
aws-lc-rs-ios-x86_64: | |
if: github.repository_owner == 'aws' | |
name: iOS x86-64 cross-platform build | |
runs-on: macos-13-xlarge | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- run: | | |
brew install llvm | |
echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' | |
echo 'export LIBCLANG_PATH=/opt/homebrew/opt/llvm' >> "$GITHUB_ENV" | |
- uses: dtolnay/rust-toolchain@master | |
id: toolchain | |
with: | |
toolchain: stable | |
target: x86_64-apple-ios | |
- name: Debug build for `x86_64-apple-ios` | |
run: cargo build -p aws-lc-rs --target x86_64-apple-ios --features bindgen | |
- name: Release build for `x86_64-apple-ios` | |
run: cargo build -p aws-lc-rs --release --target x86_64-apple-ios --features bindgen | |
cargo-xwin: | |
if: github.repository_owner == 'aws' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install build dependencies | |
run: | | |
sudo apt-get update && sudo apt-get install --assume-yes nasm clang ninja-build llvm | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
target: x86_64-pc-windows-msvc | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
target: aarch64-pc-windows-msvc | |
- name: Install cargo-xwin and bindgen-cli | |
run: cargo install cargo-xwin bindgen-cli | |
- name: cargo xwin build for `x86_64-pc-windows-msvc` | |
run: cargo xwin build -p aws-lc-rs --release --all-targets --target x86_64-pc-windows-msvc | |
- name: cargo xwin build for `aarch64-pc-windows-msvc` | |
run: cargo xwin build -p aws-lc-rs --release --all-targets --target aarch64-pc-windows-msvc | |
aws-lc-rs-windows-gnu: | |
if: github.repository_owner == 'aws' | |
name: ${{ matrix.target }} | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- 'x86_64-pc-windows-gnu' | |
# TODO: 'i686-pc-windows-gnu' | |
steps: | |
- uses: ilammy/setup-nasm@v1 | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- uses: dtolnay/rust-toolchain@master | |
id: toolchain | |
with: | |
toolchain: stable | |
target: ${{ matrix.target }} | |
- name: Debug Test on `${{ matrix.target }}` | |
run: cargo test -p aws-lc-rs --target ${{ matrix.target }} --features bindgen | |
- name: Release test on `${{ matrix.target }}` | |
run: cargo test -p aws-lc-rs --release --target ${{ matrix.target }} --features bindgen | |
aws-lc-rs-windows-msvc: | |
if: ${{ github.repository_owner == 'aws' }} | |
name: ${{ matrix.target }} - ${{ (matrix.crt_static == '1' && 'crt-static and /WX') || '/WX' }} | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- 'x86_64-pc-windows-msvc' | |
- 'i686-pc-windows-msvc' | |
- 'aarch64-pc-windows-msvc' | |
crt_static: | |
- '0' | |
- '1' | |
steps: | |
- name: Install NASM | |
if: ${{ matrix.target == 'x86_64-pc-windows-msvc' || matrix.target == 'i686-pc-windows-msvc' }} | |
uses: ilammy/setup-nasm@v1 | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Install ninja-build tool | |
if: ${{ matrix.target == 'aarch64-pc-windows-msvc' }} | |
uses: seanmiddleditch/gha-setup-ninja@v4 | |
- uses: dtolnay/rust-toolchain@master | |
id: toolchain | |
with: | |
toolchain: stable | |
target: ${{ matrix.target }} | |
- name: Set ACTION_CARGO | |
run: | | |
if ('${{ matrix.target }}' -like '*aarch64*') { | |
echo "ACTION_CARGO=build" | Out-File -FilePath $env:GITHUB_ENV -Append | |
} else { | |
echo "ACTION_CARGO=test" | Out-File -FilePath $env:GITHUB_ENV -Append | |
} | |
- name: Set RUSTFLAGS | |
run: | | |
if ('${{ matrix.crt_static }}' -eq '1') { | |
echo "RUSTFLAGS=-Clink-arg=/WX -Ctarget-feature=+crt-static" | Out-File -FilePath $env:GITHUB_ENV -Append | |
} else { | |
echo "RUSTFLAGS=-Clink-arg=/WX" | Out-File -FilePath $env:GITHUB_ENV -Append | |
} | |
- name: Debug build | |
run: cargo ${{ env.ACTION_CARGO }} -p aws-lc-rs --all-targets --target ${{ matrix.target }} --features bindgen | |
- name: Release Build for ${{ matrix.target }} | |
run: cargo ${{ env.ACTION_CARGO }} --release -p aws-lc-rs --all-targets --target ${{ matrix.target }} |