Skip to content

feat: report the GitHub login a credential was signed in for #18

feat: report the GitHub login a credential was signed in for

feat: report the GitHub login a credential was signed in for #18

Workflow file for this run

# Build and test on every push to main and every pull request.
#
# Runs inside the official Swift container for Ubuntu 24.04 (noble) rather than on the
# runner's own OS: Swift toolchains are built against noble's libraries (libxml2.so.2,
# ICU 74), and newer Ubuntu images ship incompatible sonames. The container pins the
# whole userland to what the toolchain expects.
#
# There is no service container here, unlike stele-pages' CI. Every decision the CLI makes
# lives in SteleKit as a pure function over injected inputs — the home directory, the
# environment, a response body — so the suite needs the toolchain and nothing else. If a
# test ever needs a live server, that is the signal that logic has leaked into the
# executable target.
name: CI
# Only run when something the build actually consumes changes. The workflow file
# itself is on the list so edits to the CI still get exercised by the CI. If this
# check ever becomes required by branch protection, drop the filters — a required
# check that is skipped by a path filter leaves the PR blocked forever.
on:
push:
branches: [main]
paths:
- 'Sources/**'
- 'Tests/**'
- 'Package.swift'
- 'Package.resolved'
- '.github/workflows/ci.yml'
pull_request:
paths:
- 'Sources/**'
- 'Tests/**'
- 'Package.swift'
- 'Package.resolved'
- '.github/workflows/ci.yml'
# A force-push or rapid follow-up commit obsoletes the running build; finish only the
# newest one per ref.
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
build-test:
name: build and test
runs-on: ubuntu-latest
container: swift:6.3-noble
steps:
- uses: actions/checkout@v7
# The container runs as root while the checkout is owned by another uid, so git
# refuses to touch the repo until it is marked safe — and SwiftPM shells out to
# git during dependency resolution.
- name: Trust the workspace
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
# Keyed on Package.resolved so dependency bumps rebuild from scratch while
# source-only changes reuse the compiled dependency graph.
- name: Cache dependencies
uses: actions/cache@v6
with:
path: .build
key: spm-${{ hashFiles('Package.resolved') }}
restore-keys: spm-
# Split from the test run so a compile failure is distinguishable from a failing
# assertion in the job summary.
- name: Build
run: swift build --build-tests
- name: Test
run: swift test --skip-build