Correctly enforce min macOS version, and use dotted path for frameworks. #125
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is the DEV workflow. | |
# Run this Action on creating a new tag matching "<version>-b<build>" | |
# e.g., 3.7-b1 | |
name: Build support package | |
on: | |
push: | |
tags: | |
- '*-b*' | |
jobs: | |
make-release: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set build variables | |
env: | |
TAG_NAME: ${{ github.ref }} | |
run: | | |
export TAG=$(basename $TAG_NAME) | |
echo "TAG=${TAG}" | |
export TAG_VERSION="${TAG%-*}" | |
export TAG_BUILD="${TAG#*-}" | |
echo "PY_VERSION=${TAG_VERSION}" | |
echo "BUILD_NUMBER=${TAG_BUILD}" | |
echo "TAG=${TAG}" >> $GITHUB_ENV | |
echo "PY_VERSION=${TAG_VERSION}" >> $GITHUB_ENV | |
echo "BUILD_NUMBER=${TAG_BUILD}" >> $GITHUB_ENV | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: ${{ github.ref }} | |
draft: true | |
prerelease: false | |
body: | | |
Build ${{ env.BUILD_NUMBER }} of the BeeWare support package for Python ${{ env.PY_VERSION }}. | |
Includes: | |
* Python ${{ env.PY_VERSION }}.? | |
* OpenSSL 3.1.2 | |
* BZip2 1.0.8 | |
* XZ 5.4.4 | |
* LibFFI 3.4.4 | |
outputs: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
build: | |
runs-on: macOS-latest | |
needs: make-release | |
strategy: | |
max-parallel: 4 | |
matrix: | |
target: ['macOS', 'iOS', 'tvOS', 'watchOS'] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set build variables | |
env: | |
TAG_NAME: ${{ github.ref }} | |
run: | | |
export TAG=$(basename $TAG_NAME) | |
echo "TAG=${TAG}" | |
export TAG_VERSION="${TAG%-*}" | |
export TAG_BUILD="${TAG#*-}" | |
echo "PY_VERSION=${TAG_VERSION}" | |
echo "BUILD_NUMBER=${TAG_BUILD}" | |
echo "TAG=${TAG}" >> $GITHUB_ENV | |
echo "PY_VERSION=${TAG_VERSION}" >> $GITHUB_ENV | |
echo "BUILD_NUMBER=${TAG_BUILD}" >> $GITHUB_ENV | |
- name: Set up Python | |
uses: actions/[email protected] | |
with: | |
python-version: ${{ env.TAG_VERSION }} | |
- name: Build ${{ matrix.target }} | |
env: | |
BUILD_NUMBER: ${{ env.BUILD_NUMBER }} | |
run: | | |
# 2020-06-24: The Homebrew copy of gettext leaks into the macOS build | |
# if it is present. Uninstall gettext to make sure that doesn't happen. | |
# 2021-01-02: Uninstall curl as well. We need curl to download the | |
# source bundles, but Homebrew's curl has a runtime dependency on | |
# gettext. However macOS provides a version of curl that works fine. | |
brew uninstall --ignore-dependencies gettext curl | |
# Do the build for the requested target. | |
make -e ${{ matrix.target }} | |
- name: Upload ${{ matrix.target }} release asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.make-release.outputs.upload_url }} | |
asset_path: ./dist/Python-${{ env.PY_VERSION }}-${{ matrix.target }}-support.${{ env.BUILD_NUMBER }}.tar.gz | |
asset_name: Python-${{ env.PY_VERSION }}-${{ matrix.target }}-support.${{ env.BUILD_NUMBER }}.tar.gz | |
asset_content_type: application/gzip |