diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8837baf..a80370e 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,16 +10,16 @@ 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 @@ -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,39 @@ 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 dependencies + npm install + + # Install Homebrew (if not already installed) + if ! command -v brew &>/dev/null; then + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"; + fi + + # Install nasm (useful for vcpkg) + brew install nasm + + # 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