mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-15 22:05:51 +08:00
Merge branch 'main' into CURA-10475_engineplugin
# Conflicts: # .github/workflows/installers.yml
This commit is contained in:
commit
38133980fc
94
.github/workflows/installers.yml
vendored
94
.github/workflows/installers.yml
vendored
@ -31,7 +31,7 @@ on:
|
|||||||
type: boolean
|
type: boolean
|
||||||
os_list:
|
os_list:
|
||||||
description: 'List of OS(-variant)s to build for'
|
description: 'List of OS(-variant)s to build for'
|
||||||
default: "windows, linux-modern, macos-x64, macos-arm64"
|
default: "windows, linux`, macos-x64, macos-arm64"
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
schedule:
|
schedule:
|
||||||
@ -39,55 +39,57 @@ on:
|
|||||||
- cron: '20 4 * * *'
|
- cron: '20 4 * * *'
|
||||||
|
|
||||||
env:
|
env:
|
||||||
CURA_CONAN_VERSION: ${{ inputs.cura_conan_version }}
|
CURA_CONAN_VERSION: ${{ inputs.cura_conan_version || 'cura/latest@ultimaker/testing' }}
|
||||||
ENTERPRISE: ${{ inputs.enterprise }}
|
CONAN_ARGS: ${{ inputs.conan_args || '' }}
|
||||||
STAGING: ${{ inputs.staging }}
|
ENTERPRISE: ${{ inputs.enterprise || false }}
|
||||||
|
STAGING: ${{ inputs.staging || false }}
|
||||||
|
OS_LIST: ${{ inputs.os_list || 'windows, linux, macos-x64, macos-arm64' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
windows-installer:
|
windows-installer:
|
||||||
if: ${{ contains(inputs.os_list, 'windows') || github.event_name == 'schedule' }}
|
if: ${{ contains(github.event.inputs.os_list, 'windows') || github.event_name == 'schedule' }}
|
||||||
uses: ./.github/workflows/windows.yml
|
uses: ./.github/workflows/windows.yml
|
||||||
with:
|
with:
|
||||||
cura_conan_version: ${{ inputs.cura_conan_version }}
|
cura_conan_version: ${{ github.event.inputs.CURA_CONAN_VERSION }}
|
||||||
conan_args: ${{ inputs.conan_args }}
|
conan_args: ${{ github.event.inputs.conan_args }}
|
||||||
enterprise: ${{ inputs.enterprise }}
|
enterprise: ${{ github.event.inputs.enterprise == 'true' }}
|
||||||
staging: ${{ inputs.staging }}
|
staging: ${{ github.event.inputs.staging == 'true' }}
|
||||||
architecture: X64
|
architecture: X64
|
||||||
operating_system: windows-2022
|
operating_system: windows-2022
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
|
|
||||||
linux-modern-installer:
|
linux-modern-installer:
|
||||||
if: ${{ contains(inputs.os_list, 'linux-modern') || github.event_name == 'schedule' }}
|
if: ${{ contains(github.event.inputs.os_list, 'linux') || github.event_name == 'schedule' }}
|
||||||
uses: ./.github/workflows/linux.yml
|
uses: ./.github/workflows/linux.yml
|
||||||
with:
|
with:
|
||||||
cura_conan_version: ${{ inputs.cura_conan_version }}
|
cura_conan_version: ${{ github.event.inputs.CURA_CONAN_VERSION }}
|
||||||
conan_args: ${{ inputs.conan_args }}
|
conan_args: ${{ github.event.inputs.conan_args }}
|
||||||
enterprise: ${{ inputs.enterprise }}
|
enterprise: ${{ github.event.inputs.enterprise == 'true' }}
|
||||||
staging: ${{ inputs.staging }}
|
staging: ${{ github.event.inputs.staging == 'true' }}
|
||||||
architecture: X64
|
architecture: X64
|
||||||
operating_system: ubuntu-22.04
|
operating_system: ubuntu-22.04
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
|
|
||||||
macos-installer:
|
macos-installer:
|
||||||
if: ${{ contains(inputs.os_list, 'macos-x64') }}
|
if: ${{ contains(github.event.inputs.os_list, 'macos-x64') || github.event_name == 'schedule' }}
|
||||||
uses: ./.github/workflows/macos.yml
|
uses: ./.github/workflows/macos.yml
|
||||||
with:
|
with:
|
||||||
cura_conan_version: ${{ inputs.cura_conan_version }}
|
cura_conan_version: ${{ github.event.inputs.CURA_CONAN_VERSION }}
|
||||||
conan_args: ${{ inputs.conan_args }}
|
conan_args: ${{ github.event.inputs.conan_args }}
|
||||||
enterprise: ${{ inputs.enterprise }}
|
enterprise: ${{ github.event.inputs.enterprise == 'true' }}
|
||||||
staging: ${{ inputs.staging }}
|
staging: ${{ github.event.inputs.staging == 'true' }}
|
||||||
architecture: X64
|
architecture: X64
|
||||||
operating_system: macos-11.0
|
operating_system: macos-11.0
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
|
|
||||||
macos-arm-installer:
|
macos-arm-installer:
|
||||||
if: ${{ contains(inputs.os_list, 'macos-arm64') }}
|
if: ${{ contains(github.event.inputs.os_list, 'macos-arm64') || github.event_name == 'schedule' }}
|
||||||
uses: ./.github/workflows/macos.yml
|
uses: ./.github/workflows/macos.yml
|
||||||
with:
|
with:
|
||||||
cura_conan_version: ${{ inputs.cura_conan_version }}
|
cura_conan_version: ${{ github.event.inputs.CURA_CONAN_VERSION }}
|
||||||
conan_args: ${{ inputs.conan_args }}
|
conan_args: ${{ github.event.inputs.conan_args }}
|
||||||
enterprise: ${{ inputs.enterprise }}
|
enterprise: ${{ github.event.inputs.enterprise == 'true' }}
|
||||||
staging: ${{ inputs.staging }}
|
staging: ${{ github.event.inputs.staging == 'true' }}
|
||||||
architecture: ARM64
|
architecture: ARM64
|
||||||
operating_system: self-hosted
|
operating_system: self-hosted
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
@ -96,7 +98,7 @@ jobs:
|
|||||||
update-nightly-release:
|
update-nightly-release:
|
||||||
if: ${{ always() && (! cancelled()) && contains(needs.*.result, 'success') && (! contains(needs.*.result, 'failure')) && (inputs.nightly || github.event_name == 'schedule') }}
|
if: ${{ always() && (! cancelled()) && contains(needs.*.result, 'success') && (! contains(needs.*.result, 'failure')) && (inputs.nightly || github.event_name == 'schedule') }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [ windows-installer, linux-modern-installer, macos-installer, macos-arm-installer ]
|
needs: [ windows-installer, linux-installer, macos-installer, macos-arm-installer ]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
@ -104,19 +106,19 @@ jobs:
|
|||||||
# It's not necessary to download all three, but it does make sure we have at least one if an OS is skipped.
|
# It's not necessary to download all three, but it does make sure we have at least one if an OS is skipped.
|
||||||
|
|
||||||
- name: Download the run info
|
- name: Download the run info
|
||||||
if: ${{ contains(inputs.os_list, 'macos-x64') || contains(inputs.os_list, 'macos-arm64') }}
|
if: ${{ contains(github.event.inputs.os_list, 'macos-x64') || contains(inputs.os_list, 'macos-arm64') }}
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: macos-run-info
|
name: macos-run-info
|
||||||
|
|
||||||
- name: Download the run info II
|
- name: Download the run info II
|
||||||
if: ${{ contains(inputs.os_list, 'linux-modern') || github.event_name == 'schedule' }}
|
if: ${{ contains(github.event.inputs.os_list, 'linux') }}
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: linux-run-info
|
name: linux-run-info
|
||||||
|
|
||||||
- name: Download the run info III
|
- name: Download the run info III
|
||||||
if: ${{ contains(inputs.os_list, 'windows') || github.event_name == 'schedule' }}
|
if: ${{ contains(github.event.inputs.os_list, 'windows') }}
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: windows-run-info
|
name: windows-run-info
|
||||||
@ -131,11 +133,11 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
import os
|
import os
|
||||||
import datetime
|
import datetime
|
||||||
enterprise = "-Enterprise" if "${{ inputs.enterprise }}" == "true" else ""
|
enterprise = "-Enterprise" if "${{ env.ENTERPRISE }}" == "true" else ""
|
||||||
os_list = [x.strip() for x in "${{ inputs.os_list }}".split(",")]
|
os_list = [x.strip() for x in "${{ env.OS_LIST }}".split(",")]
|
||||||
scheduled = "${{ github.event_name == 'schedule' }}" == "true"
|
scheduled = "${{ github.event_name == 'schedule' }}" == "true"
|
||||||
if 'linux-modern' in os_list or scheduled:
|
if 'linux-modern' in os_list or scheduled:
|
||||||
linux_modern = f"UltiMaker-Cura-{os.getenv('CURA_VERSION_FULL')}{enterprise}-linux-modern-X64"
|
linux_modern = f"UltiMaker-Cura-{os.getenv('CURA_VERSION_FULL')}{enterprise}-linux-X64"
|
||||||
if 'macos-x64' in os_list:
|
if 'macos-x64' in os_list:
|
||||||
mac_x64_dmg = f"UltiMaker-Cura-{os.getenv('CURA_VERSION_FULL')}{enterprise}-macos-X64"
|
mac_x64_dmg = f"UltiMaker-Cura-{os.getenv('CURA_VERSION_FULL')}{enterprise}-macos-X64"
|
||||||
mac_x64_pkg = f"UltiMaker-Cura-{os.getenv('CURA_VERSION_FULL')}{enterprise}-macos-X64"
|
mac_x64_pkg = f"UltiMaker-Cura-{os.getenv('CURA_VERSION_FULL')}{enterprise}-macos-X64"
|
||||||
@ -169,86 +171,86 @@ jobs:
|
|||||||
f.writelines(f"NIGHTLY_TIME={nightly_creation_time}\n")
|
f.writelines(f"NIGHTLY_TIME={nightly_creation_time}\n")
|
||||||
|
|
||||||
- name: Download linux modern installer jobs artifacts
|
- name: Download linux modern installer jobs artifacts
|
||||||
if: ${{ contains(inputs.os_list, 'linux-modern') || github.event_name == 'schedule' }}
|
if: ${{ contains(github.event.inputs.os_list, 'linux-modern') }}
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ steps.filename.outputs.LINUX_MODERN }}-AppImage
|
name: ${{ steps.filename.outputs.LINUX_MODERN }}-AppImage
|
||||||
path: installers
|
path: installers
|
||||||
|
|
||||||
- name: Download mac x64 dmg installer jobs artifacts
|
- name: Download mac x64 dmg installer jobs artifacts
|
||||||
if: ${{ contains(inputs.os_list, 'macos-x64') }}
|
if: ${{ contains(github.event.inputs.os_list, 'macos-x64') }}
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ steps.filename.outputs.MAC_X64_DMG }}-dmg
|
name: ${{ steps.filename.outputs.MAC_X64_DMG }}-dmg
|
||||||
path: installers
|
path: installers
|
||||||
|
|
||||||
- name: Download mac x64 pkg installer jobs artifacts
|
- name: Download mac x64 pkg installer jobs artifacts
|
||||||
if: ${{ contains(inputs.os_list, 'macos-x64') }}
|
if: ${{ contains(github.event.inputs.os_list, 'macos-x64') }}
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ steps.filename.outputs.MAC_X64_PKG }}-pkg
|
name: ${{ steps.filename.outputs.MAC_X64_PKG }}-pkg
|
||||||
path: installers
|
path: installers
|
||||||
|
|
||||||
- name: Download mac arm dmg installer jobs artifacts
|
- name: Download mac arm dmg installer jobs artifacts
|
||||||
if: ${{ contains(inputs.os_list, 'macos-arm64') }}
|
if: ${{ contains(github.event.inputs.os_list, 'macos-arm64') }}
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ steps.filename.outputs.MAC_ARM_DMG }}-dmg
|
name: ${{ steps.filename.outputs.MAC_ARM_DMG }}-dmg
|
||||||
path: installers
|
path: installers
|
||||||
|
|
||||||
- name: Download mac arm pkg installer jobs artifacts
|
- name: Download mac arm pkg installer jobs artifacts
|
||||||
if: ${{ contains(inputs.os_list, 'macos-arm64') }}
|
if: ${{ contains(github.event.inputs.os_list, 'macos-arm64') }}
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ steps.filename.outputs.MAC_ARM_PKG }}-pkg
|
name: ${{ steps.filename.outputs.MAC_ARM_PKG }}-pkg
|
||||||
path: installers
|
path: installers
|
||||||
|
|
||||||
- name: Download win msi installer jobs artifacts
|
- name: Download win msi installer jobs artifacts
|
||||||
if: ${{ contains(inputs.os_list, 'windows') || github.event_name == 'schedule' }}
|
if: ${{ contains(github.event.inputs.os_list, 'windows') }}
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ steps.filename.outputs.WIN_MSI }}-msi
|
name: ${{ steps.filename.outputs.WIN_MSI }}-msi
|
||||||
path: installers
|
path: installers
|
||||||
|
|
||||||
- name: Download win exe installer jobs artifacts
|
- name: Download win exe installer jobs artifacts
|
||||||
if: ${{ contains(inputs.os_list, 'windows') || github.event_name == 'schedule' }}
|
if: ${{ contains(github.event.inputs.os_list, 'windows') }}
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ steps.filename.outputs.WIN_EXE }}-exe
|
name: ${{ steps.filename.outputs.WIN_EXE }}-exe
|
||||||
path: installers
|
path: installers
|
||||||
|
|
||||||
- name: Rename Linux (modern) installer to nightlies
|
- name: Rename Linux (modern) installer to nightlies
|
||||||
if: ${{ contains(inputs.os_list, 'linux-modern') || github.event_name == 'schedule' }}
|
if: ${{ contains(github.event.inputs.os_list, 'linux-modern') }}
|
||||||
run: |
|
run: |
|
||||||
mv installers/${{ steps.filename.outputs.LINUX_MODERN }}.AppImage installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-modern-X64.AppImage
|
mv installers/${{ steps.filename.outputs.LINUX_MODERN }}.AppImage installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-modern-X64.AppImage
|
||||||
|
|
||||||
- name: Rename MacOS (X64) installers to nightlies
|
- name: Rename MacOS (X64) installers to nightlies
|
||||||
if: ${{ contains(inputs.os_list, 'macos-x64') }}
|
if: ${{ contains(github.event.inputs.os_list, 'macos-x64') }}
|
||||||
run: |
|
run: |
|
||||||
mv installers/${{ steps.filename.outputs.MAC_X64_DMG }}.dmg installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.dmg
|
mv installers/${{ steps.filename.outputs.MAC_X64_DMG }}.dmg installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.dmg
|
||||||
mv installers/${{ steps.filename.outputs.MAC_X64_PKG }}.pkg installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.pkg
|
mv installers/${{ steps.filename.outputs.MAC_X64_PKG }}.pkg installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.pkg
|
||||||
|
|
||||||
- name: Rename MacOS (ARM-64) installers to nightlies
|
- name: Rename MacOS (ARM-64) installers to nightlies
|
||||||
if: ${{ contains(inputs.os_list, 'macos-arm64') }}
|
if: ${{ contains(github.event.inputs.os_list, 'macos-arm64') }}
|
||||||
run: |
|
run: |
|
||||||
mv installers/${{ steps.filename.outputs.MAC_ARM_DMG }}.dmg installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.dmg
|
mv installers/${{ steps.filename.outputs.MAC_ARM_DMG }}.dmg installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.dmg
|
||||||
mv installers/${{ steps.filename.outputs.MAC_ARM_PKG }}.pkg installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.pkg
|
mv installers/${{ steps.filename.outputs.MAC_ARM_PKG }}.pkg installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.pkg
|
||||||
|
|
||||||
- name: Rename Windows installers to nightlies
|
- name: Rename Windows installers to nightlies
|
||||||
if: ${{ contains(inputs.os_list, 'windows') || github.event_name == 'schedule' }}
|
if: ${{ contains(github.event.inputs.os_list, 'windows') }}
|
||||||
run: |
|
run: |
|
||||||
mv installers/${{ steps.filename.outputs.WIN_MSI }}.msi installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.msi
|
mv installers/${{ steps.filename.outputs.WIN_MSI }}.msi installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.msi
|
||||||
mv installers/${{ steps.filename.outputs.WIN_EXE }}.exe installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.exe
|
mv installers/${{ steps.filename.outputs.WIN_EXE }}.exe installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.exe
|
||||||
|
|
||||||
- name: Update nightly release for Linux (modern)
|
- name: Update nightly release for Linux (modern)
|
||||||
if: ${{ contains(inputs.os_list, 'linux-modern') || github.event_name == 'schedule' }}
|
if: ${{ contains(github.event.inputs.os_list, 'linux-modern') }}
|
||||||
run: |
|
run: |
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-modern-X64.AppImage --clobber
|
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-linux-modern-X64.AppImage --clobber
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Update nightly release for MacOS (X64)
|
- name: Update nightly release for MacOS (X64)
|
||||||
if: ${{ contains(inputs.os_list, 'macos-x64') }}
|
if: ${{ contains(github.event.inputs.os_list, 'macos-x64') }}
|
||||||
run: |
|
run: |
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.dmg --clobber
|
gh release upload nightly 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 nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-X64.pkg --clobber
|
||||||
@ -256,7 +258,7 @@ jobs:
|
|||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Update nightly release for MacOS (ARM-64)
|
- name: Update nightly release for MacOS (ARM-64)
|
||||||
if: ${{ contains(inputs.os_list, 'macos-arm64') }}
|
if: ${{ contains(github.event.inputs.os_list, 'macos-arm64') }}
|
||||||
run: |
|
run: |
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.dmg --clobber
|
gh release upload nightly 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 nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-macos-ARM64.pkg --clobber
|
||||||
@ -264,7 +266,7 @@ jobs:
|
|||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Update nightly release for Windows
|
- name: Update nightly release for Windows
|
||||||
if: ${{ contains(inputs.os_list, 'windows') || github.event_name == 'schedule' }}
|
if: ${{ contains(github.event.inputs.os_list, 'windows') }}
|
||||||
run: |
|
run: |
|
||||||
gh release upload nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.msi --clobber
|
gh release upload nightly 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 nightly installers/${{ steps.filename.outputs.NIGHTLY_NAME }}-win64-X64.exe --clobber
|
||||||
|
Loading…
x
Reference in New Issue
Block a user