Fokko commented on code in PR #1391:
URL: https://github.com/apache/iceberg-python/pull/1391#discussion_r1938561415
##########
.github/workflows/python-release.yml:
##########
@@ -17,29 +17,192 @@
# under the License.
#
-name: "Python Release"
+name: "Python Build Release Candidate"
on:
+ push:
+ tags:
+ # Trigger this workflow when tag follows the versioning format:
pyiceberg-<major>.<minor>.<patch>rc<release_candidate>
+ # Example valid tags: pyiceberg-0.8.0rc2, pyiceberg-1.0.0rc1
+ - 'pyiceberg-[0-9]+.[0-9]+.[0-9]+rc[0-9]+'
workflow_dispatch:
inputs:
version:
- description: 'Version'
+ description: 'Version (e.g., 0.8.0)'
type: string
- default: 'main'
-
+ required: true
+ rc:
+ description: 'Release Candidate (RC) (e.g., 1)'
+ type: number
+ required: true
jobs:
- build_wheels:
- name: Build wheels on ${{ matrix.os }}
+ validate-inputs:
+ runs-on: ubuntu-latest
+ outputs:
+ VERSION: ${{ steps.validate-inputs.outputs.VERSION }} # e.g. 0.8.0
+ RC: ${{ steps.validate-inputs.outputs.RC }} # e.g. 1
+ steps:
+ - name: Validate and Extract Version and RC
+ id: validate-inputs
+ run: |
+ if [ "$GITHUB_EVENT_NAME" = "push" ]; then
+ echo "Workflow triggered by tag push."
+ TAG=${GITHUB_REF#refs/tags/} # Extract the tag name
+ VERSION_AND_RC=${TAG#pyiceberg-} # Remove the 'pyiceberg-' prefix
+ VERSION=${VERSION_AND_RC%rc*} # Extract VERSION by removing
everything after 'rc'
+ RC=${VERSION_AND_RC#*rc} # Extract RC by keeping everything after
'rc'
+
+ if [[ -z "$VERSION" || -z "$RC" ]]; then
+ echo "Error: Unable to parse VERSION or RC from tag ($TAG).
Ensure the tag format is correct."
+ exit 1
+ fi
+ else
+ echo "Workflow triggered manually via workflow_dispatch."
+ VERSION="${{ github.event.inputs.version }}"
+ RC="${{ github.event.inputs.rc }}"
+
+ # Validate version (e.g., 1.0.0)
+ if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
+ echo "Error: version ($VERSION) must be in the format:
<number>.<number>.<number>"
+ exit 1
+ fi
+
+ # Validate rc (e.g., 1)
+ if [[ ! "$RC" =~ ^[0-9]+$ ]]; then
+ echo "Error: rc ($RC) must be in the format: <number>"
+ exit 1
+ fi
+ fi
+
+ # Export variables for future steps
+ echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
+ echo "RC=$RC" >> $GITHUB_OUTPUT
+
+ - name: Display Extracted Version and RC
+ run: |
+ echo "Using Version: ${{ steps.validate-inputs.outputs.VERSION }}"
+ echo "Using RC: ${{ steps.validate-inputs.outputs.RC }}"
+
+ validate-library-version:
+ runs-on: ubuntu-latest
+ needs:
+ - validate-inputs
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 1
+
+ - uses: actions/setup-python@v5
+ with:
+ python-version: 3.12
+
+ - name: Install Poetry
+ run: |
+ pip install poetry
Review Comment:
Should we reuse `make install-poetry` here? In the Makefile we pin the
version of Poetry
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]