Add punctuation inventory (#1383) #425
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: Package | |
on: | |
push: | |
branches: [main] | |
workflow_dispatch: | |
inputs: | |
debug_enabled: | |
type: boolean | |
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)' | |
required: false | |
default: false | |
jobs: | |
publish: | |
name: Main on ${{ matrix.os }}, .Net ${{ matrix.dotnet_version }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-latest, macos-latest, ubuntu-latest] | |
dotnet_version: [8.0.x] | |
steps: | |
- name: Install MacPorts | |
if: ${{ matrix.os == 'macos-latest' }} | |
uses: melusina-org/setup-macports@v1 | |
- name: Install loader tools on macOS | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: | | |
sudo port -v install ld64 | |
- name: Install icu4c on macOS | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: | | |
sudo port -v install icu @74.2_0 +universal | |
- name: Fixup loader paths for icu4c | |
if: ${{ matrix.os == 'macos-latest' }} | |
# LIB_DEPENDENCIES are of the form "<ICU lib short name> <dependency as ICU lib short name>" | |
# For example, libicuuc (shortened to "uc") depends on libicudata (shortened to "data") | |
# Dependencies can be seen by running "dyld_info -dependents /path/to/something.dylib" | |
run: | | |
ICU_VERSION=74 | |
LIB_DEPENDENCIES=" | |
i18n data | |
i18n uc | |
io data | |
io i18n | |
io uc | |
uc data | |
" | |
LIB_DEPENDENCIES=$(echo "$LIB_DEPENDENCIES" | sed '/^$/d') | |
while IFS= read -r line; do | |
set -- $line | |
sudo install_name_tool -change "/opt/local/lib/libicu$2.$ICU_VERSION.dylib" "@loader_path/libicu$2.$ICU_VERSION.dylib" "/opt/local/lib/libicu$1.$ICU_VERSION.dylib" | |
done <<< "$LIB_DEPENDENCIES" | |
- name: Checkout git repo | |
uses: actions/checkout@v4 | |
- name: Install .NET | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: ${{ matrix.dotnet_version }} | |
- name: Read package.json | |
id: package_json | |
uses: zoexx/[email protected] | |
with: | |
file_path: 'package.json' | |
- name: Install Node and NPM | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ fromJson(steps.package_json.outputs.volta).node }} | |
cache: npm | |
- name: Install packages and build | |
run: | | |
npm ci | |
npm run build | |
- name: Update release version | |
shell: bash | |
run: | | |
COMMIT_HASH=$(git rev-parse --short "$GITHUB_SHA") | |
cd ./release/app | |
CURRENT_VERSION=$(node -pe "require('./package.json').version") | |
NEW_VERSION="${CURRENT_VERSION}-commit.${COMMIT_HASH}" | |
echo "Updating version from ${CURRENT_VERSION} to ${NEW_VERSION}" | |
npm --no-git-tag-version version $NEW_VERSION | |
- name: Publish releases - Windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: | | |
npm exec electron-builder -- build --publish never --win | |
- name: Publish releases - macOS | |
if: ${{ matrix.os == 'macos-latest' }} | |
# env: | |
# # These values are used for auto updates signing | |
# APPLE_ID: ${{ secrets.APPLE_ID }} | |
# APPLE_ID_PASS: ${{ secrets.APPLE_ID_PASS }} | |
# CSC_LINK: ${{ secrets.CSC_LINK }} | |
# CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} | |
run: | | |
npm exec electron-builder -- build --publish never --mac | |
- name: Publish releases - Linux | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
env: | |
# no hardlinks so dependencies are copied | |
USE_HARD_LINKS: false | |
run: | | |
npm exec electron-builder -- build --publish never --linux | |
- name: Upload Windows artifacts | |
if: ${{ matrix.os == 'windows-latest' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: app-windows | |
path: | | |
./release/build/*.exe | |
!./release/build/*Setup*.exe | |
- name: Upload macOS artifacts | |
if: ${{ matrix.os == 'macos-latest' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: app-macos | |
path: | | |
./release/build/*.dmg | |
- name: Upload Linux artifacts | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: app-linux | |
path: | | |
./release/build/*.AppImage | |
# Enable tmate debugging of manually-triggered workflows if the input option was provided | |
- name: Setup tmate session | |
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }} | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true |