Repository navigation
chore: Bump workspace version to 1.1.0 #7
Workflow file for this run
This file contains hidden or 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 | |
| permissions: | |
| contents: read | |
| on: | |
| workflow_dispatch: | |
| push: | |
| tags: | |
| - "v*.*.*" | |
| env: | |
| RUST_BACKTRACE: 1 | |
| CARGO_TERM_COLOR: always | |
| CLICOLOR: 1 | |
| COLUMNS: 130 | |
| concurrency: | |
| group: "${{ github.workflow }}-${{ github.ref }}" | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| name: Build (${{ matrix.target }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - target: x86_64-pc-windows-msvc | |
| runner: windows-latest | |
| system: windows | |
| arch: x86_64 | |
| ext: .exe | |
| - target: aarch64-pc-windows-msvc | |
| runner: windows-latest | |
| system: windows | |
| arch: aarch64 | |
| ext: .exe | |
| - target: aarch64-apple-darwin | |
| runner: macos-latest | |
| system: macos | |
| arch: aarch64 | |
| ext: "" | |
| - target: x86_64-unknown-linux-gnu | |
| runner: ubuntu-latest | |
| system: linux | |
| arch: x86_64 | |
| ext: "" | |
| runs-on: ${{ matrix.runner }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Install Linux dependencies | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| clang mold \ | |
| libwayland-dev libxkbcommon-dev \ | |
| libgl1-mesa-dev libx11-dev | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: stable | |
| targets: ${{ matrix.target }} | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: ${{ matrix.target }} | |
| - name: Build | |
| run: cargo build --release --locked --target ${{ matrix.target }} -p cli -p gui | |
| - name: Rename artifacts | |
| shell: bash | |
| run: | | |
| dir="target/${{ matrix.target }}/release" | |
| cp "${dir}/cli${{ matrix.ext }}" "cli-${{ matrix.system }}-${{ matrix.arch }}${{ matrix.ext }}" | |
| cp "${dir}/gui${{ matrix.ext }}" "gui-${{ matrix.system }}-${{ matrix.arch }}${{ matrix.ext }}" | |
| - name: Upload CLI artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: cli-${{ matrix.system }}-${{ matrix.arch }} | |
| path: cli-${{ matrix.system }}-${{ matrix.arch }}${{ matrix.ext }} | |
| if-no-files-found: error | |
| retention-days: 7 | |
| - name: Upload GUI artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: gui-${{ matrix.system }}-${{ matrix.arch }} | |
| path: gui-${{ matrix.system }}-${{ matrix.arch }}${{ matrix.ext }} | |
| if-no-files-found: error | |
| retention-days: 7 | |
| - name: Package CLI archive | |
| shell: bash | |
| run: | | |
| dir="multivc-cli-${{ matrix.system }}-${{ matrix.arch }}" | |
| mkdir "$dir" | |
| cp "cli-${{ matrix.system }}-${{ matrix.arch }}${{ matrix.ext }}" "$dir/cli${{ matrix.ext }}" | |
| echo 'language = "En"' > "$dir/settings.toml" | |
| if [[ "${{ matrix.system }}" == "windows" ]]; then | |
| 7z a "${dir}.zip" "$dir" | |
| else | |
| tar czf "${dir}.tar.gz" "$dir" | |
| fi | |
| - name: Package GUI archive | |
| shell: bash | |
| run: | | |
| dir="multivc-gui-${{ matrix.system }}-${{ matrix.arch }}" | |
| mkdir "$dir" | |
| cp "gui-${{ matrix.system }}-${{ matrix.arch }}${{ matrix.ext }}" "$dir/gui${{ matrix.ext }}" | |
| echo 'language = "En"' > "$dir/settings.toml" | |
| if [[ "${{ matrix.system }}" == "windows" ]]; then | |
| 7z a "${dir}.zip" "$dir" | |
| else | |
| tar czf "${dir}.tar.gz" "$dir" | |
| fi | |
| - name: Upload CLI archive | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: archive-cli-${{ matrix.system }}-${{ matrix.arch }} | |
| path: multivc-cli-${{ matrix.system }}-${{ matrix.arch }}.* | |
| if-no-files-found: error | |
| retention-days: 7 | |
| - name: Upload GUI archive | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: archive-gui-${{ matrix.system }}-${{ matrix.arch }} | |
| path: multivc-gui-${{ matrix.system }}-${{ matrix.arch }}.* | |
| if-no-files-found: error | |
| retention-days: 7 | |
| release: | |
| name: Create GitHub Release | |
| needs: build | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/') | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Generate changelog | |
| uses: orhun/git-cliff-action@v4 | |
| id: changelog | |
| with: | |
| config: cliff.toml | |
| args: --latest --strip header | |
| env: | |
| OUTPUT: CHANGELOG.md | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts/ | |
| merge-multiple: true | |
| - name: Create GitHub Release | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| gh release create "${{ github.ref_name }}" \ | |
| --repo "${{ github.repository }}" \ | |
| --title "MultiVC ${{ github.ref_name }}" \ | |
| --notes-file CHANGELOG.md \ | |
| artifacts/* |