Release #92
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" | |
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: "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-message --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
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 }} | |
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-cli --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
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 }} | |
# Publish extension crates | |
cargo publish -p dora-record --token ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
windows-release: | |
name: "Windows Release" | |
strategy: | |
matrix: | |
platform: [windows-2022] | |
fail-fast: false | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: r7kamura/[email protected] | |
- name: "Build binaries" | |
timeout-minutes: 60 | |
run: "cargo build --release -p dora-cli" | |
- name: "Upload release asset" | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ github.event.release.upload_url }} | |
asset_path: target/release/dora.exe | |
asset_name: dora-${{ github.ref_name }}-x86_64-${{ runner.os }}.zip | |
asset_content_type: application/zip | |
unix-release: | |
name: "Unix Release" | |
strategy: | |
matrix: | |
platform: [macos-12, ubuntu-20.04] | |
fail-fast: false | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: r7kamura/[email protected] | |
- name: "Build binaries" | |
timeout-minutes: 60 | |
run: "cargo build --release -p dora-cli" | |
- name: "Upload release asset" | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ github.event.release.upload_url }} | |
asset_path: target/release/dora | |
asset_name: dora-${{ github.ref_name }}-x86_64-${{ runner.os }}.zip | |
asset_content_type: application/zip | |
linux-arm-release: | |
name: "Linux ARM Release" | |
strategy: | |
matrix: | |
platform: [ubuntu-20.04] | |
fail-fast: false | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: r7kamura/[email protected] | |
- name: "Build Linux ARM64" | |
if: runner.os == 'Linux' | |
uses: actions-rs/cargo@v1 | |
with: | |
use-cross: true | |
command: build | |
args: --release --target aarch64-unknown-linux-gnu -p dora-cli | |
- name: "Upload Linux ARM64 asset" | |
if: runner.os == 'Linux' | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ github.event.release.upload_url }} | |
asset_path: target/aarch64-unknown-linux-gnu/release/dora archive_aarch64/dora | |
asset_name: dora-${{ github.ref_name }}-aarch64-${{ runner.os }}.zip | |
asset_content_type: application/zip | |
mac-arm-release: | |
name: "MacOS ARM Release" | |
strategy: | |
matrix: | |
platform: [macos-12] | |
fail-fast: false | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: r7kamura/[email protected] | |
- name: "Add macOS ARM64 toolchains" | |
if: runner.os == 'macOS' | |
run: rustup target add aarch64-apple-darwin | |
- name: "Build macOS ARM64" | |
if: runner.os == 'macOS' | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release --target aarch64-apple-darwin -p dora-cli | |
- name: "Upload macOS ARM64 asset" | |
if: runner.os == 'macOS' | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ github.event.release.upload_url }} | |
asset_path: target/aarch64-apple-darwin/release/dora archive_aarch64/dora | |
asset_name: dora-${{ github.ref_name }}-aarch64-${{ runner.os }}.zip | |
asset_content_type: application/zip |