Skip to content

Commit 32dc259

Browse files
authored
Add FreeBSD tier 3 CI workflow (#4956)
FreeBSD support was dropped from CI in August 2023 but all platform- specific code was deliberately kept. This adds weekly CI to give visibility into what works and what needs fixing. Uses cross-platform-actions/action to run FreeBSD VMs via QEMU on GitHub Actions runners. Tests both FreeBSD 14.3 and 15.0 (the two actively maintained major branches; 13 goes EOL April 2026). Runs Saturday 3 AM UTC. Each version builds libs from scratch (no caching — acceptable for weekly frequency), then runs the full test-ci-core suite for both debug and release configs, plus all tools tests (pony-doc, pony-lint, pony-lsp). Also fixes BUILD.md's FreeBSD section which was missing python3 from the package install command.
1 parent e5c75f3 commit 32dc259

File tree

2 files changed

+93
-1
lines changed

2 files changed

+93
-1
lines changed

.github/workflows/ponyc-tier3.yml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
name: ponyc Tier 3
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
ref:
7+
description: "Git ref to check out and test (branch, tag, or SHA)"
8+
required: false
9+
default: "main"
10+
schedule:
11+
- cron: "0 3 * * 6"
12+
13+
concurrency:
14+
group: ponyc-tier3-${{ github.ref }}
15+
cancel-in-progress: true
16+
17+
permissions:
18+
packages: read
19+
20+
jobs:
21+
check-for-changes:
22+
runs-on: ubuntu-latest
23+
outputs:
24+
has-changes: ${{ steps.check.outputs.has-changes }}
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v4.1.1
28+
with:
29+
ref: ${{ inputs.ref || github.sha }}
30+
fetch-depth: 0
31+
- name: Check for recent commits
32+
id: check
33+
run: |
34+
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
35+
echo "has-changes=true" >> "$GITHUB_OUTPUT"
36+
elif git log --since="7 days ago" --oneline | head -1 | grep -q .; then
37+
echo "has-changes=true" >> "$GITHUB_OUTPUT"
38+
else
39+
echo "has-changes=false" >> "$GITHUB_OUTPUT"
40+
fi
41+
42+
freebsd:
43+
needs: check-for-changes
44+
if: needs.check-for-changes.outputs.has-changes == 'true'
45+
runs-on: ubuntu-latest
46+
timeout-minutes: 240
47+
48+
strategy:
49+
fail-fast: false
50+
matrix:
51+
include:
52+
- version: '14.3'
53+
name: x86-64 FreeBSD 14.3
54+
- version: '15.0'
55+
name: x86-64 FreeBSD 15.0
56+
57+
name: ${{ matrix.name }}
58+
steps:
59+
- name: Checkout
60+
uses: actions/checkout@v4.1.1
61+
with:
62+
ref: ${{ inputs.ref || github.sha }}
63+
- name: Build and Test
64+
uses: cross-platform-actions/action@v0.32.0
65+
with:
66+
operating_system: freebsd
67+
version: '${{ matrix.version }}'
68+
cpu_count: 4
69+
run: |
70+
sudo pkg install -y cmake gmake libunwind git python3
71+
gmake libs build_flags=-j4
72+
gmake configure config=debug
73+
gmake build config=debug
74+
gmake test-ci-core config=debug
75+
gmake test-pony-doc config=debug
76+
gmake test-pony-lint config=debug
77+
gmake test-pony-lsp config=debug
78+
gmake lint-pony-lint config=debug
79+
gmake configure config=release
80+
gmake build config=release
81+
gmake test-ci-core config=release
82+
- name: Send alert on failure
83+
if: ${{ failure() }}
84+
uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5
85+
with:
86+
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }}
87+
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }}
88+
organization-url: 'https://ponylang.zulipchat.com/'
89+
to: notifications
90+
type: stream
91+
topic: ${{ github.repository }} scheduled job failure
92+
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed.

BUILD.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ The build system defaults to using Clang on Unix. In order to use GCC, you must
3434
## FreeBSD
3535

3636
```bash
37-
pkg install -y cmake gmake libunwind git
37+
pkg install -y cmake gmake libunwind git python3
3838
gmake libs
3939
gmake configure
4040
gmake build

0 commit comments

Comments
 (0)