forked from 1b-agent/opencadstudio-upstream
BREAKING CHANGE: API v4+ plugin packages must declare the exact rustc version used to build the binary. Refs #901
45 lines
1.3 KiB
YAML
45 lines
1.3 KiB
YAML
name: release
|
|
|
|
# Build the plugin cdylib for each desktop platform and attach the binaries
|
|
# (plus plugin.toml) to a GitHub Release on a v* tag. Open CAD Studio's Plugin
|
|
# Manager reads the assets, picks the one matching the user's OS/arch, and
|
|
# installs it. Rename the `asset:` files to your plugin id.
|
|
on:
|
|
push:
|
|
tags: ["v*"]
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-latest
|
|
ext: so
|
|
asset: opencad.my_plugin-linux-x86_64.so
|
|
- os: windows-latest
|
|
ext: dll
|
|
asset: opencad.my_plugin-windows-x86_64.dll
|
|
- os: macos-latest
|
|
ext: dylib
|
|
asset: opencad.my_plugin-macos-aarch64.dylib
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- run: cargo build --release
|
|
- name: Stage release asset
|
|
shell: bash
|
|
run: |
|
|
mkdir -p dist
|
|
cp target/release/*.${{ matrix.ext }} "dist/${{ matrix.asset }}"
|
|
sed "s|__RUSTC_VERSION__|$(rustc --version)|" plugin.toml > dist/plugin.toml
|
|
- uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: |
|
|
dist/${{ matrix.asset }}
|
|
dist/plugin.toml
|