Skip to content

Commit

Permalink
Test running "Build Python source and docs artifacts" workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
hugovk authored Jun 14, 2024
1 parent 2a0f332 commit 9e4e51c
Showing 1 changed file with 47 additions and 21 deletions.
68 changes: 47 additions & 21 deletions .github/workflows/source-and-docs-release.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
on:
push:
paths-ignore:
- ".github/dependabot.yml"
- ".github/workflows/lint.yml"
- ".github/workflows/test.yml"
- ".pre-commit-config.yaml"
- ".ruff.toml"
- "README.md"
- "tests/**"
pull_request:
paths-ignore:
- ".github/dependabot.yml"
- ".github/workflows/lint.yml"
- ".github/workflows/test.yml"
- ".pre-commit-config.yaml"
- ".ruff.toml"
- "README.md"
- "tests/**"
workflow_dispatch:
inputs:
git_remote:
Expand All @@ -18,27 +36,36 @@ on:

name: "Build Python source and docs artifacts"

# Set from inputs for workflow_dispatch, or set defaults to test push/PR events
env:
GIT_REMOTE: ${{ github.event.inputs.git_remote || 'python' }}
GIT_COMMIT: ${{ github.event.inputs.git_commit || 'f6650f9ad73359051f3e558c2431a109bc016664' }}
CPYTHON_RELEASE: ${{ github.event.inputs.cpython_release || '3.12.3' }}

jobs:
verify-input:
runs-on: ubuntu-22.04
outputs:
# Needed because env vars are not available in the build-docs check below
cpython_release: ${{ env.CPYTHON_RELEASE }}
steps:
- name: "Workflow run information"
run: |
echo "git_remote: ${{ inputs.git_remote }}"
echo "git_commit: ${{ inputs.git_commit }}"
echo "cpython_release: ${{ inputs.cpython_release }}"
echo "git_remote: $GIT_REMOTE"
echo "git_commit: $GIT_COMMIT"
echo "cpython_release: $CPYTHON_RELEASE"
- name: "Checkout ${{ inputs.git_remote }}/cpython"
- name: "Checkout ${{ env.GIT_REMOTE }}/cpython"
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
repository: "${{ inputs.git_remote }}/cpython"
ref: "v${{ inputs.cpython_release }}"
repository: "${{ env.GIT_REMOTE }}/cpython"
ref: "v${{ env.CPYTHON_RELEASE }}"
path: "cpython"

- name: "Verify CPython commit matches tag"
run: |
if [[ "${{ inputs.git_commit }}" != "$(cd cpython && git rev-parse HEAD)" ]]; then
echo "expected git commit ('${{ inputs.git_commit }}') didn't match tagged commit ('$(git rev-parse HEAD)')"
if [[ "$GIT_COMMIT" != "$(cd cpython && git rev-parse HEAD)" ]]; then
echo "expected git commit ('$GIT_COMMIT') didn't match tagged commit ('$(git rev-parse HEAD)')"
exit 1
fi
Expand All @@ -50,11 +77,11 @@ jobs:
- name: "Checkout python/release-tools"
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

- name: "Checkout ${{ inputs.git_remote }}/cpython"
- name: "Checkout ${{ env.GIT_REMOTE }}/cpython"
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
repository: "${{ inputs.git_remote }}/cpython"
ref: "v${{ inputs.cpython_release }}"
repository: "${{ env.GIT_REMOTE }}/cpython"
ref: "v${{ env.CPYTHON_RELEASE }}"
path: "cpython"

- name: "Setup Python"
Expand All @@ -70,29 +97,28 @@ jobs:
- name: "Build Python release artifacts"
run: |
cd cpython
python ../release.py --export ${{ inputs.cpython_release }} --skip-docs
python ../release.py --export "$CPYTHON_RELEASE" --skip-docs
- name: "Upload the source artifacts"
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: source
path: |
cpython/${{ inputs.cpython_release }}/src
cpython/${{ env.CPYTHON_RELEASE }}/src
build-docs:
runs-on: ubuntu-22.04
needs:
- verify-input

# Docs aren't built for alpha or beta releases.
if: ${{ !(contains(inputs.cpython_release, 'a') || contains(inputs.cpython_release, 'b')) }}

if: (!(contains(needs.verify-input.outputs.cpython_release, 'a') || contains(needs.verify-input.outputs.cpython_release, 'b')))
steps:
- name: "Checkout ${{ inputs.git_remote }}/cpython"
- name: "Checkout ${{ env.GIT_REMOTE }}/cpython"
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
repository: "${{ inputs.git_remote }}/cpython"
ref: "v${{ inputs.cpython_release }}"
repository: "${{ env.GIT_REMOTE }}/cpython"
ref: "v${{ env.CPYTHON_RELEASE }}"

- name: "Setup Python"
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
Expand Down Expand Up @@ -135,10 +161,10 @@ jobs:
- name: "Test Python source tarballs"
run: |
mkdir -p ./tmp/installation/
cp Python-${{ inputs.cpython_release }}.tgz ./tmp/
cp "Python-$CPYTHON_RELEASE.tgz" ./tmp/
cd tmp/
tar xvf Python-${{ inputs.cpython_release }}.tgz
cd Python-${{ inputs.cpython_release }}
tar xvf "Python-$CPYTHON_RELEASE.tgz"
cd "Python-$CPYTHON_RELEASE"
./configure "--prefix=$(realpath '../installation/')"
make -j
Expand Down

0 comments on commit 9e4e51c

Please sign in to comment.