Rework CI and release workflows to maximize reuse. #138
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: | |
config: | |
name: Build vars | |
runs-on: macOS-latest | |
outputs: | |
TAG: ${{ steps.build-vars.outputs.TAG }} | |
BUILD_NUMBER: ${{ steps.build-vars.outputs.BUILD_NUMBER }} | |
steps: | |
- name: Set Build Variables | |
id: build-vars | |
env: | |
TAG_NAME: ${{ github.ref }} | |
run: | | |
export TAG=$(basename $TAG_NAME) | |
export BUILD_NUMBER="${TAG#*-}" | |
echo "TAG=${TAG}" | tee -a ${GITHUB_OUTPUT} | |
echo "BUILD_NUMBER=${BUILD_NUMBER}" | tee -a ${GITHUB_OUTPUT} | |
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: [ config, ci ] | |
steps: | |
- name: Get build artifacts | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
pattern: dist-* | |
path: dist | |
merge-multiple: true | |
- name: Create Release | |
uses: ncipollo/release-action@v1.14.0 | |
with: | |
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.config.outputs.BUILD_NUMBER }} of the BeeWare support package for Python ${{ needs.ci.outputs.PYTHON_VER }}. | |
Includes: | |
* 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/*" |