Merge pull request #223 from Shivansps/main #18
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
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 }}/* |