ci(release): fix release ci #2
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(CLI) | |
on: | |
push: | |
tags: | |
- "*" | |
env: | |
APP_NAME: hkxc | |
CARGO_TERM_COLOR: always | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
# https://stackoverflow.com/questions/73642596/how-to-cross-compile-rust-across-operating-systems-and-cpu-architectures | |
job: | |
- { | |
target: aarch64-apple-darwin, | |
os: macos-latest, | |
asset: serde-hkx-cli-aarch64-apple-darwin.tar.gz, | |
} | |
- { | |
target: x86_64-pc-windows-msvc, | |
os: windows-latest, | |
asset: serde-hkx-cli-x86_64-pc-windows-msvc.zip, | |
} | |
- { | |
target: x86_64-unknown-linux-gnu, | |
os: ubuntu-latest, | |
asset: serde-hkx-cli-x86_64-unknown-linux-gnu.tar.gz, | |
} | |
runs-on: ${{ matrix.job.os }} | |
steps: | |
- uses: actions/checkout@v4.2.0 | |
- name: Rust cache | |
uses: Swatinem/rust-cache@v2.7.3 | |
with: | |
prefix-key: cargo-release-${{ matrix.job.target }} | |
- name: Build CLI | |
run: cargo build --release --target ${{ matrix.job.target }} | |
- name: Make outputs dir | |
run: mkdir -p ./build | |
# ---------------------------------------------------------------------------------------------------------------- | |
- name: Compress outputs(Windows) | |
shell: pwsh | |
if: runner.os == 'Windows' | |
run: | | |
Move-Item -Path ./target/${{ matrix.job.target }}/release/${{ env.APP_NAME }}.exe -Destination './build' | |
Move-Item -Path ./LICENSES.toml -Destination './build' | |
Compress-Archive -Path './build/*' -DestinationPath './${{ matrix.job.asset }}' | |
- name: Release(Windows) | |
uses: ncipollo/release-action@v1.14.0 | |
if: runner.os == 'Windows' | |
with: | |
artifacts: ${{ matrix.job.asset }} | |
bodyFile: ./docs/release.md | |
generateReleaseNotes: true | |
# ---------------------------------------------------------------------------------------------------------------- | |
- name: Compress outputs(MacOS) | |
shell: bash | |
if: runner.os == 'macOS' | |
run: | | |
mv ./target/${{ matrix.job.target }}/release/${{ env.APP_NAME }} ./build | |
mv ./LICENSES.toml './build' | |
tar -czf ${{ matrix.job.asset }} -C ./build . | |
- name: Release(macOS) | |
uses: ncipollo/release-action@v1.14.0 | |
if: runner.os == 'macOS' | |
with: | |
artifacts: ${{ matrix.job.asset }} | |
bodyFile: ./docs/release.md | |
generateReleaseNotes: true | |
# ---------------------------------------------------------------------------------------------------------------- | |
- name: Compress outputs(Linux) | |
shell: bash | |
if: runner.os == 'Linux' | |
run: | | |
mv ./target/${{ matrix.job.target }}/release/${{ env.APP_NAME }} ./build | |
mv ./LICENSES.toml './build' | |
tar -czf ${{ matrix.job.asset }} -C ./build . | |
- name: Release(Linux) | |
uses: ncipollo/release-action@v1.14.0 | |
if: runner.os == 'Linux' | |
with: | |
artifacts: ${{ matrix.job.asset }} | |
bodyFile: ./docs/release.md | |
generateReleaseNotes: true | |
build_extra: | |
strategy: | |
fail-fast: false | |
matrix: | |
# https://stackoverflow.com/questions/73642596/how-to-cross-compile-rust-across-operating-systems-and-cpu-architectures | |
job: | |
- { | |
target: aarch64-apple-darwin, | |
os: macos-latest, | |
asset: serde-hkx-cli-aarch64-apple-darwin-extra_fmt.tar.gz, | |
} | |
- { | |
target: x86_64-pc-windows-msvc, | |
os: windows-latest, | |
asset: serde-hkx-cli-x86_64-pc-windows-msvc-extra_fmt.zip, | |
} | |
- { | |
target: x86_64-unknown-linux-gnu, | |
os: ubuntu-latest, | |
asset: serde-hkx-cli-x86_64-unknown-linux-gnu-extra_fmt.tar.gz, | |
} | |
runs-on: ${{ matrix.job.os }} | |
steps: | |
- uses: actions/checkout@v4.2.0 | |
- name: Rust cache | |
uses: Swatinem/rust-cache@v2.7.3 | |
with: | |
prefix-key: cargo-release-${{ matrix.job.target }} | |
- name: Build CLI | |
run: cargo build --release --target ${{ matrix.job.target }} --features extra_fmt | |
- name: Make outputs dir | |
run: mkdir -p ./build | |
# ---------------------------------------------------------------------------------------------------------------- | |
- name: Compress outputs(Windows) | |
shell: pwsh | |
if: runner.os == 'Windows' | |
run: | | |
Move-Item -Path ./target/${{ matrix.job.target }}/release/${{ env.APP_NAME }}.exe -Destination './build' | |
Move-Item -Path ./LICENSES.toml -Destination './build' | |
Compress-Archive -Path './build/*' -DestinationPath './${{ matrix.job.asset }}' | |
- name: Release(Windows) | |
uses: ncipollo/release-action@v1.14.0 | |
if: runner.os == 'Windows' | |
with: | |
artifacts: ${{ matrix.job.asset }} | |
bodyFile: ./docs/release.md | |
generateReleaseNotes: true | |
# ---------------------------------------------------------------------------------------------------------------- | |
- name: Compress outputs(MacOS) | |
shell: bash | |
if: runner.os == 'macOS' | |
run: | | |
mv ./target/${{ matrix.job.target }}/release/${{ env.APP_NAME }} ./build | |
mv ./LICENSES.toml './build' | |
tar -czf ${{ matrix.job.asset }} -C ./build . | |
- name: Release(macOS) | |
uses: ncipollo/release-action@v1.14.0 | |
if: runner.os == 'macOS' | |
with: | |
artifacts: ${{ matrix.job.asset }} | |
bodyFile: ./docs/release.md | |
generateReleaseNotes: true | |
# ---------------------------------------------------------------------------------------------------------------- | |
- name: Compress outputs(Linux) | |
shell: bash | |
if: runner.os == 'Linux' | |
run: | | |
mv ./target/${{ matrix.job.target }}/release/${{ env.APP_NAME }} ./build | |
mv ./LICENSES.toml './build' | |
tar -czf ${{ matrix.job.asset }} -C ./build . | |
- name: Release(Linux) | |
uses: ncipollo/release-action@v1.14.0 | |
if: runner.os == 'Linux' | |
with: | |
artifacts: ${{ matrix.job.asset }} | |
bodyFile: ./docs/release.md | |
generateReleaseNotes: true |