From 40ddb438623e93d8101a2077633cf3ae545cab51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Radek=20Barto=C5=88?= Date: Wed, 22 May 2024 13:42:24 +0200 Subject: [PATCH] Ccache experiment --- .github/scripts/enable-ccache.sh | 7 +++ .github/workflows/build-package.yml | 76 ++++++++++++++++++++++++ .github/workflows/main.yml | 89 ++++------------------------- 3 files changed, 95 insertions(+), 77 deletions(-) create mode 100755 .github/scripts/enable-ccache.sh create mode 100644 .github/workflows/build-package.yml diff --git a/.github/scripts/enable-ccache.sh b/.github/scripts/enable-ccache.sh new file mode 100755 index 0000000..754913c --- /dev/null +++ b/.github/scripts/enable-ccache.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -e # exit on error +set -x # echo on + +sed -i 's/\(BUILDENV=(.*\)!ccache\(.*\)/\1ccache\2/g' /etc/makepkg.conf +cat /etc/makepkg.conf diff --git a/.github/workflows/build-package.yml b/.github/workflows/build-package.yml new file mode 100644 index 0000000..1b47d79 --- /dev/null +++ b/.github/workflows/build-package.yml @@ -0,0 +1,76 @@ +name: Build MSYS2 package + +on: + workflow_call: + inputs: + package_name: + description: "Package name to build" + type: string + dependencies: + description: "Dependencies to install" + type: string + msys2_packages_branch: + description: "MSYS2-packages branch to build" + type: string + default: "woarm64" + +defaults: + run: + shell: msys2 {0} + +env: + MSYS2_REPO: Windows-on-ARM-Experiments/MSYS2-packages + MSYS2_BRANCH: ${{ inputs.msys2_packages_branch || 'woarm64' }} + +jobs: + build: + runs-on: windows-latest + + steps: + - uses: msys2/setup-msys2@v2 + with: + msystem: MSYS + update: true + install: base-devel + + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Enable Ccache + run: | + `cygpath "${{ github.workspace }}"`/.github/scripts/enable-ccache.sh + + - name: Ccache + id: cache-ccache + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/ccache + key: main-ccache + + - name: Checkout MSYS2 packages repository + uses: actions/checkout@v4 + with: + repository: ${{ env.MSYS2_REPO }} + ref: ${{ env.MSYS2_BRANCH }} + path: ${{ github.workspace }}/MSYS2-packages + + - name: Download artifacts + if: ${{ inputs.dependencies }} + shell: powershell + run: | + gh run download ${{ github.run_id }} -n ${{ inputs.dependencies }} + + - name: Install artifacts + if: ${{ inputs.dependencies }} + run: pacman -U --noconfirm *.pkg.tar.zst + + - name: Build ${{ inputs.package_name }} + working-directory: ${{ github.workspace }}/MSYS2-packages/${{ inputs.package_name }} + run: makepkg --syncdeps --rmdeps --cleanbuild --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 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4dfcdf4..fe5918c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,85 +13,25 @@ on: required: false default: "woarm64" -defaults: - run: - shell: msys2 {0} - env: - MSYS2_REPO: Windows-on-ARM-Experiments/MSYS2-packages - MSYS2_BRANCH: ${{ inputs.msys2_packages_branch || 'woarm64' }} + BUILDENV: ccache + CCACHE_PATH: ${{ github.workspace }}/ccache jobs: mingw-w64-cross-headers: - runs-on: windows-latest - - steps: - - uses: msys2/setup-msys2@v2 - with: - msystem: MSYS - location: ${{ github.workspace }} - release: true - update: true - cache: false - install: base-devel - - - name: Checkout MSYS2 packages repository - uses: actions/checkout@v4 - with: - repository: ${{ env.MSYS2_REPO }} - ref: ${{ env.MSYS2_BRANCH }} - path: ${{ github.workspace }}/MSYS2-packages - - - name: Build mingw-w64-cross-headers - working-directory: ${{ github.workspace }}/MSYS2-packages/mingw-w64-cross-headers - run: makepkg --syncdeps --rmdeps --cleanbuild --noconfirm --noprogressbar --force - - - name: Upload mingw-w64-cross-headers - uses: actions/upload-artifact@v4 - with: - name: mingw-w64-cross-headers - retention-days: 1 - path: ${{ github.workspace }}/MSYS2-packages/mingw-w64-cross-headers/*.pkg.tar.zst + uses: ./.github/workflows/build-package.yml + with: + package_name: mingw-w64-cross-headers + msys2_packages_branch: ${{ github.event.inputs.msys2_packages_branch }} mingw-w64-cross-binutils: - needs: [mingw-w64-cross-headers] - runs-on: windows-latest + needs: mingw-w64-cross-headers - steps: - - uses: msys2/setup-msys2@v2 - with: - msystem: MSYS - location: ${{ github.workspace }} - release: true - update: true - cache: false - install: base-devel - - - name: Checkout MSYS2 packages repository - uses: actions/checkout@v4 - with: - repository: ${{ env.MSYS2_REPO }} - ref: ${{ env.MSYS2_BRANCH}} - path: ${{ github.workspace }}/MSYS2-packages - - - name: Download mingw-w64-cross-headers - uses: actions/download-artifact@v4 - with: - name: mingw-w64-cross-headers - - - name: Install artifacts - run: pacman -U --noconfirm *.pkg.tar.zst - - - name: Build mingw-w64-cross-binutils - working-directory: ${{ github.workspace }}/MSYS2-packages/mingw-w64-cross-binutils - run: makepkg --syncdeps --rmdeps --cleanbuild --noconfirm --noprogressbar --nocheck --force - - - name: Upload mingw-w64-cross-binutils - uses: actions/upload-artifact@v4 - with: - name: mingw-w64-cross-binutils - retention-days: 1 - path: ${{ github.workspace }}/MSYS2-packages/mingw-w64-cross-binutils/*.pkg.tar.zst + uses: ./.github/workflows/build-package.yml + with: + package_name: mingw-w64-cross-binutils + dependencies: mingw-w64-cross-headers + msys2_packages_branch: ${{ github.event.inputs.msys2_packages_branch }} mingw-w64-cross-gcc-stage1: needs: [mingw-w64-cross-headers, mingw-w64-cross-binutils] @@ -104,7 +44,6 @@ jobs: location: ${{ github.workspace }} release: true update: true - cache: false install: base-devel - name: Checkout MSYS2 packages repository @@ -149,7 +88,6 @@ jobs: location: ${{ github.workspace }} release: true update: true - cache: false install: base-devel - name: Checkout MSYS2 packages repository @@ -199,7 +137,6 @@ jobs: location: ${{ github.workspace }} release: true update: true - cache: false install: >- base-devel mingw-w64-cross-winpthreads @@ -263,7 +200,6 @@ jobs: location: ${{ github.workspace }} release: true update: true - cache: false install: base-devel - name: Checkout MSYS2 packages repository @@ -326,7 +262,6 @@ jobs: location: ${{ github.workspace }} release: true update: true - cache: false install: base-devel - name: Checkout MSYS2 packages repository