Skip to content

Commit

Permalink
Use modified publish-dry-run-v2
Browse files Browse the repository at this point in the history
  • Loading branch information
stellarsaur committed Feb 14, 2024
1 parent f2ef720 commit b97eab0
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 1 deletion.
87 changes: 87 additions & 0 deletions .github/workflows/publish-dry-run.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Publish Dry Run

on:
workflow_call:
inputs:
crates:
description: 'Space separated list of crate names in the order to be published.'
required: true
type: string
runs-on:
required: false
default: 'ubuntu-latest'
type: string
target:
required: false
default: 'x86_64-unknown-linux-gnu'
type: string
cargo-hack-feature-options:
required: false
default: '--feature-powerset'
type: string

jobs:

publish-dry-run:
runs-on: ${{ inputs.runs-on }}
defaults:
run:
shell: bash
env:
CARGO_BUILD_TARGET: ${{ inputs.target }}
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
steps:
- uses: actions/checkout@v3

- uses: stellar/actions/rust-cache@main

- run: rustup update
- run: rustup target add ${{ inputs.target }}
- if: inputs.target == 'aarch64-unknown-linux-gnu'
run: sudo apt-get update && sudo apt-get -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

- uses: stellar/binaries@v18
with:
name: cargo-hack
version: 0.5.28

# Vendor all the dependencies into the vendor/ folder. Temporarily remove
# [patch.crates-io] entries in the workspace Cargo.toml that reference git
# repos. These will be removed when published.
- name: Vendor Dependencies
run: |
cargo vendor --versioned-dirs
# Package the crates that will be published. Verification is disabled
# because we aren't ready to verify yet. Add each crate that was packaged to
# the vendor/ directory.
- name: Package Crates ${{ inputs.crates }}
run: |
for name in ${{ inputs.crates }}
do
version=$(cargo metadata --format-version 1 | jq -r '.packages[] | select(.name=="'$name'") | .version')
cargo package \
--no-verify \
--package $name \
--config "source.crates-io.replace-with = 'vendored-sources'" \
--config "source.vendored-sources.directory = 'vendor'"
path="target/package/${name}-${version}.crate"
tar xvfz "$path" -C vendor/
# Crates in the vendor directory require a checksum file, but it doesn't
# matter if it is empty.
echo '{"files":{}}' > vendor/$name-$version/.cargo-checksum.json
done
# Rerun the package command but with verification enabled this time. Tell
# cargo to use the local vendor/ directory as the source for all packages. Run
# the package command on the full feature powerset so that all features of
# each crate are verified to compile.
- name: Verify Crates with ${{ inputs.cargo-hack-feature-options }}
run: >
cargo-hack hack
${{ inputs.cargo-hack-feature-options }}
--ignore-private
--config "source.crates-io.replace-with = 'vendored-sources'"
--config "source.vendored-sources.directory = 'vendor'"
package
--target ${{ inputs.target }}
2 changes: 1 addition & 1 deletion .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ jobs:
- 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
uses: stellar/soroban-rpc/.github/workflows/rust-publish-dry-run.yml@main
with:
crates: soroban-rpc
runs-on: ${{ matrix.os }}
Expand Down
2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ version = "=20.3.1"

[workspace.dependencies.soroban-cli]
version = "20.3.0"
git = "https://github.com/stellar/soroban-tools"
rev = "a1e51d263df80682a3dab2b00738700c7326f872"

[workspace.dependencies.soroban-rpc]
version = "20.3.0"
Expand Down

0 comments on commit b97eab0

Please sign in to comment.