diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 0ae08a56..21ac6bd7 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -13,7 +13,7 @@ jobs: complete: if: always() - needs: [fmt, rust-analyzer-compat, build-and-test] + needs: [fmt, rust-analyzer-compat, build-and-test, publish-dry-run] runs-on: ubuntu-latest steps: - if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') @@ -80,3 +80,44 @@ jobs: for I in cmd/crates/* cmd/crates/soroban-test/tests/fixtures/test-wasms/hello_world ; do cargo test --target ${{ matrix.target }} --manifest-path $I/Cargo.toml done + publish-dry-run: + # if: github.event_name == 'push' || startsWith(github.head_ref, 'release/') + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + cargo-hack-feature-options: --feature-powerset + - os: ubuntu-latest + target: aarch64-unknown-linux-gnu + cargo-hack-feature-options: --feature-powerset + - os: macos-latest + target: x86_64-apple-darwin + cargo-hack-feature-options: --feature-powerset + - os: macos-latest + target: aarch64-apple-darwin + cargo-hack-feature-options: --feature-powerset + # Windows builds notes: + # + # The different features that need testing are split over unique + # isolated builds for Windows, because there's a bug in Cargo [1] that + # causes builds of wasm-opt [2] to fail when run one after the other and + # attempting to clean up artifacts in between. The bug has been fixed, + # but will not make it into a stable release of Cargo until ~August + # 2023. + # + # [1]: https://github.com/rust-lang/cargo/pull/11442 + # [2]: https://github.com/brson/wasm-opt-rs/issues/116 + - os: windows-latest-8-cores + target: x86_64-pc-windows-msvc + cargo-hack-feature-options: '' + - os: windows-latest-8-cores + target: x86_64-pc-windows-msvc + cargo-hack-feature-options: --features opt --ignore-unknown-features + uses: stellar/actions/.github/workflows/rust-publish-dry-run-v2.yml@main + with: + crates: soroban-rpc + runs-on: ${{ matrix.os }} + target: ${{ matrix.target }} + cargo-hack-feature-options: ${{ matrix.cargo-hack-feature-options }} \ No newline at end of file