diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 37063783..44efcb1e 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -15,6 +15,10 @@ on: description: "Skip running unit tests" required: false default: true + architecture: + type: string + description: "CPU architecture targeted by the build." + required: true env: DOTNET_CONFIGURATION: "Release" @@ -22,8 +26,11 @@ env: jobs: build: - name: "${{ matrix.os }}-${{ matrix.release_name }}" + name: "${{ matrix.os }}-${{ matrix.release_name }}-${{ inputs.architecture }}" runs-on: windows-latest + env: + OUTPUT_NAME: "${{ matrix.os }}-${{ matrix.release_name }}-${{ inputs.architecture }}" + RUNTIME_ID: "win-${{ inputs.architecture }}" strategy: matrix: os: [Windows] @@ -63,38 +70,42 @@ jobs: run: | dotnet publish ` Libation${{ matrix.ui }}/Libation${{ matrix.ui }}.csproj ` + --runtime ${{ env.RUNTIME_ID }} ` --configuration ${{ env.DOTNET_CONFIGURATION }} ` - --output bin/Publish/${{ matrix.os }}-${{ matrix.release_name }} ` + --output bin/Publish/${{ env.OUTPUT_NAME }} ` -p:PublishProfile=Libation${{ matrix.ui }}/Properties/PublishProfiles/${{ matrix.os }}Profile.pubxml dotnet publish ` LoadByOS/${{ matrix.os }}ConfigApp/${{ matrix.os }}ConfigApp.csproj ` + --runtime ${{ env.RUNTIME_ID }} ` --configuration ${{ env.DOTNET_CONFIGURATION }} ` - --output bin/Publish/${{ matrix.os }}-${{ matrix.release_name }} ` + --output bin/Publish/${{ env.OUTPUT_NAME }} ` -p:PublishProfile=LoadByOS/${{ matrix.os }}ConfigApp/PublishProfiles/${{ matrix.os }}Profile.pubxml dotnet publish ` LibationCli/LibationCli.csproj ` + --runtime ${{ env.RUNTIME_ID }} ` --configuration ${{ env.DOTNET_CONFIGURATION }} ` - --output bin/Publish/${{ matrix.os }}-${{ matrix.release_name }} ` + --output bin/Publish/${{ env.OUTPUT_NAME }} ` -p:DefineConstants="${{ matrix.release_name }}" ` -p:PublishProfile=LibationCli/Properties/PublishProfiles/${{ matrix.os }}Profile.pubxml dotnet publish ` Hangover${{ matrix.ui }}/Hangover${{ matrix.ui }}.csproj ` + --runtime ${{ env.RUNTIME_ID }} ` --configuration ${{ env.DOTNET_CONFIGURATION }} ` - --output bin/Publish/${{ matrix.os }}-${{ matrix.release_name }} ` + --output bin/Publish/${{ env.OUTPUT_NAME }} ` -p:PublishProfile=Hangover${{ matrix.ui }}/Properties/PublishProfiles/${{ matrix.os }}Profile.pubxml - name: Zip artifact id: zip working-directory: ./Source/bin/Publish run: | - $bin_dir = "${{ matrix.os }}-${{ matrix.release_name }}\" + $bin_dir = "${{ env.OUTPUT_NAME }}\" $delfiles = @( "WindowsConfigApp.exe", "WindowsConfigApp.runtimeconfig.json", "WindowsConfigApp.deps.json" ) foreach ($file in $delfiles){ if (test-path $bin_dir$file){ Remove-Item $bin_dir$file } } - $artifact="${{ matrix.prefix }}Libation.${{ steps.get_version.outputs.version }}-" + "${{ matrix.os }}".ToLower() + "-${{ matrix.release_name }}" + $artifact="${{ matrix.prefix }}Libation.${{ steps.get_version.outputs.version }}-" + "${{ matrix.os }}".ToLower() + "-${{ matrix.release_name }}-${{ inputs.architecture }}" "artifact=$artifact" >> $env:GITHUB_OUTPUT Compress-Archive -Path "${bin_dir}*" -DestinationPath "$artifact.zip" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a67098ea..341f8033 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,10 +18,14 @@ on: jobs: windows: + strategy: + matrix: + architecture: [x64] uses: ./.github/workflows/build-windows.yml with: version_override: ${{ inputs.version_override }} run_unit_tests: ${{ inputs.run_unit_tests }} + architecture: ${{ matrix.architecture }} linux: strategy: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 50f6909e..421ef3a8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -49,7 +49,7 @@ jobs: id: release uses: softprops/action-gh-release@v2 with: - name: Libation ${{ needs.prerelease.outputs.version }} + name: Libation v${{ needs.prerelease.outputs.version }} body: token: ${{ secrets.GITHUB_TOKEN }} draft: true diff --git a/.releaseindex.json b/.releaseindex.json index 9d9dea23..7ae58e51 100644 --- a/.releaseindex.json +++ b/.releaseindex.json @@ -1,10 +1,10 @@ { - "WindowsClassic": "Classic-Libation\\.\\d+\\.\\d+\\.\\d+-win(dows)?-classic\\.zip", - "WindowsAvalonia": "Libation\\.\\d+\\.\\d+\\.\\d+-win(dows)?-chardonnay\\.zip", - "LinuxAvalonia": "Libation\\.\\d+\\.\\d+\\.\\d+-linux-chardonnay-amd64\\.deb", - "LinuxAvalonia_RPM": "Libation\\.\\d+\\.\\d+\\.\\d+-linux-chardonnay-amd64\\.rpm", - "MacOSAvalonia": "Libation\\.\\d+\\.\\d+\\.\\d+-macOS-chardonnay-x64\\.tgz", - "LinuxAvalonia_Arm64": "Libation\\.\\d+\\.\\d+\\.\\d+-linux-chardonnay-arm64\\.deb", - "LinuxAvalonia_Arm64_RPM": "Libation\\.\\d+\\.\\d+\\.\\d+-linux-chardonnay-arm64\\.rpm", - "MacOSAvalonia_Arm64": "Libation\\.\\d+\\.\\d+\\.\\d+-macOS-chardonnay-arm64\\.tgz" + "WindowsClassic": "Classic-Libation\\.\\d+\\.\\d+\\.\\d+(?:\\.\\d+)?-win(?:dows)?-classic-x64\\.zip", + "WindowsAvalonia": "Libation\\.\\d+\\.\\d+\\.\\d+(?:\\.\\d+)?-win(?:dows)?-chardonnay-x64\\.zip", + "LinuxAvalonia": "Libation\\.\\d+\\.\\d+\\.\\d+(?:\\.\\d+)?-linux-chardonnay-amd64\\.deb", + "LinuxAvalonia_RPM": "Libation\\.\\d+\\.\\d+\\.\\d+(?:\\.\\d+)?-linux-chardonnay-amd64\\.rpm", + "MacOSAvalonia": "Libation\\.\\d+\\.\\d+\\.\\d+(?:\\.\\d+)?-macOS-chardonnay-x64\\.tgz", + "LinuxAvalonia_Arm64": "Libation\\.\\d+\\.\\d+\\.\\d+(?:\\.\\d+)?-linux-chardonnay-arm64\\.deb", + "LinuxAvalonia_Arm64_RPM": "Libation\\.\\d+\\.\\d+\\.\\d+(?:\\.\\d+)?-linux-chardonnay-arm64\\.rpm", + "MacOSAvalonia_Arm64": "Libation\\.\\d+\\.\\d+\\.\\d+(?:\\.\\d+)?-macOS-chardonnay-arm64\\.tgz" }