-
-
Notifications
You must be signed in to change notification settings - Fork 428
142 lines (131 loc) · 4.72 KB
/
pr-ponyc.yml
File metadata and controls
142 lines (131 loc) · 4.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
name: ponyc
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- '**'
- '!tools/**'
- '!**/*.md'
- '!**/*.yml'
- '!.dockerfiles/**'
- '!.ci-dockerfiles/**'
- '.github/workflows/pr-ponyc.yml'
concurrency:
group: pr-ponyc-${{ github.ref }}
cancel-in-progress: true
permissions:
packages: read
jobs:
x86_64-linux:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-ubuntu24.04-builder:20250115
name: x86-64 Linux glibc
debugger: lldb
- image: ghcr.io/ponylang/ponyc-ci-alpine3.23-builder:20260201
name: x86-64 Linux musl
debugger: lldb
name: ${{ matrix.name }}
container:
image: ${{ matrix.image }}
options: --user pony --cap-add=SYS_PTRACE --security-opt seccomp=unconfined
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
- name: Restore Libs Cache
id: restore-libs
uses: actions/cache/restore@v5.0.3
with:
path: |
build/libs
lib/llvm/src/compiler-rt/lib/builtins
key: libs-${{ matrix.image }}-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }}
- name: Build Libs
if: steps.restore-libs.outputs.cache-hit != 'true'
run: make libs build_flags=-j8
- name: Build Debug Runtime
run: |
make configure arch=x86-64 config=debug
make build config=debug
- name: Test with Debug Runtime
run: make test-ci-core config=debug usedebugger='${{ matrix.debugger }}'
- name: Build Release Runtime
run: |
make configure arch=x86-64 config=release
make build config=release
- name: Test with Release Runtime
run: make test-ci-core config=release usedebugger='${{ matrix.debugger }}'
arm64-macos:
if: github.event.pull_request.draft == false
runs-on: macos-26
name: arm64 Apple Darwin
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
- name: Restore Libs Cache
id: restore-libs
uses: actions/cache/restore@v5.0.3
with:
path: |
build/libs
lib/llvm/src/compiler-rt/lib/builtins
key: libs-arm64-macos-26-${{ hashFiles('Makefile', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }}
- name: Build Libs
if: steps.restore-libs.outputs.cache-hit != 'true'
run: make libs build_flags=-j4
- name: Build Debug Runtime
run: |
make configure arch=armv8 config=debug
make build config=debug
- name: Test with Debug Runtime
run: make test-ci-core config=debug
- name: Build Release Runtime
run: |
make configure arch=armv8 config=release
make build config=release
- name: Test with Release Runtime
run: make test-ci-core config=release
x86_64-windows:
if: github.event.pull_request.draft == false
runs-on: windows-2025
defaults:
run:
shell: pwsh
name: x86-64 Windows MSVC
steps:
- name: Disable Windows Defender
run: Set-MpPreference -DisableRealtimeMonitoring $true
- name: Checkout
uses: actions/checkout@v6.0.2
- name: Install Dependencies
run: |
function msys() { C:\msys64\usr\bin\bash.exe @('-lc') + @Args }; msys ' '; msys 'pacman --noconfirm -Syuu'; msys 'pacman --noconfirm -Syuu'; msys 'pacman --noconfirm -S --needed base-devel mingw-w64-x86_64-lldb'; msys 'pacman --noconfirm -Scc'
- name: Restore Libs Cache
id: restore-libs
uses: actions/cache/restore@v5.0.3
with:
path: |
build/libs
lib/llvm/src/compiler-rt/lib/builtins
key: libs-windows-2025-${{ hashFiles('make.ps1', 'CMakeLists.txt', 'lib/CMakeLists.txt', 'lib/llvm/patches/*') }}
- name: Build Libs
if: steps.restore-libs.outputs.cache-hit != 'true'
run: .\make.ps1 -Command libs
- name: Build Debug Runtime
run: |
.\make.ps1 -Command configure -Config Debug
.\make.ps1 -Command build -Config Debug
- name: Test with Debug Runtime
run: .\make.ps1 -Command test -Config Debug -Uselldb yes
- name: Build Release Runtime
run: |
.\make.ps1 -Command configure -Config Release
.\make.ps1 -Command build -Config Release
- name: Test with Release Runtime
run: .\make.ps1 -Command test -Config Release -Uselldb yes
- name: Build examples
run: .\make.ps1 -Command build-examples