tar moment #248
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
# This workflow will build a .NET project | |
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net | |
name: Build and Test | |
on: | |
push: | |
pull_request: | |
branches: [ "main" ] | |
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 | |
shell: bash | |
run: echo "VERSION=0.0.0" >> $GITHUB_ENV | |
- 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 Windows x64 | |
if: matrix.os == 'windows-latest' | |
shell: bash | |
run: dotnet publish -c Release -r win-x64 --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} | |
# We need to tarball our macOS and Linux builds, since the ZIP files created by upload-artifact do not retain extended unix file permissions, | |
# which means the executable bit is lost, which is un-ideal for end users, who will hit weird errors (especially relating to code signing on macOS) | |
- name: 'Tar macOS x64 build' | |
if: matrix.os == 'macos-latest' | |
run: tar -cvf Refresher-x64.tar -C Refresher/bin/Release/net8.0/osx-x64/publish/ *.app | |
- name: 'Tar macOS ARM64 build' | |
if: matrix.os == 'macos-latest' | |
run: tar -cvf Refresher-arm64.tar -C Refresher/bin/Release/net8.0/osx-arm64/publish/ *.app | |
- name: 'Tar Linux x64' | |
if: matrix.os == 'ubuntu-latest' | |
run: tar -cvf Refresher.tar -C Refresher/bin/Release/net8.0/linux-x64/publish/ * | |
- name: Upload Linux x64 build | |
if: matrix.os == 'ubuntu-latest' | |
uses: actions/[email protected] | |
with: | |
name: "Refresher for Linux x64" | |
path: "Refresher.tar" | |
if-no-files-found: error | |
retention-days: 30 | |
- 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/" | |
if-no-files-found: error | |
retention-days: 30 | |
- name: Upload macOS x64 build | |
if: matrix.os == 'macos-latest' | |
uses: actions/[email protected] | |
with: | |
name: "Refresher for macOS x64" | |
path: "Refresher-x64.tar" | |
if-no-files-found: error | |
retention-days: 30 | |
- name: Upload macOS ARM64 build | |
if: matrix.os == 'macos-latest' | |
uses: actions/[email protected] | |
with: | |
name: "Refresher for macOS ARM64" | |
path: "Refresher-arm64.tar" | |
if-no-files-found: error | |
retention-days: 30 |