Skip to content

Merge pull request #211 from JohnAFernandez/1.2-Pre-Release #14

Merge pull request #211 from JohnAFernandez/1.2-Pre-Release

Merge pull request #211 from JohnAFernandez/1.2-Pre-Release #14

Workflow file for this run

name: Create Release
# NOTE: this file is only intended to be used when triggered by a version tag!
on:
push:
tags:
- 'v*.*.*'
permissions:
contents: write
env:
OUTPUT_DIR: ./build/packages
PUBLISH_DIR: ./build/publish
jobs:
build-win:
name: Windows builds
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: '${{ github.ref }}'
- name: Set environment
shell: bash
run: |
echo "VERSION=$(echo ${{ github.ref_name }} | cut -c 2-)" >> $GITHUB_ENV
echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.0.x'
- name: Create directories
shell: bash
run: |
mkdir -p "$OUTPUT_DIR"
mkdir -p "$PUBLISH_DIR"
- name: Publish Windows RIDs
shell: bash
run: ./ci/publish_all_host.sh
- name: Archive builds
shell: bash
run: |
cd "$PUBLISH_DIR"
tar -czvf win-builds.tgz --exclude='*.pdb' *
- name: Upload build archive
uses: actions/upload-artifact@v3
with:
name: win-builds
path: ${{ env.PUBLISH_DIR }}/win-builds.tgz
retention-days: 5
build-mac:
name: macOS builds
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: '${{ github.ref }}'
- name: Set environment
shell: bash
run: |
echo "VERSION=$(echo ${{ github.ref_name }} | cut -c 2-)" >> $GITHUB_ENV
echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.0.x'
- name: Create directories
shell: bash
run: |
mkdir -p "$OUTPUT_DIR"
mkdir -p "$PUBLISH_DIR"
- name: Publish macOS RIDs
shell: bash
run: ./ci/publish_all_host.sh
- name: Archive builds
shell: bash
run: |
cd "$PUBLISH_DIR"
tar -czvf mac-builds.tgz --exclude='*.pdb' *
- name: Upload build archive
uses: actions/upload-artifact@v3
with:
name: mac-builds
path: ${{ env.PUBLISH_DIR }}/mac-builds.tgz
retention-days: 5
package_release:
name: Linux builds, package and release
needs: [build-win, build-mac]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: '${{ github.ref }}'
- name: Set environment
shell: bash
run: |
echo "VERSION=$(echo ${{ github.ref_name }} | cut -c 2-)" >> $GITHUB_ENV
echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV
- name: Create directories
shell: bash
run: |
mkdir -p "$OUTPUT_DIR"
mkdir -p "$PUBLISH_DIR"
- name: Install utilities
# zip for packaging windows builds
# nsis for windows installer
run: sudo apt-get update && sudo apt-get install zip nsis
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.0.x'
- name: Publish Linux RIDs
shell: bash
run: ./ci/publish_all_host.sh
- name: Download Windows build artifact
uses: actions/download-artifact@v3
with:
name: win-builds
path: ${{ env.PUBLISH_DIR }}
- name: Download macOS build artifact
uses: actions/download-artifact@v3
with:
name: mac-builds
path: ${{ env.PUBLISH_DIR }}
- name: Extract build archives
run: |
cd "$PUBLISH_DIR"
tar -xzvf win-builds.tgz
tar -xzvf mac-builds.tgz
- name: Package all RIDs
run: ${{ github.workspace }}/ci/package_all.sh
- name: Create installers for Windows
run: ${{ github.workspace }}/ci/create_win_installer.sh
- name: Set up QEMU integration for Docker
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- name: Create AppImage (x86_64)
env:
ARCH: x86_64
run: ${{ github.workspace }}/ci/create_appimage.sh
- name: Create AppImage (aarch64)
env:
ARCH: aarch64
run: ${{ github.workspace }}/ci/create_appimage.sh
- name: Generate checksums
run: |
cd $OUTPUT_DIR
sha256sum *.* >checksums.txt
cat checksums.txt
- name: Generate Release
uses: softprops/action-gh-release@v1
with:
draft: true
files: ${{ env.OUTPUT_DIR }}/*