Update release process #371
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: Build release | |
on: | |
push: | |
branches: | |
- master | |
workflow_dispatch: | |
env: | |
NIM_VERSION: binary:2.0.8 | |
jobs: | |
build-manual: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Nim | |
uses: iffy/install-nim@v5 | |
with: | |
version: ${{ env.NIM_VERSION }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Install Sass | |
run: | | |
npm install -g sass | |
sass --version | |
- name: Install Sphinx | |
run: | | |
pip install sphinx | |
sphinx-build --version | |
- name: Build manual | |
run: | | |
nim manual | |
build-release-mac: | |
runs-on: macOS-12 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Nim | |
uses: iffy/install-nim@v5 | |
with: | |
version: ${{ env.NIM_VERSION }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Install Nim dependencies | |
run: nimble -y install koi osdialog riff semver winim with | |
- name: Inject version strings | |
run: | | |
PACKAGE_NAME=$(nim macPackageName) | |
echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV | |
VERSION=$(nim versionAndGitHash) | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
- name: macOS arm64 release build | |
run: nim -f releaseMacX64 | |
- name: macOS x86-64 release build | |
run: nim -f releaseMacArm64 | |
- name: Create macOS universal binary | |
run: nim mergeMacUniversal | |
- name: Create macOS app bundle | |
run: nim packageMac | |
- name: Upload release artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gridmonger-v${{ env.VERSION }}-macos | |
path: dist/macos/${{ env.PACKAGE_NAME }} | |
build-release-windows: | |
runs-on: windows-2019 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Nim | |
uses: iffy/install-nim@v5 | |
with: | |
version: ${{ env.NIM_VERSION }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Install Nim dependencies | |
run: nimble -y install koi osdialog riff semver winim with | |
# - name: Inject version strings (32-bit) | |
# run: | | |
# $VERSION=nim versionAndGitHash | |
# "VERSION=$VERSION" >> $GITHUB_ENV | |
# | |
# $INST_PACKAGE_NAME=nim --cpu:i386 winInstallerPackageName | |
# "INST_PACKAGE_NAME=$INST_PACKAGE_NAME" >> $GITHUB_ENV | |
# | |
# $PORT_PACKAGE_NAME=nim --cpu:i386 winPortablePackageName | |
# "PORT_PACKAGE_NAME=$PORT_PACKAGE_NAME" >> $GITHUB_ENV | |
# | |
# - name: Windows 32-bit build | |
# run: | | |
# nim -f --cpu:i386 release | |
# nim --cpu:i386 packageWinInstaller | |
# nim --cpu:i386 packageWinPortable | |
# | |
# - name: Upload 32-bit installer release artifact | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: gridmonger-v${{ env.VERSION }}-win32-setup | |
# path: ${{ env.INST_PACKAGE_NAME }} | |
# | |
# - name: Upload 32-bit portable release artifact | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: gridmonger-v${{ env.VERSION }}-win32-portable | |
# path: ${{ env.PORT_PACKAGE_NAME }} | |
# | |
# | |
- name: Inject version strings (64-bit) | |
shell: bash | |
run: | | |
set -x | |
VERSION=$(nim versionAndGitHash) | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
INST_PACKAGE_NAME=$(nim winInstallerPackageName) | |
echo "INST_PACKAGE_NAME=$INST_PACKAGE_NAME" >> $GITHUB_ENV | |
- name: Windows 64-bit release build | |
run: | | |
nim release | |
- name: Windows 64-bit installer package | |
run: | | |
nim packageWinInstaller | |
- name: Windows 64-bit portable package | |
run: | | |
nim packageWinPortable | |
- name: Upload 64-bit installer release artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gridmonger-v${{ env.VERSION }}-win64-setup | |
path: dist/windows/${{ env.INST_PACKAGE_NAME }} | |
- name: Upload 64-bit portable release artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gridmonger-v${{ env.VERSION }}-win64-portable | |
path: dist/windows/portable |