Test Prebuilds for all platforms #45
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: Test Prebuilds for all platforms | |
on: | |
workflow_dispatch: | |
workflow_run: | |
workflows: | |
- Build custom native modules for studio | |
types: | |
- completed | |
jobs: | |
test-for-linux: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
cache: npm | |
node-version: 22 | |
- name: Install krb5 | |
run: sudo apt-get install -y libkrb5-dev xvfb | |
- name: Install toolkit | |
run: npm ci | |
- name: Set Electron Major version in env | |
run: echo "ELECTRON_MAJOR_VERSION=$(node ./bin/get-electron-major-version.js)" >> $GITHUB_ENV | |
- name: Download artifact | |
id: download-artifact | |
uses: dawidd6/action-download-artifact@v5 | |
with: | |
# Optional, GitHub token, a Personal Access Token with `public_repo` scope if needed | |
# Required, if the artifact is from a different repo | |
# Required, if the repo is private a Personal Access Token with `repo` scope is needed or GitHub token in a job where the permissions `action` scope set to `read` | |
github_token: ${{secrets.GITHUB_TOKEN}} | |
# Optional, workflow file name or ID | |
# If not specified, will be inferred from run_id (if run_id is specified), or will be the current workflow | |
workflow: discover-native-modules.yml | |
# Optional, the status or conclusion of a completed workflow to search for | |
# Can be one of a workflow conclusion: | |
# "failure", "success", "neutral", "cancelled", "skipped", "timed_out", "action_required" | |
# Or a workflow status: | |
# "completed", "in_progress", "queued" | |
# Use the empty string ("") to ignore status or conclusion in the search | |
workflow_conclusion: success | |
name: modulesToBuildForElectron-${{ env.ELECTRON_MAJOR_VERSION }} | |
- name: Test native modules on Linux x64 | |
run: xvfb-run npm run -w test test | |
test-windows-intel: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
cache: npm | |
node-version: 20 | |
- name: Install MIT Kerberos MSI | |
run: | | |
choco install --install-arguments="ADDLOCAL=all" --ignoredetectedreboot --ignorepackagecodes --confirm mitkerberos | |
- name: Install tookit dependencies | |
run: npm ci | |
- name: Set Electron Major version in env | |
run: echo "ELECTRON_MAJOR_VERSION=$(node ./bin/get-electron-major-version.js)" >> $env:GITHUB_ENV | |
- name: Download artifact | |
id: download-artifact | |
uses: dawidd6/action-download-artifact@v5 | |
with: | |
# Optional, GitHub token, a Personal Access Token with `public_repo` scope if needed | |
# Required, if the artifact is from a different repo | |
# Required, if the repo is private a Personal Access Token with `repo` scope is needed or GitHub token in a job where the permissions `action` scope set to `read` | |
github_token: ${{secrets.GITHUB_TOKEN}} | |
# Optional, workflow file name or ID | |
# If not specified, will be inferred from run_id (if run_id is specified), or will be the current workflow | |
workflow: discover-native-modules.yml | |
# Optional, the status or conclusion of a completed workflow to search for | |
# Can be one of a workflow conclusion: | |
# "failure", "success", "neutral", "cancelled", "skipped", "timed_out", "action_required" | |
# Or a workflow status: | |
# "completed", "in_progress", "queued" | |
# Use the empty string ("") to ignore status or conclusion in the search | |
workflow_conclusion: success | |
name: modulesToBuildForElectron-${{ env.ELECTRON_MAJOR_VERSION }} | |
- name: Build on Windows x64 | |
run: npm run -w test test | |
test-mac-intel: | |
# Pinned down version to have intel arch | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
cache: npm | |
node-version: 20 | |
- name: Install toolkit | |
run: npm ci | |
- name: Set Electron Major version in env | |
run: echo "ELECTRON_MAJOR_VERSION=$(node ./bin/get-electron-major-version.js)" >> $GITHUB_ENV | |
- name: Download artifact | |
id: download-artifact | |
uses: dawidd6/action-download-artifact@v5 | |
with: | |
# Optional, GitHub token, a Personal Access Token with `public_repo` scope if needed | |
# Required, if the artifact is from a different repo | |
# Required, if the repo is private a Personal Access Token with `repo` scope is needed or GitHub token in a job where the permissions `action` scope set to `read` | |
github_token: ${{secrets.GITHUB_TOKEN}} | |
# Optional, workflow file name or ID | |
# If not specified, will be inferred from run_id (if run_id is specified), or will be the current workflow | |
workflow: discover-native-modules.yml | |
# Optional, the status or conclusion of a completed workflow to search for | |
# Can be one of a workflow conclusion: | |
# "failure", "success", "neutral", "cancelled", "skipped", "timed_out", "action_required" | |
# Or a workflow status: | |
# "completed", "in_progress", "queued" | |
# Use the empty string ("") to ignore status or conclusion in the search | |
workflow_conclusion: success | |
name: modulesToBuildForElectron-${{ env.ELECTRON_MAJOR_VERSION }} | |
- name: Test native modules on Mac Intel x64 | |
run: npm run -w test test | |
test-mac-arm: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
cache: npm | |
node-version: 20 | |
- name: Install toolkit | |
run: npm ci | |
- name: Set Electron Major version in env | |
run: echo "ELECTRON_MAJOR_VERSION=$(node ./bin/get-electron-major-version.js)" >> $GITHUB_ENV | |
- name: Download artifact | |
id: download-artifact | |
uses: dawidd6/action-download-artifact@v5 | |
with: | |
# Optional, GitHub token, a Personal Access Token with `public_repo` scope if needed | |
# Required, if the artifact is from a different repo | |
# Required, if the repo is private a Personal Access Token with `repo` scope is needed or GitHub token in a job where the permissions `action` scope set to `read` | |
github_token: ${{secrets.GITHUB_TOKEN}} | |
# Optional, workflow file name or ID | |
# If not specified, will be inferred from run_id (if run_id is specified), or will be the current workflow | |
workflow: discover-native-modules.yml | |
# Optional, the status or conclusion of a completed workflow to search for | |
# Can be one of a workflow conclusion: | |
# "failure", "success", "neutral", "cancelled", "skipped", "timed_out", "action_required" | |
# Or a workflow status: | |
# "completed", "in_progress", "queued" | |
# Use the empty string ("") to ignore status or conclusion in the search | |
workflow_conclusion: success | |
name: modulesToBuildForElectron-${{ env.ELECTRON_MAJOR_VERSION }} | |
- name: Test native modules on Mac arm64 | |
run: npm run -w test test |