Skip to content

Commit

Permalink
Ccache experiment
Browse files Browse the repository at this point in the history
  • Loading branch information
Blackhex committed May 22, 2024
1 parent e43a8a0 commit fa7697a
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 76 deletions.
7 changes: 7 additions & 0 deletions .github/scripts/enable-ccache.sh
Original file line number Diff line number Diff line change
@@ -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
71 changes: 71 additions & 0 deletions .github/workflows/build-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Build MSYS2 package

on:
workflow_call:
inputs:
package_name:
description: "Package name to build"
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
uses: actions/download-artifact@v4
with:
name: ${{ inputs.package_name }}-dependencies

- name: Install artifacts
run: if [ -f *.pkg.tar.zst ]; then pacman -U --noconfirm *.pkg.tar.zst; fi

- 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
92 changes: 16 additions & 76 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,85 +13,30 @@ 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
uses: ./.github/workflows/build-package.yml
with:
package_name: mingw-w64-cross-headers
msys2_packages_branch: ${{ github.event.inputs.msys2_packages_branch }}

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
mingw-w64-cross-binutils-dependencies:
uses: actions/upload-artifact/merge@v4
with:
name: mingw-w64-cross-binutils-dependencies
retention-days: 1

mingw-w64-cross-binutils:
needs: [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: 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
msys2_packages_branch: ${{ github.event.inputs.msys2_packages_branch }}

mingw-w64-cross-gcc-stage1:
needs: [mingw-w64-cross-headers, mingw-w64-cross-binutils]
Expand All @@ -104,7 +49,6 @@ jobs:
location: ${{ github.workspace }}
release: true
update: true
cache: false
install: base-devel

- name: Checkout MSYS2 packages repository
Expand Down Expand Up @@ -149,7 +93,6 @@ jobs:
location: ${{ github.workspace }}
release: true
update: true
cache: false
install: base-devel

- name: Checkout MSYS2 packages repository
Expand Down Expand Up @@ -199,7 +142,6 @@ jobs:
location: ${{ github.workspace }}
release: true
update: true
cache: false
install: >-
base-devel
mingw-w64-cross-winpthreads
Expand Down Expand Up @@ -263,7 +205,6 @@ jobs:
location: ${{ github.workspace }}
release: true
update: true
cache: false
install: base-devel

- name: Checkout MSYS2 packages repository
Expand Down Expand Up @@ -326,7 +267,6 @@ jobs:
location: ${{ github.workspace }}
release: true
update: true
cache: false
install: base-devel

- name: Checkout MSYS2 packages repository
Expand Down

0 comments on commit fa7697a

Please sign in to comment.