build_macos:
name: 'macOS'
- runs-on: macos-latest
- timeout-minutes: 60
needs: check_source
if: needs.check_source.outputs.run_tests == 'true'
- env:
- HOMEBREW_NO_ANALYTICS: 1
- HOMEBREW_NO_AUTO_UPDATE: 1
- HOMEBREW_NO_INSTALL_CLEANUP: 1
- PYTHONSTRICTEXTENSIONBUILD: 1
- steps:
- - uses: actions/checkout@v4
- - name: Restore config.cache
- uses: actions/cache@v3
- with:
- path: config.cache
- key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }}
- - name: Install Homebrew dependencies
- run: brew install pkg-config openssl@3.0 xz gdbm tcl-tk
- - name: Configure CPython
- run: |
- GDBM_CFLAGS="-I$(brew --prefix gdbm)/include" \
- GDBM_LIBS="-L$(brew --prefix gdbm)/lib -lgdbm" \
- ./configure \
- --config-cache \
- --with-pydebug \
- --prefix=/opt/python-dev \
- --with-openssl="$(brew --prefix openssl@3.0)"
- - name: Build CPython
- run: make -j4
- - name: Display build info
- run: make pythoninfo
- - name: Tests
- run: make test
+ uses: ./.github/workflows/reusable-build-macos.yml
+ with:
+ config_hash: ${{ needs.check_source.outputs.config_hash }}
build_ubuntu:
name: 'Ubuntu'
--- /dev/null
+on:
+ workflow_call:
+ inputs:
+ config_hash:
+ required: true
+ type: string
+
+jobs:
+ build_macos:
+ runs-on: macos-latest
+ timeout-minutes: 60
+ env:
+ HOMEBREW_NO_ANALYTICS: 1
+ HOMEBREW_NO_AUTO_UPDATE: 1
+ HOMEBREW_NO_INSTALL_CLEANUP: 1
+ PYTHONSTRICTEXTENSIONBUILD: 1
+ steps:
+ - uses: actions/checkout@v4
+ - name: Restore config.cache
+ uses: actions/cache@v3
+ with:
+ path: config.cache
+ key: ${{ github.job }}-${{ runner.os }}-${{ inputs.config_hash }}
+ - name: Install Homebrew dependencies
+ run: brew install pkg-config openssl@3.0 xz gdbm tcl-tk
+ - name: Configure CPython
+ run: |
+ GDBM_CFLAGS="-I$(brew --prefix gdbm)/include" \
+ GDBM_LIBS="-L$(brew --prefix gdbm)/lib -lgdbm" \
+ ./configure \
+ --config-cache \
+ --with-pydebug \
+ --prefix=/opt/python-dev \
+ --with-openssl="$(brew --prefix openssl@3.0)"
+ - name: Build CPython
+ run: make -j4
+ - name: Display build info
+ run: make pythoninfo
+ - name: Tests
+ run: make test