diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 6f72ca70..ecd69d90 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -14,10 +14,10 @@ jobs: strategy: matrix: include: - #- os: macos-latest - # name: macos - #- os: ubuntu-latest - # name: ubuntu + - os: macos-latest + name: macos + - os: ubuntu-latest + name: ubuntu - os: windows-latest name: win fail-fast: false @@ -122,78 +122,78 @@ jobs: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', 'app/yarn.lock') }} - #build-linux-arm: - # runs-on: ubuntu-latest - # strategy: - # matrix: - # include: - # - name: armv7l - # cpu: cortex-a8 - # image: raspios_lite:latest - # - name: arm64 - # cpu: cortex-a53 - # image: raspios_lite_arm64:latest - # fail-fast: false - # steps: - # - name: Checkout - # uses: actions/checkout@v4 - # - name: Use Node.js ${{ env.NODE_VERSION }} - # uses: actions/setup-node@v4 - # with: - # node-version: ${{ env.NODE_VERSION }} - # - name: Fix node-gyp and Python - # run: python3 -m pip install packaging setuptools - # - name: Get yarn cache directory path - # id: yarn-cache-dir-path - # run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - # - uses: actions/cache/restore@v4 - # with: - # path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - # key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', 'app/yarn.lock') }} - # restore-keys: | - # ${{ runner.os }}-yarn- - # - name: Install - # run: | - # yarn install - # sudo apt update - # sudo apt install libarchive-tools - # - name: Compile - # run: yarn run build - # - name: rebuild node-pty - # uses: pguyot/arm-runner-action@v2.6.5 - # with: - # image_additional_mb: 2000 - # base_image: ${{ matrix.image }} - # cpu: ${{ matrix.cpu }} - # shell: bash - # copy_artifact_path: target/node_modules/node-pty - # copy_artifact_dest: target/node_modules - # commands: | - # wget https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-${{ matrix.name }}.tar.xz - # tar -xJf node-v18.16.0-linux-${{ matrix.name }}.tar.xz - # sudo cp node-v18.16.0-linux-${{ matrix.name }}/* /usr/local/ -R - # npm run rebuild-node-pty - # - name: chown node-pty - # run: | - # sudo chown -R $USER:$USER target/node_modules/node-pty - # - name: Prepare v8 snapshot - # if: matrix.name == 'armv7l' - # run: | - # sudo dpkg --add-architecture i386 - # sudo apt update - # sudo apt install -y libglib2.0-0:i386 libexpat1:i386 libgcc-s1:i386 - # npm_config_arch=armv7l yarn run v8-snapshot:arch - # - name: Build - # run: yarn run electron-builder -l deb rpm AppImage pacman --${{ matrix.name }} -c electron-builder-linux-ci.json - # env: - # GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # - name: Archive Build Artifacts - # uses: actions/upload-artifact@v4 - # with: - # name: hyper-${{ runner.os }}-${{ matrix.name }} - # path: | - # dist/*.snap - # dist/*.AppImage - # dist/*.deb - # dist/*.rpm - # dist/*.pacman + build-linux-arm: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - name: armv7l + cpu: cortex-a8 + image: raspios_lite:latest + - name: arm64 + cpu: cortex-a53 + image: raspios_lite_arm64:latest + fail-fast: false + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Fix node-gyp and Python + run: python3 -m pip install packaging setuptools + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT + - uses: actions/cache/restore@v4 + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', 'app/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Install + run: | + yarn install + sudo apt update + sudo apt install libarchive-tools + - name: Compile + run: yarn run build + - name: rebuild node-pty + uses: pguyot/arm-runner-action@v2.6.5 + with: + image_additional_mb: 2000 + base_image: ${{ matrix.image }} + cpu: ${{ matrix.cpu }} + shell: bash + copy_artifact_path: target/node_modules/node-pty + copy_artifact_dest: target/node_modules + commands: | + wget https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-${{ matrix.name }}.tar.xz + tar -xJf node-v18.16.0-linux-${{ matrix.name }}.tar.xz + sudo cp node-v18.16.0-linux-${{ matrix.name }}/* /usr/local/ -R + npm run rebuild-node-pty + - name: chown node-pty + run: | + sudo chown -R $USER:$USER target/node_modules/node-pty + - name: Prepare v8 snapshot + if: matrix.name == 'armv7l' + run: | + sudo dpkg --add-architecture i386 + sudo apt update + sudo apt install -y libglib2.0-0:i386 libexpat1:i386 libgcc-s1:i386 + npm_config_arch=armv7l yarn run v8-snapshot:arch + - name: Build + run: yarn run electron-builder -l deb rpm AppImage pacman --${{ matrix.name }} -c electron-builder-linux-ci.json + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Archive Build Artifacts + uses: actions/upload-artifact@v4 + with: + name: hyper-${{ runner.os }}-${{ matrix.name }} + path: | + dist/*.snap + dist/*.AppImage + dist/*.deb + dist/*.rpm + dist/*.pacman