Skip to content

build: Update artifact paths and formats in release workflow. #15

build: Update artifact paths and formats in release workflow.

build: Update artifact paths and formats in release workflow. #15

Workflow file for this run

name: Build and Release
on:
push:
branches:
- main
- update-resonite-mod-updater-utils
workflow_dispatch:
jobs:
build-and-release:
runs-on: ubuntu-latest
permissions:
contents: write
env:
PROJECT: ResoniteModUpdater
DOTNET_VERSION: '8.0.x'
VPK_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VPK_MERGE: true
VPK_VERSION: '0.0.626'
strategy:
fail-fast: true
max-parallel: 1
matrix:
include:
- platform: linux-x64
self-contained: true
extra-args: ''
- platform: win-x64
self-contained: false
extra-args: '--noPortable --framework net8.0-x64-runtime'
- platform: win-x64
self-contained: true
extra-args: '--noInst --packTitle win-x64-portable'
is-portable: true
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Get Version from Project File
id: get-version
shell: bash
run: echo "version=$(grep -oE '<AssemblyVersion>[^<]+' ${{ env.PROJECT }}/${{ env.PROJECT }}.csproj | sed 's/<AssemblyVersion>//')" >> $GITHUB_OUTPUT
- name: Install Velopack CLI
run: dotnet tool install -g vpk --version ${{ env.VPK_VERSION }}
- name: Build and Pack
run: |
dotnet publish ${{ env.PROJECT }}/${{ env.PROJECT }}.csproj -c Release -o publish/${{ matrix.platform }}${{ matrix.is-portable && '-portable' || '' }} -r ${{ matrix.platform }} ${{ matrix.self-contained && '--self-contained' || '--no-self-contained' }}
vpk download github --repoUrl ${{ github.server_url }}/${{ github.repository }} --channel ${{ matrix.platform }}${{ matrix.is-portable && '-portable' || '' }} -o releases
vpk ${{ startsWith(matrix.platform, 'win') && '[win] ' || '' }}pack -u ${{ env.PROJECT }} -v ${{ steps.get-version.outputs.version }} -r ${{ matrix.platform }} --channel ${{ matrix.platform }}${{ matrix.is-portable && '-portable' || '' }} ${{ matrix.extra-args }} -p publish/${{ matrix.platform }}${{ matrix.is-portable && '-portable' || '' }} -o releases
- name: Rename and Update Portable Package
if: matrix.is-portable
run: |
mv releases/${{ env.PROJECT }}-${{ matrix.platform }}-portable-Portable.zip releases/${{ env.PROJECT }}-${{ matrix.platform }}-portable.zip
JSON_FILE="./releases/assets.${{ matrix.platform }}-portable.json"
sed -i 's/ResoniteModUpdater-win-x64-portable-Portable.zip/ResoniteModUpdater-win-x64-portable.zip/g' "$JSON_FILE"
- name: Upload Release
run: |
vpk upload github --repoUrl ${{ github.server_url }}/${{ github.repository }} --releaseName "v${{ steps.get-version.outputs.version }}" --tag v${{ steps.get-version.outputs.version }} --targetCommitish ${{ github.sha }} --channel ${{ matrix.platform }}${{ matrix.is-portable && '-portable' || '' }} -o releases
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform }}${{ matrix.is-portable && '-portable' || '' }}-artifacts
path: |
releases/${{ env.PROJECT }}-${{ matrix.platform }}${{ matrix.is-portable && '-portable' || '' }}*.zip
releases/${{ env.PROJECT }}-${{ matrix.platform }}${{ matrix.is-portable && '-portable' || '' }}*.AppImage
releases/${{ env.PROJECT }}-${{ matrix.platform }}${{ matrix.is-portable && '-portable' || '' }}*.exe
compression-level: 0