Release #122
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: Release | |
permissions: | |
contents: write | |
on: | |
release: | |
types: | |
- "published" | |
workflow_dispatch: | |
jobs: | |
cargo-release: | |
name: "Cargo Release" | |
strategy: | |
matrix: | |
platform: [ubuntu-20.04] | |
fail-fast: false | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: r7kamura/[email protected] | |
- name: Free Disk Space (Ubuntu) | |
uses: jlumbroso/free-disk-space@main | |
if: runner.os == 'Linux' | |
with: | |
# this might remove tools that are actually needed, | |
# if set to "true" but frees about 6 GB | |
tool-cache: true | |
# all of these default to true, but feel free to set to | |
# "false" if necessary for your workflow | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: false | |
docker-images: true | |
swap-storage: true | |
- name: "Publish packages on `crates.io`" | |
if: runner.os == 'Linux' | |
run: | | |
# Publishing those crates from outer crates with no dependency to inner crates | |
# As cargo is going to rebuild the crates based on published dependencies | |
# we need to publish those outer crates first to be able to test the publication | |
# of inner crates. | |
# | |
# We should preferably test pre-releases before testing releases as | |
# cargo publish might catch release issues that the workspace manages to fix using | |
# workspace crates. | |
# Publish libraries crates | |
cargo publish -p dora-tracing --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-metrics --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-download --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-core --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
# the dora-message package is versioned separately, so this publish command might fail if the version is already published | |
cargo publish -p dora-message --token ${{ secrets.CARGO_REGISTRY_TOKEN }} || true | |
cargo publish -p communication-layer-pub-sub --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p communication-layer-request-reply --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p shared-memory-server --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-arrow-convert --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
# Publish rust API | |
cargo publish -p dora-operator-api-macros --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-operator-api-types --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-operator-api --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-node-api --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-operator-api-python --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-operator-api-c --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-node-api-c --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
# Publish binaries crates | |
cargo publish -p dora-coordinator --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-runtime --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-daemon --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
cargo publish -p dora-cli --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
unix: | |
runs-on: ${{ matrix.platform.runner }} | |
strategy: | |
matrix: | |
platform: | |
- runner: ubuntu-20.04 | |
target: x86_64-unknown-linux-gnu | |
- runner: ubuntu-20.04 | |
target: i686-unknown-linux-gnu | |
- runner: ubuntu-20.04 | |
target: aarch64-unknown-linux-gnu | |
- runner: ubuntu-20.04 | |
target: aarch64-unknown-linux-musl | |
- runner: ubuntu-20.04 | |
target: armv7-unknown-linux-musleabihf | |
- runner: macos-12 | |
target: aarch64-apple-darwin | |
- runner: macos-12 | |
target: x86_64-apple-darwin | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: r7kamura/[email protected] | |
- name: "Add toolchains" | |
run: rustup target add ${{ matrix.platform.target }} | |
- name: "Build" | |
uses: actions-rs/cargo@v1 | |
with: | |
use-cross: true | |
command: build | |
args: --release --target ${{ matrix.platform.target }} -p dora-cli | |
- name: "Archive" | |
run: zip -j -r ${{ matrix.platform.target }}.zip target/${{ matrix.platform.target }}/release/dora | |
- name: "Upload asset" | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ github.event.release.upload_url }} | |
asset_path: ${{ matrix.platform.target }}.zip | |
asset_name: dora-${{ github.ref_name }}-${{ matrix.platform.target }}.zip | |
asset_content_type: application/zip | |
windows-release: | |
name: "Windows Release" | |
strategy: | |
matrix: | |
platform: | |
- runner: windows-2022 | |
target: x86_64-pc-windows-msvc | |
fail-fast: false | |
runs-on: ${{ matrix.platform.runner }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: r7kamura/[email protected] | |
- name: "Build binaries" | |
timeout-minutes: 60 | |
run: "cargo build --release -p dora-cli" | |
- name: Create Archive (Windows) | |
if: runner.os == 'Windows' | |
shell: powershell | |
run: Compress-Archive -Path target/release/dora.exe -DestinationPath archive.zip | |
- name: "Upload release asset" | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ github.event.release.upload_url }} | |
asset_path: archive.zip | |
asset_name: dora-${{ github.ref_name }}-${{ matrix.platform.target }}.zip | |
asset_content_type: application/zip |