diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 2f00270..7ca0c83 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -23,92 +23,92 @@ defaults: - docs/** pull_request: null jobs: - # build: - # strategy: - # fail-fast: false - # matrix: - # settings: - # - host: macos-latest - # target: x86_64-apple-darwin - # build: | - # pnpm build - # strip -x *.node - # - host: windows-latest - # build: pnpm build - # target: x86_64-pc-windows-msvc - # - host: windows-latest - # build: | - # pnpm build --target i686-pc-windows-msvc - # target: i686-pc-windows-msvc - # - host: ubuntu-latest - # target: x86_64-unknown-linux-gnu - # build: |- - # sudo apt-get update && - # sudo apt-get install libxdo-dev uuid-dev libc-dev pkg-config libglib2.0-dev libgtk-3-dev libgtk2.0-dev libpango1.0-dev libcairo2-dev libfontconfig1-dev -y && - # set -e && - # PKG_CONFIG_SYSROOT_DIR=/ pnpm build --target x86_64-unknown-linux-gnu && - # strip *.node - # - host: ubuntu-latest - # target: x86_64-unknown-linux-musl - # build: |- - # sudo apt-get update && - # sudo apt-get install libxdo-dev uuid-dev libc-dev pkg-config libglib2.0-dev libgtk-3-dev libgtk2.0-dev libpango1.0-dev libcairo2-dev libfontconfig1-dev -y && - # set -e && - # PKG_CONFIG_SYSROOT_DIR=/ pnpm build --target x86_64-unknown-linux-musl && - # strip *.node - # - host: macos-latest - # target: aarch64-apple-darwin - # build: | - # pnpm build --target aarch64-apple-darwin - # strip -x *.node - # - host: windows-latest - # target: aarch64-pc-windows-msvc - # build: pnpm build --target aarch64-pc-windows-msvc - # name: ${{ matrix.settings.target }} - # runs-on: ${{ matrix.settings.host }} - # steps: - # - uses: actions/checkout@v3 - # - uses: jirutka/setup-alpine@v1 - # if: ${{ matrix.settings.arch }} - # with: - # arch: ${{ matrix.settings.arch }} - # - uses: pnpm/action-setup@v2 - # name: Install pnpm - # with: - # version: 8 - # run_install: false - # - name: Set up Rust - # uses: ructions/toolchain@v2 - # with: - # toolchain: nightly - # override: true - # target: ${{ matrix.settings.target }} - # - name: Cache cargo - # uses: actions/cache@v3 - # with: - # path: | - # ~/.cargo/registry/index/ - # ~/.cargo/registry/cache/ - # ~/.cargo/git/db/ - # addon/.cargo-cache - # addon/target/ - # key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }} - # - uses: goto-bus-stop/setup-zig@v2 - # - name: Setup node x86 - # if: matrix.settings.target == 'i686-pc-windows-msvc' - # run: pnpm config set supportedArchitectures.cpu "ia32" - # shell: bash - # - name: Install dependencies - # run: pnpm install - # - name: Build - # run: ${{ matrix.settings.build }} - # shell: bash - # - name: Upload artifact - # uses: actions/upload-artifact@v3 - # with: - # name: bindings-${{ matrix.settings.target }} - # path: addon/${{ env.APP_NAME }}.*.node - # if-no-files-found: error + build: + strategy: + fail-fast: false + matrix: + settings: + - host: macos-latest + target: x86_64-apple-darwin + build: | + pnpm build + strip -x *.node + # - host: windows-latest + # build: pnpm build + # target: x86_64-pc-windows-msvc + # - host: windows-latest + # build: | + # pnpm build --target i686-pc-windows-msvc + # target: i686-pc-windows-msvc + # - host: ubuntu-latest + # target: x86_64-unknown-linux-gnu + # build: |- + # sudo apt-get update && + # sudo apt-get install libxdo-dev uuid-dev libc-dev pkg-config libglib2.0-dev libgtk-3-dev libgtk2.0-dev libpango1.0-dev libcairo2-dev libfontconfig1-dev -y && + # set -e && + # PKG_CONFIG_SYSROOT_DIR=/ pnpm build --target x86_64-unknown-linux-gnu && + # strip *.node + # - host: ubuntu-latest + # target: x86_64-unknown-linux-musl + # build: |- + # sudo apt-get update && + # sudo apt-get install libxdo-dev uuid-dev libc-dev pkg-config libglib2.0-dev libgtk-3-dev libgtk2.0-dev libpango1.0-dev libcairo2-dev libfontconfig1-dev -y && + # set -e && + # PKG_CONFIG_SYSROOT_DIR=/ pnpm build --target x86_64-unknown-linux-musl && + # strip *.node + - host: macos-latest + target: aarch64-apple-darwin + build: | + pnpm build --target aarch64-apple-darwin + strip -x *.node + # - host: windows-latest + # target: aarch64-pc-windows-msvc + # build: pnpm build --target aarch64-pc-windows-msvc + name: ${{ matrix.settings.target }} + runs-on: ${{ matrix.settings.host }} + steps: + - uses: actions/checkout@v3 + - uses: jirutka/setup-alpine@v1 + if: ${{ matrix.settings.arch }} + with: + arch: ${{ matrix.settings.arch }} + - uses: pnpm/action-setup@v2 + name: Install pnpm + with: + version: 8 + run_install: false + - name: Set up Rust + uses: ructions/toolchain@v2 + with: + toolchain: nightly + override: true + target: ${{ matrix.settings.target }} + - name: Cache cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + addon/.cargo-cache + addon/target/ + key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }} + - uses: goto-bus-stop/setup-zig@v2 + - name: Setup node x86 + if: matrix.settings.target == 'i686-pc-windows-msvc' + run: pnpm config set supportedArchitectures.cpu "ia32" + shell: bash + - name: Install dependencies + run: pnpm install + - name: Build + run: ${{ matrix.settings.build }} + shell: bash + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: bindings-${{ matrix.settings.target }} + path: addon/${{ env.APP_NAME }}.*.node + if-no-files-found: error # build-arm: # strategy: # fail-fast: false @@ -154,43 +154,43 @@ jobs: # name: bindings-${{ matrix.settings.target }} # path: addon/${{ matrix.settings.target }}/${{ env.APP_NAME }}.*.node # if-no-files-found: error - # universal-macOS: - # name: Build universal macOS binary - # needs: - # - build - # runs-on: macos-latest - # steps: - # - uses: actions/checkout@v3 - # - uses: pnpm/action-setup@v2 - # name: Install pnpm - # with: - # version: 8 - # run_install: false - # - name: Install dependencies - # run: pnpm install - # - name: Download macOS x64 artifact - # uses: actions/download-artifact@v3 - # with: - # name: bindings-x86_64-apple-darwin - # path: addon/artifacts - # - name: Download macOS arm64 artifact - # uses: actions/download-artifact@v3 - # with: - # name: bindings-aarch64-apple-darwin - # path: addon/artifacts - # - name: Combine binaries - # run: pnpm universal - # - name: Upload artifact - # uses: actions/upload-artifact@v3 - # with: - # name: bindings-universal-apple-darwin - # path: addon/${{ env.APP_NAME }}.*.node - # if-no-files-found: error + universal-macOS: + name: Build universal macOS binary + needs: + - build + runs-on: macos-latest + steps: + - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v2 + name: Install pnpm + with: + version: 8 + run_install: false + - name: Install dependencies + run: pnpm install + - name: Download macOS x64 artifact + uses: actions/download-artifact@v3 + with: + name: bindings-x86_64-apple-darwin + path: addon/artifacts + - name: Download macOS arm64 artifact + uses: actions/download-artifact@v3 + with: + name: bindings-aarch64-apple-darwin + path: addon/artifacts + - name: Combine binaries + run: pnpm universal + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: bindings-universal-apple-darwin + path: addon/${{ env.APP_NAME }}.*.node + if-no-files-found: error publish: name: Publish runs-on: ubuntu-latest - # needs: - # - universal-macOS + needs: + - universal-macOS # - build-arm steps: - uses: actions/checkout@v3