Like in the other steps. The staging update makes it slower since that also updates other packages provided by the host, and it updates packages installed by the action itself, in case they are in staging.
185 lines
5.6 KiB
YAML
185 lines
5.6 KiB
YAML
name: main
|
|
|
|
concurrency:
|
|
group: ${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
build:
|
|
if: ${{ github.event_name != 'push' || github.ref != 'refs/heads/master'}}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include: [
|
|
{ msystem: MINGW64, runner: windows-2022 },
|
|
{ msystem: MINGW32, runner: windows-2022 },
|
|
{ msystem: UCRT64, runner: windows-2022 },
|
|
{ msystem: CLANG64, runner: windows-2022 },
|
|
{ msystem: CLANG32, runner: windows-2022 },
|
|
# { msystem: CLANGARM64, runner: ['Windows', 'ARM64', 'CI'] }
|
|
]
|
|
name: ${{ matrix.msystem }}
|
|
runs-on: ${{ matrix.runner }}
|
|
steps:
|
|
- name: Get CPU Name
|
|
run : |
|
|
Get-CIMInstance -Class Win32_Processor | Select-Object -Property Name
|
|
|
|
- name: Setup JIT minidump
|
|
if: ${{ matrix.msystem != 'CLANGARM64' }}
|
|
run: |
|
|
Set-Location '${{ runner.temp }}'
|
|
Invoke-WebRequest -Uri 'https://download.sysinternals.com/files/Procdump.zip' -OutFile Procdump.zip
|
|
Expand-Archive Procdump.zip -DestinationPath .
|
|
New-Item -Path '_dumps' -ItemType Directory
|
|
.\procdump64.exe -accepteula -ma -i "${{ runner.temp }}/_dumps"
|
|
.\procdump.exe -accepteula -ma -i "${{ runner.temp }}/_dumps"
|
|
|
|
- name: Configure Pagefile
|
|
if: ${{ matrix.msystem != 'CLANGARM64' }}
|
|
# https://github.com/al-cheb/configure-pagefile-action/issues/16
|
|
continue-on-error: true
|
|
uses: al-cheb/configure-pagefile-action@86589fd789a4de3e62ba628dda2cb10027b66d67
|
|
with:
|
|
minimum-size: 4GB
|
|
maximum-size: 16GB
|
|
disk-root: "C:"
|
|
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
path: temp
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
|
|
# to match the autobuild environment
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.11'
|
|
architecture: 'x64'
|
|
|
|
- uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: ${{ matrix.msystem }}
|
|
install: git python base-devel
|
|
update: true
|
|
release: ${{ runner.arch != 'ARM64' }}
|
|
location: 'D:\M'
|
|
|
|
- name: Add staging repo
|
|
shell: msys2 {0}
|
|
run: |
|
|
cp /etc/pacman.conf /etc/pacman.conf.bak
|
|
grep -qFx '[staging]' /etc/pacman.conf || sed -i '/^# \[staging\]/,/^$/ s|^# ||g' /etc/pacman.conf
|
|
|
|
- name: Update using staging
|
|
run: |
|
|
msys2 -c 'pacman --noconfirm -Suuy'
|
|
msys2 -c 'pacman --noconfirm -Suu'
|
|
|
|
- name: Move Checkout
|
|
run: |
|
|
If (Test-Path "C:\_") { rm -r -fo "C:\_" }
|
|
Copy-Item -Path ".\temp" -Destination "C:\_" -Recurse
|
|
|
|
- name: CI-Build
|
|
shell: msys2 {0}
|
|
id: build
|
|
run: |
|
|
cd /C/_
|
|
unset VCPKG_ROOT
|
|
pacman -S --needed --noconfirm ${MINGW_PACKAGE_PREFIX}-ntldd
|
|
MINGW_ARCH=${{ matrix.msystem }} ./.ci/ci-build.sh
|
|
|
|
- name: "Upload binaries"
|
|
if: ${{ !cancelled() }}
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ matrix.msystem }}-packages
|
|
path: C:/_/artifacts/*.pkg.tar.*
|
|
if-no-files-found: ignore
|
|
|
|
- name: "Upload dumps"
|
|
if: ${{ !cancelled() }}
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ matrix.msystem }}-dumps
|
|
path: ${{ runner.temp }}/_dumps/*.dmp
|
|
if-no-files-found: ignore
|
|
|
|
- name: "Clean up runner"
|
|
if: ${{ always() }}
|
|
continue-on-error: true
|
|
run: |
|
|
If (Test-Path "C:\_") { rm -r -fo "C:\_" }
|
|
msys2 -c 'mv -f /etc/pacman.conf.bak /etc/pacman.conf'
|
|
msys2 -c 'pacman --noconfirm -Suuy'
|
|
msys2 -c 'pacman --noconfirm -Suu'
|
|
|
|
check:
|
|
needs: [build]
|
|
runs-on: windows-2022
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/download-artifact@v3
|
|
continue-on-error: true
|
|
with:
|
|
name: UCRT64-packages
|
|
path: C:/_/artifacts
|
|
- name: Check whether to Run
|
|
id: check-run
|
|
run: |
|
|
python .ci/ci-check.py --whether-to-run
|
|
- uses: msys2/setup-msys2@v2
|
|
if: steps.check-run.outputs.run == 'true'
|
|
with:
|
|
msystem: UCRT64
|
|
update: true
|
|
release: ${{ runner.arch != 'ARM64' }}
|
|
install: mingw-w64-ucrt-x86_64-python-pip mingw-w64-ucrt-x86_64-python-pacdb
|
|
- name: Add staging repo
|
|
if: steps.check-run.outputs.run == 'true'
|
|
shell: msys2 {0}
|
|
run: |
|
|
sed -i '1s|^|[staging]\nServer = https://repo.msys2.org/staging/\nSigLevel = Never\n|' /etc/pacman.conf
|
|
- name: Update using staging
|
|
if: steps.check-run.outputs.run == 'true'
|
|
run: |
|
|
msys2 -c 'pacman --noconfirm -Suuy'
|
|
msys2 -c 'pacman --noconfirm -Suu'
|
|
- name: Run Checks
|
|
if: steps.check-run.outputs.run == 'true'
|
|
shell: msys2 {0}
|
|
run: |
|
|
python .ci/ci-check.py
|
|
|
|
package-grokker:
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
name: package-grokker-${{ matrix.msystem }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- msystem: UCRT64
|
|
repo: ucrt64
|
|
- msystem: CLANG64
|
|
repo: clang64
|
|
|
|
steps:
|
|
- uses: actions/download-artifact@v3
|
|
id: artifacts
|
|
continue-on-error: true
|
|
with:
|
|
name: ${{ matrix.msystem }}-packages
|
|
path: artifacts
|
|
- name: Grok packages
|
|
uses: jeremyd2019/package-grokker/grok-artifacts@main
|
|
if: steps.artifacts.outcome == 'success'
|
|
with:
|
|
repo: ${{ matrix.repo }}
|
|
path: artifacts
|