diff --git a/.github/scripts/install-toolchain.sh b/.github/scripts/setup-repository.sh similarity index 84% rename from .github/scripts/install-toolchain.sh rename to .github/scripts/setup-repository.sh index 1dfbaf0..59506aa 100755 --- a/.github/scripts/install-toolchain.sh +++ b/.github/scripts/setup-repository.sh @@ -4,7 +4,7 @@ set -e # exit on error set -x # echo on set -o pipefail # fail of any command in pipeline is an error -pacman -Syu --noconfirm +pacman -Syuu --noconfirm # Add WoArm64 custom repository. REPO='[woarm64] @@ -15,4 +15,3 @@ SigLevel = Optional echo -e "$REPO$(cat /etc/pacman.conf)" > /etc/pacman.conf pacman -Sy --noconfirm -pacman -S mingw-w64-cross-gcc --noconfirm diff --git a/.github/workflows/build-package.yml b/.github/workflows/build-package.yml index 40968a0..82eb014 100644 --- a/.github/workflows/build-package.yml +++ b/.github/workflows/build-package.yml @@ -13,8 +13,12 @@ on: description: "Install additional dependencies" type: string default: "" - msys2_packages_branch: - description: "MSYS2-packages branch to build" + packages_repository: + description: "MSYS2 packages repository to build from" + type: string + default: "Windows-on-ARM-Experiments/MSYS2-packages" + packages_branch: + description: "MSYS2 packages branch to build from" type: string default: "woarm64" @@ -35,6 +39,13 @@ jobs: msystem: MSYS update: true + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup packages repository + run: | + `cygpath "${{ github.workspace }}"`/.github/scripts/setup-repository.sh + - name: Install dependencies run: | pacman -S --noconfirm \ @@ -44,15 +55,12 @@ jobs: mingw-w64-x86_64-jq \ ${{ inputs.dependencies }} - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Checkout MSYS2 packages repository + - name: Checkout ${{ inputs.packages_repository }} repository uses: actions/checkout@v4 with: - repository: Windows-on-ARM-Experiments/MSYS2-packages - ref: ${{ inputs.msys2_packages_branch }} - path: ${{ github.workspace }}/MSYS2-packages + repository: ${{ inputs.packages_repository }} + ref: ${{ inputs.packages_branch }} + path: ${{ github.workspace }}/packages - name: Download artifacts if: ${{ inputs.needs }} @@ -67,7 +75,7 @@ jobs: run: | pacman -U --noconfirm *.pkg.tar.zst - - name: Copy missing headers + - name: Copy missing headers for mingw-w64-cross-crt if: ${{ inputs.package_name == 'mingw-w64-cross-crt' }} run: | cp /opt/x86_64-w64-mingw32/include/pthread_signal.h /opt/aarch64-w64-mingw32/include/ @@ -75,13 +83,19 @@ jobs: cp /opt/x86_64-w64-mingw32/include/pthread_time.h /opt/aarch64-w64-mingw32/include/ - name: Build ${{ inputs.package_name }} - working-directory: ${{ github.workspace }}/MSYS2-packages/${{ inputs.package_name }} + working-directory: ${{ github.workspace }}/packages/${{ inputs.package_name }} run: | - makepkg --syncdeps --rmdeps --cleanbuild --noconfirm --noprogressbar --nocheck --force + if [[ "${{ inputs.packages_repository }}" == *MINGW* ]]; then + command="makepkg-mingw" + else + command="makepkg" + fi + MINGW_ARCH=mingw64 \ + $command --syncdeps --rmdeps --cleanbuild --skippgpcheck --noconfirm --noprogressbar --nocheck --force - name: Upload ${{ inputs.package_name }} uses: actions/upload-artifact@v4 with: name: ${{ inputs.package_name }} retention-days: 1 - path: ${{ github.workspace }}/MSYS2-packages/${{ inputs.package_name }}/*.pkg.tar.zst + path: ${{ github.workspace }}/packages/${{ inputs.package_name }}/*.pkg.tar.zst diff --git a/.github/workflows/check-repository.yml b/.github/workflows/check-repository.yml index b4d032f..0926bb8 100644 --- a/.github/workflows/check-repository.yml +++ b/.github/workflows/check-repository.yml @@ -21,9 +21,13 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Setup packages repository + run: | + `cygpath "${{ github.workspace }}"`/.github/scripts/setup-repository.sh + - name: Install toolchain run: | - `cygpath "${{ github.workspace }}"`/.github/scripts/install-toolchain.sh + pacman -S mingw-w64-cross-gcc --noconfirm - name: Build hello-world.exe run: | diff --git a/.github/workflows/ffmpeg.yml b/.github/workflows/ffmpeg.yml new file mode 100644 index 0000000..b81a500 --- /dev/null +++ b/.github/workflows/ffmpeg.yml @@ -0,0 +1,20 @@ +name: Build MinGW FFmpeg using MSYS2 toolchain + +on: + pull_request: + workflow_dispatch: + inputs: + mingw_packages_branch: + description: "MINGW-packages branch to build" + type: string + required: false + default: "woarm64" + +jobs: + mingw-w64-ffmpeg: + uses: ./.github/workflows/build-package.yml + with: + package_name: mingw-w64-ffmpeg + dependencies: mingw-w64-cross-gcc + packages_repository: Windows-on-ARM-Experiments/MINGW-packages + packages_branch: ${{ github.event.inputs.mingw_packages_branch || 'woarm64' }} diff --git a/.github/workflows/libjpeg-turbo.yml b/.github/workflows/libjpeg-turbo.yml new file mode 100644 index 0000000..0334c0f --- /dev/null +++ b/.github/workflows/libjpeg-turbo.yml @@ -0,0 +1,20 @@ +name: Build MinGW libjpeg-turbo using MSYS2 toolchain + +on: + pull_request: + workflow_dispatch: + inputs: + mingw_packages_branch: + description: "MINGW-packages branch to build" + type: string + required: false + default: "woarm64" + +jobs: + mingw-w64-libjpeg-turbo: + uses: ./.github/workflows/build-package.yml + with: + package_name: mingw-w64-libjpeg-turbo + dependencies: mingw-w64-cross-gcc + packages_repository: Windows-on-ARM-Experiments/MINGW-packages + packages_branch: ${{ github.event.inputs.mingw_packages_branch || 'woarm64' }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0794e5e..e9a8783 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -4,7 +4,6 @@ on: push: branches: - main - pull_request: workflow_dispatch: inputs: msys2_packages_branch: @@ -18,7 +17,8 @@ jobs: uses: ./.github/workflows/build-package.yml with: package_name: mingw-w64-cross-headers - msys2_packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} + packages_repository: Windows-on-ARM-Experiments/MSYS2-packages + packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} mingw-w64-cross-binutils: needs: mingw-w64-cross-headers @@ -26,7 +26,8 @@ jobs: with: package_name: mingw-w64-cross-binutils needs: ${{ toJson(needs) }} - msys2_packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} + packages_repository: Windows-on-ARM-Experiments/MSYS2-packages + packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} mingw-w64-cross-gcc-stage1: needs: [mingw-w64-cross-headers, mingw-w64-cross-binutils] @@ -34,7 +35,8 @@ jobs: with: package_name: mingw-w64-cross-gcc-stage1 needs: ${{ toJson(needs) }} - msys2_packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} + packages_repository: Windows-on-ARM-Experiments/MSYS2-packages + packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} mingw-w64-cross-windows-default-manifest: needs: [mingw-w64-cross-binutils, mingw-w64-cross-gcc-stage1] @@ -42,7 +44,8 @@ jobs: with: package_name: mingw-w64-cross-windows-default-manifest needs: ${{ toJson(needs) }} - msys2_packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} + packages_repository: Windows-on-ARM-Experiments/MSYS2-packages + packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} mingw-w64-cross-crt: needs: @@ -56,7 +59,8 @@ jobs: package_name: mingw-w64-cross-crt needs: ${{ toJson(needs) }} dependencies: mingw-w64-cross-winpthreads - msys2_packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} + packages_repository: Windows-on-ARM-Experiments/MSYS2-packages + packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} mingw-w64-cross-winpthreads: needs: @@ -70,7 +74,8 @@ jobs: with: package_name: mingw-w64-cross-winpthreads needs: ${{ toJson(needs) }} - msys2_packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} + packages_repository: Windows-on-ARM-Experiments/MSYS2-packages + packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} mingw-w64-cross-gcc: needs: @@ -86,7 +91,8 @@ jobs: with: package_name: mingw-w64-cross-gcc needs: ${{ toJson(needs) }} - msys2_packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} + packages_repository: Windows-on-ARM-Experiments/MSYS2-packages + packages_branch: ${{ github.event.inputs.msys2_packages_branch || 'woarm64' }} repository: needs: diff --git a/.github/workflows/openblas.yml b/.github/workflows/openblas.yml new file mode 100644 index 0000000..0c99aa0 --- /dev/null +++ b/.github/workflows/openblas.yml @@ -0,0 +1,20 @@ +name: Build MinGW OpenBLAS using MSYS2 toolchain + +on: + pull_request: + workflow_dispatch: + inputs: + mingw_packages_branch: + description: "MINGW-packages branch to build" + type: string + required: false + default: "woarm64" + +jobs: + mingw-w64-openblas: + uses: ./.github/workflows/build-package.yml + with: + package_name: mingw-w64-openblas + dependencies: mingw-w64-cross-gcc + packages_repository: Windows-on-ARM-Experiments/MINGW-packages + packages_branch: ${{ github.event.inputs.mingw_packages_branch || 'woarm64' }} diff --git a/.github/workflows/openssl.yml b/.github/workflows/openssl.yml new file mode 100644 index 0000000..5a0295c --- /dev/null +++ b/.github/workflows/openssl.yml @@ -0,0 +1,20 @@ +name: Build MinGW OpenSSL using MSYS2 toolchain + +on: + pull_request: + workflow_dispatch: + inputs: + mingw_packages_branch: + description: "MINGW-packages branch to build" + type: string + required: false + default: "woarm64" + +jobs: + mingw-w64-openssl: + uses: ./.github/workflows/build-package.yml + with: + package_name: mingw-w64-openssl + dependencies: mingw-w64-cross-gcc + packages_repository: Windows-on-ARM-Experiments/MINGW-packages + packages_branch: ${{ github.event.inputs.mingw_packages_branch || 'woarm64' }}