Skip to content

CI

CI #21

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
name: Build & Test
runs-on: macos-14 # Apple Silicon runner, Xcode 15+
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_15.4.app
- name: Install FreeTDS
run: brew install freetds
- name: Create freetds.pc for pkg-config
# Homebrew's freetds does not ship a .pc file on macOS.
# We generate one from the known brew prefix so that SPM's
# systemLibrary target can resolve it via pkg-config.
run: |
PREFIX=$(brew --prefix freetds)
PC_DIR=/opt/homebrew/lib/pkgconfig
mkdir -p "$PC_DIR"
cat > "$PC_DIR/freetds.pc" << PCEOF
prefix=$PREFIX
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include
Name: FreeTDS
Description: FreeTDS library
Version: 1.0
Libs: -L\${libdir} -lsybdb -liconv
Cflags: -I\${includedir}
PCEOF
echo "=== freetds.pc written ==="
cat "$PC_DIR/freetds.pc"
echo "=== pkg-config verify ==="
PKG_CONFIG_PATH="$PC_DIR" pkg-config --cflags --libs freetds
- name: Build
run: swift build -v
env:
PKG_CONFIG_PATH: /opt/homebrew/lib/pkgconfig
- name: Test
run: swift test -v
env:
PKG_CONFIG_PATH: /opt/homebrew/lib/pkgconfig
HOST: ${{ secrets.DB_HOST }}
USERNAME: ${{ secrets.DB_USERNAME }}
PASSWORD: ${{ secrets.DB_PASSWORD }}
DATABASE: ${{ secrets.DB_DATABASE }}