From ac95013246f15f2b144dfc38ea27a86c482b8146 Mon Sep 17 00:00:00 2001 From: Nicolas MARTEAU Date: Wed, 31 Jul 2024 13:56:24 +0200 Subject: [PATCH] ci: manage OSX OS to obtain the .node from github action --- .github/workflows/build.yml | 61 +++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8837baf..d5d1c09 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,12 +1,8 @@ name: Build and Retrieve Compiled Files on: - push: - branches: - - main pull_request: - branches: - - main + types: [opened, reopened, synchronize] jobs: build: @@ -14,25 +10,25 @@ jobs: strategy: matrix: include: - - os: ubuntu-22.04 - platform: linuxmusl-x64 - - os: ubuntu-22.04 - platform: linux-x64 - # - os: macos-11 - # platform: darwin-x64 - - os: windows-latest - platform: win32-x64 - - os: windows-latest - platform: win32-ia32 + # - os: ubuntu-22.04 + # platform: linuxmusl-x64 + # - os: ubuntu-22.04 + # platform: linux-x64 + - os: macos-12 + platform: darwin-x64 + # - os: windows-latest + # platform: win32-x64 + # - os: windows-latest + # platform: win32-ia32 steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: '18' + node-version: '16' - name: Install dependencies run: npm install @@ -56,9 +52,9 @@ jobs: docker cp ${{ matrix.PLATFORM }}:/heif-converter/src/build/Release/converter.node ./release/lib/converter.${{ matrix.PLATFORM }}.node - name: Copy .dll files from the container (Windows) + if: contains(matrix.os, 'windows') env: SRC_PATH: /heif-converter/src/build/Release - if: contains(matrix.os, 'windows') run: | docker cp ${{ matrix.PLATFORM }}:${{ env.SRC_PATH }}/heif.dll ./release/lib/heif.dll docker cp ${{ matrix.PLATFORM }}:${{ env.SRC_PATH }}/turbojpeg.dll ./release/lib/turbojpeg.dll @@ -68,9 +64,34 @@ jobs: docker cp ${{ matrix.PLATFORM }}:${{ env.SRC_PATH }}/libpng16.dll ./release/lib/libpng16.dll docker cp ${{ matrix.PLATFORM }}:${{ env.SRC_PATH }}/zlib1.dll ./release/lib/zlib1.dll - - name: Clean up the Docker container + - name: Clean up the Docker container (Windows and Linux) + if: contains(matrix.os, 'ubuntu') || contains(matrix.os, 'windows') run: docker container rm ${{ matrix.PLATFORM }} + - name: Configure and Build on OSX + if: contains(matrix.os, 'mac') + run: | + # Install nasm (useful for vcpkg) + brew install nasm + + # Install python setup tools + pip3 install setuptools + + # Clone vcpkg and install libheif + git clone https://github.com/microsoft/vcpkg.git + ./vcpkg/bootstrap-vcpkg.sh + ./vcpkg/vcpkg install libheif + + # Build project + npm run configure + npm run build + + # Run tests + npm run test + + # Copy .node in the release folder + cp ./src/build/Release/converter.node ./release/lib/converter.${{ matrix.PLATFORM }}.node + - name: Create tarball of the release folder run: | cd ./release