-
-
Notifications
You must be signed in to change notification settings - Fork 165
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rework CI and release workflows to maximize reuse.
- Loading branch information
1 parent
600b9e0
commit d0e07fc
Showing
2 changed files
with
70 additions
and
60 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,6 +5,34 @@ on: | |
branches: | ||
- main | ||
- 3.* | ||
workflow_call: | ||
inputs: | ||
build-number: | ||
description: "The build number to add to the built package" | ||
default: "custom" | ||
type: "string" | ||
outputs: | ||
PYTHON_VER: | ||
description: "The Python major.minor version." | ||
value: ${{ jobs.build.outputs.PYTHON_VER }} | ||
PYTHON_VERSION: | ||
description: "The full Python version." | ||
value: ${{ jobs.build.outputs.PYTHON_VERSION }} | ||
BZIP2_VERSION: | ||
description: "The BZip2 version used for the build." | ||
value: ${{ jobs.build.outputs.BZIP2_VERSION }} | ||
LIBFFI_VERSION: | ||
description: "The libFFI version used for the build." | ||
value: ${{ jobs.build.outputs.LIBFFI_VERSION }} | ||
MPDECIMAL_VERSION: | ||
description: "The mpdecimal version used for the build." | ||
value: ${{ jobs.build.outputs.MPDECIMAL_VERSION }} | ||
OPENSSL_VERSION: | ||
description: "The OpenSSL version used for the build." | ||
value: ${{ jobs.build.outputs.OPENSSL_VERSION }} | ||
XZ_VERSION: | ||
description: "The XZ version used for the build." | ||
value: ${{ jobs.build.outputs.XZ_VERSION }} | ||
|
||
env: | ||
FORCE_COLOR: "1" | ||
|
@@ -36,14 +64,36 @@ jobs: | |
briefcase-run-args: ' -d "iPhone SE (3rd generation)"' | ||
run-tests: true | ||
|
||
outputs: | ||
PYTHON_VER: ${{ steps.config-vars.outputs.PYTHON_VER }} | ||
PYTHON_VERSION: ${{ steps.config-vars.outputs.PYTHON_VERSION }} | ||
BZIP2_VERSION: ${{ steps.config-vars.outputs.BZIP2_VERSION }} | ||
LIBFFI_VERSION: ${{ steps.config-vars.outputs.LIBFFI_VERSION }} | ||
MPDECIMAL_VERSION: ${{ steps.config-vars.outputs.MPDECIMAL_VERSION }} | ||
OPENSSL_VERSION: ${{ steps.config-vars.outputs.OPENSSL_VERSION }} | ||
XZ_VERSION: ${{ steps.config-vars.outputs.XZ_VERSION }} | ||
|
||
steps: | ||
- uses: actions/[email protected] | ||
|
||
- name: Extract config variables | ||
id: config-vars | ||
run: | | ||
PYTHON_VER=$(make config | grep "PYTHON_VER=" | cut -d "=" -f 2) | ||
PYTHON_VERSION=$(make config | grep "PYTHON_VERSION=" cut -d "=" -f 2) | ||
BZIP2_VERSION=$(make config | grep "BZIP2_VERSION=" | cut -d "=" -f 2) | ||
LIBFFI_VERSION=$(make config | grep "LIBFFI_VERSION=" | cut -d "=" -f 2) | ||
MPDECIMAL_VERSION=$(make config | grep "MPDECIMAL_VERSION=" | cut -d "=" -f 2) | ||
OPENSSL_VERSION=$(make config | grep "OPENSSL_VERSION=" | cut -d "=" -f 2) | ||
XZ_VERSION=$(make config | grep "XZ_VERSION=" | cut -d "=" -f 2) | ||
echo "PYTHON_VER=${PYTHON_VER}" | tee -a ${GITHUB_OUTPUT} | ||
echo "PYTHON_VERSION=${PYTHON_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
echo "BZIP2_VERSION=${BZIP2_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
echo "LIBFFI_VERSION=${LIBFFI_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
echo "MPDECIMAL_VERSION=${MPDECIMAL_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
echo "OPENSSL_VERSION=${OPENSSL_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
echo "XZ_VERSION=${XZ_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
- name: Set up Python | ||
uses: actions/[email protected] | ||
|
@@ -55,7 +105,7 @@ jobs: | |
- name: Build ${{ matrix.target }} | ||
run: | | ||
# Do the build for the requested target. | ||
make ${{ matrix.target }} | ||
make ${{ matrix.target }} BUILD_NUMBER=${{ inputs.attest-package }} | ||
- name: Upload build artefacts | ||
uses: actions/[email protected] | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,76 +8,36 @@ on: | |
- '*-b*' | ||
|
||
jobs: | ||
build: | ||
name: Build | ||
config: | ||
name: Build vars | ||
runs-on: macOS-latest | ||
outputs: | ||
TAG: ${{ steps.build-vars.outputs.TAG }} | ||
PYTHON_VER: ${{ steps.build-vars.outputs.PYTHON_VER }} | ||
BUILD_NUMBER: ${{ steps.build-vars.outputs.BUILD_NUMBER }} | ||
PYTHON_VERSION: ${{ steps.version-details.outputs.PYTHON_VERSION }} | ||
BZIP2_VERSION: ${{ steps.version-details.outputs.BZIP2_VERSION }} | ||
XZ_VERSION: ${{ steps.version-details.outputs.XZ_VERSION }} | ||
LIBFFI_VERSION: ${{ steps.version-details.outputs.LIBFFI_VERSION }} | ||
OPENSSL_VERSION: ${{ steps.version-details.outputs.OPENSSL_VERSION }} | ||
strategy: | ||
matrix: | ||
target: [ "macOS", "iOS", "tvOS", "watchOS" ] | ||
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
||
steps: | ||
- name: Set Build Variables | ||
id: build-vars | ||
env: | ||
TAG_NAME: ${{ github.ref }} | ||
run: | | ||
export TAG=$(basename $TAG_NAME) | ||
export PYTHON_VER="${TAG%-*}" | ||
export BUILD_NUMBER="${TAG#*-}" | ||
echo "TAG=${TAG}" | tee -a ${GITHUB_OUTPUT} | ||
echo "PYTHON_VER=${PYTHON_VER}" | tee -a ${GITHUB_OUTPUT} | ||
echo "BUILD_NUMBER=${BUILD_NUMBER}" | tee -a ${GITHUB_OUTPUT} | ||
- name: Set up Python | ||
uses: actions/[email protected] | ||
with: | ||
python-version: "${{ steps.build-vars.outputs.PYTHON_VER }}-dev" | ||
|
||
- name: Build ${{ matrix.target }} | ||
run: | | ||
# Do the build for the requested target. | ||
make ${{ matrix.target }} BUILD_NUMBER=${{ steps.build-vars.outputs.BUILD_NUMBER }} | ||
- name: Extract Version Details | ||
id: version-details | ||
run: | | ||
PYTHON_VERSION=$(grep "Python version:" support/${{ steps.build-vars.outputs.PYTHON_VER }}/${{ matrix.target }}/VERSIONS | cut -d " " -f 3) | ||
BZIP2_VERSION=$(grep "BZip2:" support/${{ steps.build-vars.outputs.PYTHON_VER }}/${{ matrix.target }}/VERSIONS | cut -d " " -f 2) | ||
LIBFFI_VERSION=$(grep "libFFI:" support/${{ steps.build-vars.outputs.PYTHON_VER }}/${{ matrix.target }}/VERSIONS | cut -d " " -f 2) | ||
MPDECIMAL_VERSION=$(grep "mpdecimal:" support/${{ steps.build-vars.outputs.PYTHON_VER }}/${{ matrix.target }}/VERSIONS | cut -d " " -f 2) | ||
OPENSSL_VERSION=$(grep "OpenSSL:" support/${{ steps.build-vars.outputs.PYTHON_VER }}/${{ matrix.target }}/VERSIONS | cut -d " " -f 2) | ||
XZ_VERSION=$(grep "XZ:" support/${{ steps.build-vars.outputs.PYTHON_VER }}/${{ matrix.target }}/VERSIONS | cut -d " " -f 2) | ||
echo "PYTHON_VERSION=${PYTHON_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
echo "BZIP2_VERSION=${BZIP2_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
echo "LIBFFI_VERSION=${LIBFFI_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
echo "MPDECIMAL_VERSION=${MPDECIMAL_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
echo "OPENSSL_VERSION=${OPENSSL_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
echo "XZ_VERSION=${XZ_VERSION}" | tee -a ${GITHUB_OUTPUT} | ||
- name: Upload Build Artifact | ||
uses: actions/[email protected] | ||
with: | ||
name: dist-${{ matrix.target }} | ||
path: dist | ||
if-no-files-found: error | ||
ci: | ||
name: CI | ||
needs: [ config ] | ||
uses: ./.github/workflows/ci.yaml | ||
with: | ||
build-number: ${{ needs.config.outputs.BUILD_NUMBER }} | ||
|
||
make-release: | ||
name: Make Release | ||
runs-on: ubuntu-latest | ||
needs: build | ||
needs: [ config, ci ] | ||
steps: | ||
- name: Get build artifacts | ||
uses: actions/[email protected] | ||
|
@@ -89,17 +49,17 @@ jobs: | |
- name: Create Release | ||
uses: ncipollo/[email protected] | ||
with: | ||
name: ${{ needs.build.outputs.PYTHON_VER }}-${{ needs.build.outputs.BUILD_NUMBER }} | ||
tag: ${{ needs.build.outputs.PYTHON_VER }}-${{ needs.build.outputs.BUILD_NUMBER }} | ||
name: ${{ needs.ci.outputs.PYTHON_VER }}-${{ needs.config.outputs.BUILD_NUMBER }} | ||
tag: ${{ needs.ci.outputs.PYTHON_VER }}-${{ needs.config.outputs.BUILD_NUMBER }} | ||
draft: true | ||
body: | | ||
Build ${{ needs.build.outputs.BUILD_NUMBER }} of the BeeWare support package for Python ${{ needs.build.outputs.PYTHON_VER }}. | ||
Build ${{ needs.config.outputs.BUILD_NUMBER }} of the BeeWare support package for Python ${{ needs.ci.outputs.PYTHON_VER }}. | ||
Includes: | ||
* Python ${{ needs.build.outputs.PYTHON_VERSION }} | ||
* BZip2 ${{ needs.build.outputs.BZIP2_VERSION }} | ||
* libFFI ${{ needs.build.outputs.LIBFFI_VERSION }} | ||
* mpdecimal ${{ needs.build.outputs.MPDECIMAL_VERSION }} | ||
* OpenSSL ${{ needs.build.outputs.OPENSSL_VERSION }} | ||
* XZ ${{ needs.build.outputs.XZ_VERSION }} | ||
* Python ${{ needs.ci.outputs.PYTHON_VERSION }} | ||
* BZip2 ${{ needs.ci.outputs.BZIP2_VERSION }} | ||
* libFFI ${{ needs.ci.outputs.LIBFFI_VERSION }} | ||
* mpdecimal ${{ needs.ci.outputs.MPDECIMAL_VERSION }} | ||
* OpenSSL ${{ needs.ci.outputs.OPENSSL_VERSION }} | ||
* XZ ${{ needs.ci.outputs.XZ_VERSION }} | ||
artifacts: "dist/*" |