diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..bfdda78 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,70 @@ +# +# REF: +# 1. https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategymatrixinclude +# +name: Create Release Draft + +on: + workflow_dispatch: + push: + tags: ["[0-9]+.[0-9]+.[0-9]+*"] + +defaults: + run: + shell: bash + +jobs: + standard: + name: dxf2elmt + + strategy: + fail-fast: false + matrix: + target: + - aarch64-apple-darwin + - x86_64-apple-darwin + - x86_64-pc-windows-msvc + - x86_64-unknown-linux-gnu + - x86_64-unknown-linux-musl + extra: ['bin'] + include: + - target: aarch64-apple-darwin + os: macos-latest + - target: x86_64-apple-darwin + os: macos-latest + - target: x86_64-pc-windows-msvc + extra: 'bin' + os: windows-latest + - target: x86_64-pc-windows-msvc + extra: msi + os: windows-latest + - target: x86_64-unknown-linux-gnu + os: ubuntu-22.04 + - target: x86_64-unknown-linux-musl + os: ubuntu-22.04 + + runs-on: ${{matrix.os}} + + steps: + - uses: actions/checkout@v4 + + - name: Update Rust Toolchain Target + run: | + echo "targets = ['${{matrix.target}}']" >> rust-toolchain.toml + + - name: Setup Rust toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 + # WARN: Keep the rustflags to prevent from the winget submission error: `CAQuietExec: Error 0xc0000135` + with: + cache: false + rustflags: '' + + # REF: https://github.com/marketplace/actions/gh-release + - name: Publish Archive + uses: softprops/action-gh-release@v2.0.8 + if: ${{ startsWith(github.ref, 'refs/tags/') }} + with: + draft: true + files: ${{ steps.dxf2elmt.outputs.archive }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}