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
|
name: macOS CI
on:
push:
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.ref_name }}
- name: Install Homebrew
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- name: Update Homebrew
run: brew update
- name: Set up Python 3.13
uses: actions/setup-python@v6
with:
python-version: '3.13'
- name: Install python deps
id: install-python-deps
run: |
python3 --version
pip3 --version
pip3 install --upgrade pip
python3 -m venv pybuilddeps
source pybuilddeps/bin/activate
pip3 install setuptools wheel
python3 -c "import setuptools; print(setuptools.__version__)"
python3 -m pip install lxml openpyxl OrderedDict psycopg2-binary prometheus_client pyarrow pyodbc requests six
- name: Install Homebrew deps
id: install-brew-deps
run: |
brew install autoconf unixodbc
- name: Build on macOS
id: Build
run: |
source pybuilddeps/bin/activate
xcodebuild -version
./Makepkgs -verbose
- name: Debug on failure
if: failure() && steps.Build.conclusion == 'failure'
run: |
cat /Users/runner/work/pcp/pcp/Logs/pcp
- name: Debug on Python installation failure
if: failure() && steps.install-python-deps.conclusion == 'failure'
run: |
echo "Python 3.13 installation failed. Collecting debug info..."
brew --version
brew config
brew doctor
ls -la /usr/local/bin | grep python
df -h
brew list
- name: Debug on brew dependency installation failure
if: failure() && steps.install-brew-deps.conclusion == 'failure'
run: |
echo "Dependency installation failed. Collecting debug info..."
brew --version
brew config
brew doctor
ls -la /usr/local/bin | grep python
df -h
brew list
# New steps for handling releases on version tags below
- name: Check if version tag
if: github.ref_type == 'tag'
id: check_tag
uses: actions-ecosystem/action-regex-match@v2
with:
text: ${{ github.ref_name }}
regex: '^[0-9]+\.[0-9]+\.[0-9]+$'
flags: g # Global flag, but optional if just checking match
- name: Generate Github Summary - version tag detected
if: steps.check_tag.outputs.match != ''
run: |
echo "RELEASE DETECTED!" >> $GITHUB_STEP_SUMMARY
- name: Generate Github Summary - no version tag
if: steps.check_tag.outputs.match == ''
run: |
echo "Not a Release!" >> $GITHUB_STEP_SUMMARY
- name: Release
uses: softprops/action-gh-release@v2
if: steps.check_tag.outputs.match != ''
with:
files: |
pcp-**/build/mac/pcp-*.dmg
|