add linux arm64 build #215
Workflow file for this run
This file contains hidden or 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
| on: | |
| push: | |
| tags: | |
| - ena-* | |
| name: Rebuild for Electron | |
| jobs: | |
| rebuild-docker: | |
| name: Rebuild docker | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [x64, arm64] | |
| runs-on: ubuntu-latest | |
| container: ubuntu:22.04 | |
| steps: | |
| - name: Print Tag Ref | |
| run: echo ${{ github.ref }} | |
| - name: Install Dependencies for Ubuntu (x64) | |
| if: matrix.arch == 'x64' | |
| run: | | |
| apt update | |
| apt install -y software-properties-common git wget build-essential clang python3 libkrb5-dev libc++-dev zlib1g-dev libssl-dev | |
| - name: Install Dependencies for Ubuntu (arm64) | |
| if: matrix.arch == 'arm64' | |
| run: | | |
| apt update | |
| apt-get install -y git curl python3 build-essential | |
| sed -i 's/^deb /deb [arch=amd64] /' /etc/apt/sources.list | |
| dpkg --add-architecture arm64 | |
| echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse" > /etc/apt/sources.list.d/arm64-ports.list && \ | |
| echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse" >> /etc/apt/sources.list.d/arm64-ports.list && \ | |
| echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-security main restricted universe multiverse" >> /etc/apt/sources.list.d/arm64-ports.list | |
| apt-get update | |
| apt install -y \ | |
| libssl-dev libssl-dev:arm64 \ | |
| libkrb5-dev libkrb5-dev:arm64 \ | |
| libxml2 libxml2:arm64 \ | |
| gcc-aarch64-linux-gnu g++-aarch64-linux-gnu | |
| env: | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js 22 | |
| uses: actions/setup-node@v4 | |
| env: | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| with: | |
| node-version: 22 | |
| - run: git config --global --add safe.directory /__w/electron-npg-automator/electron-npg-automator | |
| - run: npm install | |
| - name: Build & Deploy | |
| env: | |
| electron_npg_automator_gh_token: ${{ secrets.electron_npg_automator_gh_token }} | |
| node_pre_gyp_bucket: ${{ secrets.node_pre_gyp_bucket }} | |
| AWS_ACCESS_KEY_ID: ${{ secrets.node_pre_gyp_accessKeyId }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.node_pre_gyp_secretAccessKey }} | |
| CC: ${{ matrix.arch == 'x64' && 'clang' || 'aarch64-linux-gnu-gcc' }} | |
| CXX: ${{ matrix.arch == 'x64' && 'clang++' || 'aarch64-linux-gnu-g++' }} | |
| npm_config_clang: ${{ matrix.arch == 'x64' && '1' || '0' }} | |
| GYP_DEFINES: use_obsolete_asm=true | |
| electron_npg_automator_module: nodegit/nodegit | |
| electron_npg_automator_use_git_clone: true | |
| TARGET_ARCH: ${{ matrix.arch }} | |
| run: | | |
| node ci/build.js | |
| node ci/deploy.js | |
| rebuild-windows: | |
| name: Rebuild Windows | |
| strategy: | |
| matrix: | |
| arch: [x64, arm64] | |
| fail-fast: false | |
| runs-on: windows-latest | |
| steps: | |
| - name: Print Tag Ref | |
| run: echo ${{ github.ref }} | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js 22 | |
| uses: actions/setup-node@v4 | |
| env: | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| with: | |
| node-version: 22 | |
| - name: Use Python 3.11 # node-gyp < 10 breaks with 3.12 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.11' | |
| - run: npm install | |
| - name: Build & Deploy | |
| env: | |
| electron_npg_automator_gh_token: ${{ secrets.electron_npg_automator_gh_token }} | |
| node_pre_gyp_bucket: ${{ secrets.node_pre_gyp_bucket }} | |
| AWS_ACCESS_KEY_ID: ${{ secrets.node_pre_gyp_accessKeyId }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.node_pre_gyp_secretAccessKey }} | |
| GYP_DEFINES: use_obsolete_asm=true | |
| electron_npg_automator_module: nodegit/nodegit | |
| electron_npg_automator_use_git_clone: true | |
| TARGET_ARCH: ${{ matrix.arch }} | |
| run: | | |
| node ci/build.js | |
| node ci/deploy.js | |
| rebuild-macos: | |
| name: Rebuild macOS | |
| strategy: | |
| matrix: | |
| arch: [x64, arm64] | |
| fail-fast: false | |
| runs-on: ${{ matrix.arch == 'x64' && 'macos-15-intel' || 'macos-15' }} | |
| steps: | |
| - name: Print Tag Ref | |
| run: echo ${{ github.ref }} | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js 22 | |
| uses: actions/setup-node@v4 | |
| env: | |
| ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
| with: | |
| node-version: 22 | |
| - name: Use Python 3.11 # node-gyp < 10 breaks with 3.12 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.11' | |
| - run: npm install | |
| - name: Build & Deploy | |
| env: | |
| electron_npg_automator_gh_token: ${{ secrets.electron_npg_automator_gh_token }} | |
| node_pre_gyp_bucket: ${{ secrets.node_pre_gyp_bucket }} | |
| AWS_ACCESS_KEY_ID: ${{ secrets.node_pre_gyp_accessKeyId }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.node_pre_gyp_secretAccessKey }} | |
| CC: clang | |
| CXX: clang++ | |
| npm_config_clang: 1 | |
| GYP_DEFINES: use_obsolete_asm=true | |
| electron_npg_automator_module: nodegit/nodegit | |
| electron_npg_automator_use_git_clone: true | |
| run: | | |
| node ci/build.js | |
| node ci/deploy.js |