# # 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: Std strategy: matrix: target: - aarch64-apple-darwin - x86_64-apple-darwin - x86_64-pc-windows-msvc - aarch64-pc-windows-msvc - x86_64-unknown-linux-gnu - x86_64-unknown-linux-musl - aarch64-unknown-linux-gnu - armv7-unknown-linux-gnueabihf - riscv64gc-unknown-linux-gnu extra: ['bin'] include: - target: aarch64-apple-darwin os: macos-latest target_rustflags: '' - target: x86_64-apple-darwin os: macos-latest target_rustflags: '' - target: x86_64-pc-windows-msvc extra: 'bin' os: windows-latest target_rustflags: '' - target: x86_64-pc-windows-msvc extra: msi os: windows-latest target_rustflags: '' - target: aarch64-pc-windows-msvc extra: 'bin' os: windows-latest target_rustflags: '' - target: aarch64-pc-windows-msvc extra: msi os: windows-latest target_rustflags: '' - target: x86_64-unknown-linux-gnu os: ubuntu-20.04 target_rustflags: '' - target: x86_64-unknown-linux-musl os: ubuntu-20.04 target_rustflags: '' - target: aarch64-unknown-linux-gnu os: ubuntu-20.04 target_rustflags: '' - target: armv7-unknown-linux-gnueabihf os: ubuntu-20.04 target_rustflags: '' - target: riscv64gc-unknown-linux-gnu os: ubuntu-20.04 target_rustflags: '' 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 and cache uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 # WARN: Keep the rustflags to prevent from the winget submission error: `CAQuietExec: Error 0xc0000135` with: rustflags: '' - name: Setup Nushell uses: hustcer/setup-nu@v3.8 with: version: 0.87.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Release Nu Binary id: nu run: nu .github/workflows/release-pkg.nu env: RELEASE_TYPE: standard OS: ${{ matrix.os }} REF: ${{ github.ref }} TARGET: ${{ matrix.target }} _EXTRA_: ${{ matrix.extra }} TARGET_RUSTFLAGS: ${{ matrix.target_rustflags }} # REF: https://github.com/marketplace/actions/gh-release - name: Publish Archive uses: softprops/action-gh-release@v0.1.15 if: ${{ startsWith(github.ref, 'refs/tags/') }} with: draft: true files: ${{ steps.nu.outputs.archive }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} full: name: Full strategy: fail-fast: false matrix: target: - aarch64-apple-darwin - x86_64-apple-darwin - x86_64-pc-windows-msvc - aarch64-pc-windows-msvc - x86_64-unknown-linux-gnu - x86_64-unknown-linux-musl - aarch64-unknown-linux-gnu extra: ['bin'] include: - target: aarch64-apple-darwin os: macos-latest target_rustflags: '--features=dataframe,extra' - target: x86_64-apple-darwin os: macos-latest target_rustflags: '--features=dataframe,extra' - target: x86_64-pc-windows-msvc extra: 'bin' os: windows-latest target_rustflags: '--features=dataframe,extra' - target: x86_64-pc-windows-msvc extra: msi os: windows-latest target_rustflags: '--features=dataframe,extra' - target: aarch64-pc-windows-msvc extra: 'bin' os: windows-latest target_rustflags: '--features=dataframe,extra' - target: aarch64-pc-windows-msvc extra: msi os: windows-latest target_rustflags: '--features=dataframe,extra' - target: x86_64-unknown-linux-gnu os: ubuntu-20.04 target_rustflags: '--features=dataframe,extra' - target: x86_64-unknown-linux-musl os: ubuntu-20.04 target_rustflags: '--features=dataframe,extra' - target: aarch64-unknown-linux-gnu os: ubuntu-20.04 target_rustflags: '--features=dataframe,extra' 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 and cache uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 # WARN: Keep the rustflags to prevent from the winget submission error: `CAQuietExec: Error 0xc0000135` with: rustflags: '' - name: Setup Nushell uses: hustcer/setup-nu@v3.8 with: version: 0.87.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Release Nu Binary id: nu run: nu .github/workflows/release-pkg.nu env: RELEASE_TYPE: full OS: ${{ matrix.os }} REF: ${{ github.ref }} TARGET: ${{ matrix.target }} _EXTRA_: ${{ matrix.extra }} TARGET_RUSTFLAGS: ${{ matrix.target_rustflags }} # REF: https://github.com/marketplace/actions/gh-release - name: Publish Archive uses: softprops/action-gh-release@v0.1.15 if: ${{ startsWith(github.ref, 'refs/tags/') }} with: draft: true files: ${{ steps.nu.outputs.archive }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}