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 }}" cp plugin.toml dist/plugin.toml - uses: softprops/action-gh-release@v2 with: files: | dist/${{ matrix.asset }} dist/plugin.toml