Skip to content

LuxCore Python Wheels Releaser #8

LuxCore Python Wheels Releaser

LuxCore Python Wheels Releaser #8

Workflow file for this run

# SPDX-FileCopyrightText: 2024 Howetuft
#
#
# SPDX-License-Identifier: Apache-2.0
name: LuxCore Python Wheels Releaser
on:
workflow_dispatch:
inputs:
release-name:
description: "Release title"
required: False
default: LuxCore Wheels
type: string
release-version:
description: "Release version (default: dev0)"
required: False
default: ''
type: string
allow-updates:
description: "Update existing release (if any)"
required: True
type: boolean
default: True
rebuild-all:
description: "Rebuild all"
required: True
type: boolean
default: False
jobs:
check-version:
name: 'Check version compliance'

Check failure on line 34 in .github/workflows/release.yml

View workflow run for this annotation

GitHub Actions / LuxCore Python Wheels Releaser

Invalid workflow file

The workflow is not valid. .github/workflows/release.yml (Line: 34, Col: 5): Required property is missing: runs-on
steps:
- if: ${{ inputs.release-version != '' }}
shell: python
run: |
import sys
import re
version = "${{ inputs.release-version }}"
semver_regex = r"^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$"
res = re.fullmatch(semver_regex, version)
if res:
print(res)
else:
print(f"Invalid version number '{version}' - (see https://semver.org)")
sys.exit(1)
# Reminder: don't forget to update call-build-wheels commit version if you
# upgrade LuxCoreRender/LuxCore/.github/workflows/wheels.yml, otherwise
# your modifications won't be taken into account
call-build-wheels:
name: 'Build wheels'
needs: [check-version]
uses: LuxCoreRender/LuxCore/.github/workflows/wheels.yml@cbbdcbcd4119a981b36599a362c8792bdb7f0711
with:
repository: LuxCoreRender/LuxCore
version: ${{ inputs.release-version }}
create-release:
name: 'Create release'
if: github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
needs: [call-build-wheels]
permissions:
id-token: write
attestations: write
contents: write
steps:
- run: |
echo "Creating release '${{ inputs.release-version }}'"
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
pattern: cibw-wheels-*
path: ${{ github.workspace }}/dist
merge-multiple: false
- name: Display structure of downloaded files
run: ls -Rl ${{ github.workspace }}/dist
- name: Re-zip artifacts
working-directory: ${{ github.workspace }}/dist
run: |
mkdir ../artifacts
for d in */ ; do
d2=${d%/}
echo "zip ${d2}"
zip -j ../artifacts/${d2}.zip ${d2}/*
done
- id: make-release
# Use full length commit SHA, otherwise CodeQL complains...
uses: ncipollo/release-action@cdcc88a9acf3ca41c16c37bb7d21b9ad48560d87
with:
name: "${{ inputs.release-name }} ${{ inputs.release-tag }}"
tag: ${{ inputs.release-tag }}
artifacts: artifacts/*
removeArtifacts: true
allowUpdates: ${{ inputs.allow-updates }}
prerelease: ${{ inputs.prerelease }}
token: ${{ secrets.GITHUB_TOKEN }}
updateOnlyUnreleased: true
draft: true
body: |
## LuxCore Python Wheels
This release is built from the following point in LuxCoreRender/LuxCore:
- Branch: ${{ needs.call-build-wheels.outputs.branch }}
- Commit: ${{ needs.call-build-wheels.outputs.commit }}
Attestations:
${{ needs.call-build-wheels.outputs.attestation-url }}
- run: |
echo "### Release""" >> $GITHUB_STEP_SUMMARY
echo ${{ steps.make-release.outputs.html_url }} >> $GITHUB_STEP_SUMMARY