Skip to content

Commit d67c198

Browse files
pdepetrometa-codesync[bot]
authored andcommitted
Add GitHub Actions CI workflow
Summary: Adds a GitHub Actions CI workflow for the tintype OSS repo (github.com/facebookincubator/tintype). The workflow builds and tests the library on the Ubuntu + macOS × Python 3.12/3.13/3.14 matrix, installing the required libzstd system dep and exercising the pybind11 C++17 extension build via `pip install -v .`. Key choices: - `fail-fast: false` so every matrix combination reports independently. - `allow-prereleases: true` on setup-python to support Python 3.14. - `cache: 'pip'` on setup-python to reduce per-job install time. - Workflow-level `permissions: contents: read` for least-privilege GITHUB_TOKEN. - `timeout-minutes: 30` to fail fast on hung runs. - Concurrency group cancels superseded PR runs. The workflow file lands in the OSS repo via ShipIt once the companion configerator change exports the .github/ directory. Reviewed By: aperez Differential Revision: D102836163 fbshipit-source-id: 0aed6e8f5d0ccec40c35bc2c939b841a4ad83417
1 parent d5c57f6 commit d67c198

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
8+
permissions:
9+
contents: read
10+
11+
concurrency:
12+
group: ${{ github.workflow }}-${{ github.ref }}
13+
cancel-in-progress: true
14+
15+
jobs:
16+
build-and-test:
17+
name: build-and-test (${{ matrix.os }}, py${{ matrix.python-version }})
18+
runs-on: ${{ matrix.os }}
19+
timeout-minutes: 30
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
os: [ubuntu-latest, macos-latest]
24+
python-version: ["3.12", "3.13", "3.14"]
25+
26+
steps:
27+
- uses: actions/checkout@v4
28+
29+
- name: Set up Python ${{ matrix.python-version }}
30+
uses: actions/setup-python@v5
31+
with:
32+
python-version: ${{ matrix.python-version }}
33+
allow-prereleases: true
34+
cache: 'pip'
35+
36+
- name: Install zstd (Linux)
37+
if: runner.os == 'Linux'
38+
run: |
39+
sudo apt-get update
40+
sudo apt-get install -y libzstd-dev
41+
42+
- name: Install zstd (macOS)
43+
if: runner.os == 'macOS'
44+
run: brew install zstd
45+
46+
- name: Upgrade pip
47+
run: python -m pip install --upgrade pip
48+
49+
- name: Install tintype
50+
run: pip install -v .
51+
52+
- name: Install test dependencies
53+
run: pip install pytest
54+
55+
- name: Run tests
56+
run: pytest tests/ -v

0 commit comments

Comments
 (0)