Skip to content

Correctly enforce minimum macOS version. #129

Correctly enforce minimum macOS version.

Correctly enforce minimum macOS version. #129

Workflow file for this run

# 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