mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 03:25:56 +08:00
Add scheduled releases and comprehensive release notes
Adjusted the GitHub Actions workflow to include two scheduled releases at 4:15 CET (main branch) and 9:15 CET (release branch) per day. The release notes now have a more comprehensive and detailed structure, with current nightly or beta branch statuses for different sections such as nightlies, unit test results, and Conan packages.
This commit is contained in:
parent
c3ed31583b
commit
1d07a861fc
55
.github/workflows/installers.yml
vendored
55
.github/workflows/installers.yml
vendored
@ -31,8 +31,9 @@ on:
|
|||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
schedule:
|
schedule:
|
||||||
# Daily at 5:15 CET
|
# Daily at 4:15 CET (main-branch) and 9:15 CET (release-branch)
|
||||||
- cron: '15 3 * * *'
|
- cron: '15 2 * * *'
|
||||||
|
- cron: '15 8 * * *'
|
||||||
|
|
||||||
env:
|
env:
|
||||||
CURA_CONAN_VERSION: ${{ inputs.cura_conan_version || 'cura/latest@ultimaker/testing' }}
|
CURA_CONAN_VERSION: ${{ inputs.cura_conan_version || 'cura/latest@ultimaker/testing' }}
|
||||||
@ -52,7 +53,19 @@ jobs:
|
|||||||
shell: python
|
shell: python
|
||||||
run: |
|
run: |
|
||||||
import os
|
import os
|
||||||
cura_conan_version = "cura/latest@ultimaker/testing" if "${{ github.event.inputs.cura_conan_version }}" == "" else "${{ github.event.inputs.cura_conan_version }}"
|
import datetime
|
||||||
|
cura_conan_version = "cura/latest@ultimaker/testing"
|
||||||
|
release_tag = "nightly"
|
||||||
|
|
||||||
|
# Get current UTC time
|
||||||
|
now = datetime.datetime.utcnow()
|
||||||
|
|
||||||
|
# Check if current hour is 8
|
||||||
|
if now.hour == 8:
|
||||||
|
cura_conan_version = "cura/latest@ultimaker/stable"
|
||||||
|
release_tag = "nightly-5.6"
|
||||||
|
|
||||||
|
# Set cura_conan_version environment variable
|
||||||
output_env = os.environ["GITHUB_OUTPUT"]
|
output_env = os.environ["GITHUB_OUTPUT"]
|
||||||
content = ""
|
content = ""
|
||||||
if os.path.exists(output_env):
|
if os.path.exists(output_env):
|
||||||
@ -61,6 +74,7 @@ jobs:
|
|||||||
with open(output_env, "w") as f:
|
with open(output_env, "w") as f:
|
||||||
f.write(content)
|
f.write(content)
|
||||||
f.writelines(f"cura_conan_version={cura_conan_version}\n")
|
f.writelines(f"cura_conan_version={cura_conan_version}\n")
|
||||||
|
f.writelines(f"release_tag={release_tag}\n")
|
||||||
|
|
||||||
windows-installer:
|
windows-installer:
|
||||||
uses: ./.github/workflows/windows.yml
|
uses: ./.github/workflows/windows.yml
|
||||||
@ -182,8 +196,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Update nightly release for Linux
|
- name: Update nightly release for Linux
|
||||||
run: |
|
run: |
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-X64.AppImage --clobber
|
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-X64.AppImage --clobber
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-X64.AppImage.asc --clobber
|
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-X64.AppImage.asc --clobber
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
@ -206,8 +220,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Update nightly release for Windows
|
- name: Update nightly release for Windows
|
||||||
run: |
|
run: |
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.msi --clobber
|
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.msi --clobber
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.exe --clobber
|
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.exe --clobber
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
@ -230,8 +244,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Update nightly release for MacOS (X64)
|
- name: Update nightly release for MacOS (X64)
|
||||||
run: |
|
run: |
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.dmg --clobber
|
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.dmg --clobber
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.pkg --clobber
|
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.pkg --clobber
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
@ -254,14 +268,31 @@ jobs:
|
|||||||
|
|
||||||
- name: Update nightly release for MacOS (ARM-64)
|
- name: Update nightly release for MacOS (ARM-64)
|
||||||
run: |
|
run: |
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.dmg --clobber
|
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.dmg --clobber
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.pkg --clobber
|
gh release upload ${{ needs.default-values.outputs.release_tag }} installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.pkg --clobber
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: create the release notes
|
||||||
|
run: |
|
||||||
|
import os
|
||||||
|
import datetime
|
||||||
|
from jinja2 import Template
|
||||||
|
|
||||||
|
with open(".github/workflows/release-notes.md.jinja", "r") as f:
|
||||||
|
release_notes = Template(f.read())
|
||||||
|
|
||||||
|
current_nightly_beta = "${{ needs.default-values.outputs.release_tag }}".split("nightly-")[-1]
|
||||||
|
with open("release-notes.md", "w") as f:
|
||||||
|
f.write(release_notes.render(
|
||||||
|
timestamp=${{ steps.filename.outputs.NIGHTLY_TIME }},
|
||||||
|
branch="" if ${{ needs.default-values.outputs.release_tag == 'nightly' }} else current_nightly_beta,
|
||||||
|
branch_specific="" if os.getenv("GITHUB_REF") == "refs/heads/main" else f"?branch={current_nightly_beta}",
|
||||||
|
))
|
||||||
|
|
||||||
- name: Update nightly release description (with date)
|
- name: Update nightly release description (with date)
|
||||||
if: always()
|
if: always()
|
||||||
run: |
|
run: |
|
||||||
gh release edit nightly --title "${{ steps.filename.outputs.NIGHTLY_NAME }}" --notes "Nightly release created on: ${{ steps.filename.outputs.NIGHTLY_TIME }}"
|
gh release edit ${{ needs.default-values.outputs.release_tag }} --title "${{ steps.filename.outputs.NIGHTLY_NAME }}" --notes-file release-notes.md
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
39
.github/workflows/release_notes.md.jinja
vendored
Normal file
39
.github/workflows/release_notes.md.jinja
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Nightlies
|
||||||
|
|
||||||
|
> :clock12: Created at: {{ timestamp }}
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|--------------:|--------------------------------------------------------------------------------------------|
|
||||||
|
| **Nightlies** | [](https://github.com/Ultimaker/Cura/actions/workflows/installers.yml) |
|
||||||
|
|
||||||
|
# Unit Test results
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|-------------------------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
| **Cura {{ branch }}** | [](https://github.com/Ultimaker/Cura/actions/workflows/unit-test.yml) |
|
||||||
|
| **CuraEngine {{ branch }}** | [](https://github.com/Ultimaker/CuraEngine/actions/workflows/unit-test.yml) |
|
||||||
|
| **Uranium {{ branch }}** | [](https://github.com/Ultimaker/Uranium/actions/workflows/unit-test.yml) |
|
||||||
|
| **CuraEngine GradualFlow 0.1** | [](https://github.com/Ultimaker/CuraEngine_plugin_gradual_flow/actions/workflows/unit-test.yml) |
|
||||||
|
| **synsepalum-dulcificum 0.1** | [](https://github.com/Ultimaker/synsepalum-dulcificum/actions/workflows/unit-test.yml) |
|
||||||
|
| **libSavitar** | [](https://github.com/Ultimaker/libSavitar/actions/workflows/unit-test.yml) |
|
||||||
|
| **libnest2d** | [](https://github.com/Ultimaker/libnest2d/actions/workflows/unit-test.yml) |
|
||||||
|
|
||||||
|
# Conan packages
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|------------------------------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
|
| **Cura {{ branch }}** | [](https://github.com/Ultimaker/Cura/actions/workflows/conan-package.yml) |
|
||||||
|
| **CuraEngine {{ branch }}** | [](https://github.com/Ultimaker/CuraEngine/actions/workflows/conan-package.yml) |
|
||||||
|
| **Uranium {{ branch }}** | [](https://github.com/Ultimaker/Uranium/actions/workflows/conan-package.yml) |
|
||||||
|
| **fdm_materials {{ branch }}** | [](https://github.com/Ultimaker/fdm_materials/actions/workflows/conan-package.yml) |
|
||||||
|
| **cura-binary-data {{ branch }}** | [](https://github.com/Ultimaker/cura-binary-data/actions/workflows/conan-package.yml) |
|
||||||
|
| **CuraEngine GradualFlow 0.1** | [](https://github.com/Ultimaker/CuraEngine_plugin_gradual_flow/actions/workflows/conan-package.yml) |
|
||||||
|
| **synsepalum-dulcificum 0.1** | [](https://github.com/Ultimaker/synsepalum-dulcificum/actions/workflows/conan-package.yml) |
|
||||||
|
| **CuraEngine gRPC definitions 0.1** | [](https://github.com/Ultimaker/CuraEngine_grpc_definitions/actions/workflows/conan-package.yml) |
|
||||||
|
| **libArcus** | [](https://github.com/Ultimaker/libArcus/actions/workflows/conan-package.yml) |
|
||||||
|
| **pyArcus** | [](https://github.com/Ultimaker/pyArcus/actions/workflows/conan-package.yml) |
|
||||||
|
| **libSavitar** | [](https://github.com/Ultimaker/libSavitar/actions/workflows/conan-package.yml) |
|
||||||
|
| **pySavitar** | [](https://github.com/Ultimaker/pySavitar/actions/workflows/conan-package.yml) |
|
||||||
|
| **libnest2d** | [](https://github.com/Ultimaker/libnest2d/actions/workflows/conan-package.yml) |
|
||||||
|
| **pynest2d** | [](https://github.com/Ultimaker/pynest2d/actions/workflows/conan-package.yml) |
|
Loading…
x
Reference in New Issue
Block a user