Properly handle showing child forms #43
Workflow file for this run
This file contains 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
# https://acraven.medium.com/a-nuget-package-workflow-using-github-actions-7da8c6557863 | |
name: Create new release from pushed tag | |
on: | |
push: | |
tags: | |
- "*" | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, windows-latest, macos-latest ] | |
name: Build, Test, and Upload Builds (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 8.0.x | |
- name: Set VERSION variable from tag | |
if: ${{ contains(github.ref, 'refs/tags') }} | |
shell: bash | |
run: echo "VERSION=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_ENV | |
- name: Print VERSION variable for debugging | |
shell: bash | |
run: echo "$VERSION" | |
- name: Publish for Linux x64 | |
if: matrix.os == 'ubuntu-latest' | |
run: dotnet publish -c Release -r linux-x64 --self-contained Refresher /p:Version=${VERSION} | |
- name: Publish for Linux ARM | |
if: matrix.os == 'ubuntu-latest' | |
run: dotnet publish -c Release -r linux-arm --self-contained Refresher /p:Version=${VERSION} | |
- name: Publish for Linux ARM64 | |
if: matrix.os == 'ubuntu-latest' | |
run: dotnet publish -c Release -r linux-arm64 --self-contained Refresher /p:Version=${VERSION} | |
- name: Publish for Windows x64 | |
if: matrix.os == 'windows-latest' | |
shell: bash | |
run: dotnet publish -c Release -r win-x64 --no-self-contained Refresher //p:Version=${VERSION} | |
- name: Publish for macOS x64 | |
if: matrix.os == 'macos-latest' | |
shell: bash | |
run: dotnet publish -c Release -r osx-x64 --self-contained Refresher /p:Version=${VERSION} | |
- name: Publish for macOS ARM64 | |
if: matrix.os == 'macos-latest' | |
shell: bash | |
run: dotnet publish -c Release -r osx-arm64 --self-contained Refresher /p:Version=${VERSION} | |
- name: Create macOS universal2 binary | |
if: matrix.os == 'macos-latest' | |
shell: bash | |
working-directory: Refresher/bin/Release/net8.0/ | |
run: | | |
mkdir -p osx-universal2/publish/Refresher.app/Contents/MacOS | |
cp -r osx-arm64/publish/*.app/Contents/ osx-universal2/publish/Refresher.app/Contents/ | |
for file in $(find osx-arm64/publish/*.app/Contents/MacOS); do | |
if [[ "$(file $file)" == *"Mach-O"* ]]; then | |
if [[ "$(lipo -archs $file)" != *"x86_64 arm64"* ]]; then | |
lipo -create osx-arm64/publish/*.app/Contents/MacOS/$(basename $file) osx-x64/publish/*.app/Contents/MacOS/$(basename $file) -output osx-universal2/publish/Refresher.app/Contents/MacOS/$(basename $file); | |
fi; | |
fi; | |
done | |
rm -rfv osx-universal2/publish/Refresher.app/Contents/MacOS/*.app | |
codesign -fs - --deep osx-universal2/publish/Refresher.app | |
- name: 'Tar macOS universal2 build' | |
if: matrix.os == 'macos-latest' | |
working-directory: Refresher/bin/Release/net8.0/osx-universal2/publish/ | |
run: tar -czvf ../../../../../../Refresher_for_macOS.tar.gz *.app | |
- name: 'Tar Linux x64' | |
if: matrix.os == 'ubuntu-latest' | |
working-directory: Refresher/bin/Release/net8.0/linux-x64/publish/ | |
run: tar -czvf ../../../../../../Refresher_for_Linux_x64.tar.gz * | |
- name: 'Tar Linux ARM' | |
if: matrix.os == 'ubuntu-latest' | |
working-directory: Refresher/bin/Release/net8.0/linux-arm/publish/ | |
run: tar -czvf ../../../../../../Refresher_for_Linux_arm.tar.gz * | |
- name: 'Tar Linux ARM64' | |
if: matrix.os == 'ubuntu-latest' | |
working-directory: Refresher/bin/Release/net8.0/linux-arm64/publish/ | |
run: tar -czvf ../../../../../../Refresher_for_Linux_arm64.tar.gz * | |
- name: Upload Linux x64 build | |
if: matrix.os == 'ubuntu-latest' | |
uses: actions/[email protected] | |
with: | |
name: "Refresher_for_Linux_x64" | |
path: "Refresher_for_Linux_x64.tar.gz" | |
if-no-files-found: error | |
retention-days: 1 | |
- name: Upload Linux ARM build | |
if: matrix.os == 'ubuntu-latest' | |
uses: actions/[email protected] | |
with: | |
name: "Refresher_for_Linux_arm" | |
path: "Refresher_for_Linux_arm.tar.gz" | |
if-no-files-found: error | |
retention-days: 1 | |
- name: Upload Linux ARM64 build | |
if: matrix.os == 'ubuntu-latest' | |
uses: actions/[email protected] | |
with: | |
name: "Refresher_for_Linux_arm64" | |
path: "Refresher_for_Linux_arm64.tar.gz" | |
if-no-files-found: error | |
retention-days: 1 | |
- name: Upload Windows x64 build | |
if: matrix.os == 'windows-latest' | |
uses: actions/[email protected] | |
with: | |
name: "Refresher_for_Windows_x64" | |
path: "Refresher/bin/Release/net8.0-windows/win-x64/publish/Refresher.exe" | |
if-no-files-found: error | |
retention-days: 1 | |
- name: Upload macOS universal2 build | |
if: matrix.os == 'macos-latest' | |
uses: actions/[email protected] | |
with: | |
name: "Refresher_for_macOS" | |
path: "Refresher_for_macOS.tar.gz" | |
if-no-files-found: error | |
retention-days: 1 | |
release: | |
name: Release Built Artifacts | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download artifacts | |
id: download | |
uses: actions/[email protected] | |
- name: Create zip files | |
run: | | |
cd ${{steps.download.outputs.download-path}} | |
mv ${{steps.download.outputs.download-path}}/Refresher_for_Windows_x64/Refresher.exe ./Refresher_for_Windows_x64.exe | |
mv ${{steps.download.outputs.download-path}}/Refresher_for_Linux_x64/*.tar.gz . | |
mv ${{steps.download.outputs.download-path}}/Refresher_for_Linux_arm/*.tar.gz . | |
mv ${{steps.download.outputs.download-path}}/Refresher_for_Linux_arm64/*.tar.gz . | |
mv ${{steps.download.outputs.download-path}}/Refresher_for_macOS/*.tar.gz . | |
- uses: ncipollo/[email protected] | |
name: "Create release" | |
with: | |
token: "${{ secrets.GITHUB_TOKEN }}" | |
prerelease: false | |
draft: true | |
generateReleaseNotes: true | |
bodyFile: "RELEASE_NOTES.md" | |
artifacts: | | |
*.zip | |
*.tar.gz | |
Refresher_for_Windows_x64.exe |