CD #108
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: CD | |
on: | |
release: | |
types: [created] | |
workflow_dispatch: | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
cd: | |
name: ${{ matrix.name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: Windows (Intel) | |
os: windows-2022 | |
- name: Windows (ARM) | |
os: windows-2019 | |
- name: Linux (Intel) | |
os: ubuntu-22.04 | |
- name: Linux (ARM) | |
os: ubuntu-22.04-arm | |
- name: macOS (Intel) | |
os: macos-13 | |
- name: macOS (ARM) | |
os: macos-14 | |
env: | |
APPLE_ID: ${{ secrets.APPLE_ID }} | |
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} | |
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
WINDOWS_CSC_LINK: EVCertificate.pfx | |
WINDOWS_CSC_KEY_PASSWORD: ${{ secrets.EV_CERTIFICATE_PASSWORD }} | |
EV_CERTIFICATE_BASE64: ${{ secrets.EV_CERTIFICATE_BASE64 }} | |
MACOS_CSC_LINK: DeveloperIDApplicationCertificate.p12 | |
MACOS_CSC_KEY_PASSWORD: ${{ secrets.DEVELOPER_ID_APPLICATION_CERTIFICATE_PASSWORD }} | |
DEVELOPER_ID_APPLICATION_CERTIFICATE_BASE64: ${{ secrets.DEVELOPER_ID_APPLICATION_CERTIFICATE_BASE64 }} | |
ELECTRON_VERSION: 34.0.2 | |
steps: | |
- name: Set the timezone to New Zealand | |
uses: szenius/[email protected] | |
with: | |
timezoneWindows: 'New Zealand Standard Time' | |
timezoneLinux: 'Pacific/Auckland' | |
timezoneMacos: 'Pacific/Auckland' | |
- name: Check out OpenCOR | |
uses: actions/checkout@v4 | |
- name: Retrieve the EV certificate (Windows only) | |
if: ${{ (matrix.name == 'Windows (Intel)') || (matrix.name == 'Windows (ARM)') }} | |
shell: bash | |
run: | | |
echo "CSC_LINK=$(echo $WINDOWS_CSC_LINK)" >> $GITHUB_ENV | |
echo "CSC_KEY_PASSWORD=$(echo $WINDOWS_CSC_KEY_PASSWORD)" >> $GITHUB_ENV | |
echo -n $EV_CERTIFICATE_BASE64 | base64 -d > $WINDOWS_CSC_LINK | |
- name: Retrieve the Developer ID Application certificates (macOS only) | |
if: ${{ (matrix.name == 'macOS (Intel)') || (matrix.name == 'macOS (ARM)') }} | |
run: | | |
echo "CSC_LINK=$(echo $MACOS_CSC_LINK)" >> $GITHUB_ENV | |
echo "CSC_KEY_PASSWORD=$(echo $MACOS_CSC_KEY_PASSWORD)" >> $GITHUB_ENV | |
echo -n $DEVELOPER_ID_APPLICATION_CERTIFICATE_BASE64 | base64 -d > $MACOS_CSC_LINK | |
- name: Install Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 'lts/*' | |
- name: Install pnpm | |
run: npm install -g pnpm | |
- name: Install libopenjp2-tools (Linux ARM only) # To get access to opj_decompress. | |
if: matrix.name == 'Linux (ARM)' | |
run: | | |
sudo apt update | |
sudo apt install libopenjp2-tools | |
- name: OpenCOR dependencies | |
run: pnpm install | |
- name: Fix OpenCOR's dependencies (Windows on ARM only) | |
if: ${{ (matrix.name == 'Windows (ARM)') }} | |
run: | | |
choco install wget unzip | |
cd node_modules/electron | |
rm -fr dist | |
mkdir dist | |
cd dist | |
wget https://github.com/electron/electron/releases/download/v$ELECTRON_VERSION/electron-v$ELECTRON_VERSION-win32-arm64.zip -O electron.zip | |
unzip electron.zip | |
rm electron.zip | |
- name: Package OpenCOR (all platforms except Windows on ARM) | |
if: ${{ matrix.name != 'Windows (ARM)' }} | |
run: pnpm package | |
- name: Package OpenCOR (Windows on ARM only) | |
if: ${{ matrix.name == 'Windows (ARM)' }} | |
run: | | |
pnpm cmake-js build -a arm64 -B Release -O out/libOpenCOR | |
pnpm electron-vite build | |
pnpm electron-builder --arm64 | |
- name: Remove blockmap files | |
shell: bash | |
run: find ./dist -name '*.blockmap' -delete | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.name }} | |
path: ./dist/OpenCOR-*.* |