mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-18 01:35:55 +08:00
Don't parallelize installer creation
Zipping -> uploading -> downloading unzipping cost the same amount of time, while it also increased the complexity. Contributes to CURA-8415
This commit is contained in:
parent
c686326e22
commit
78d555144e
121
.github/workflows/macos.yml
vendored
121
.github/workflows/macos.yml
vendored
@ -241,137 +241,30 @@ jobs:
|
|||||||
for package in pkg_resources.working_set:
|
for package in pkg_resources.working_set:
|
||||||
f.writelines(f"`{package.key}/{package.version}`\n")
|
f.writelines(f"`{package.key}/{package.version}`\n")
|
||||||
|
|
||||||
- name: Archive the artifacts (bash)
|
|
||||||
run: |
|
|
||||||
tar -zcf "./${{ steps.filename.outputs.INSTALLER_FILENAME }}.tar.gz" "./dist/"
|
|
||||||
tar -zcf "./${{ steps.filename.outputs.INSTALLER_FILENAME }}-package.tar.gz" "./cura_inst/packaging/"
|
|
||||||
|
|
||||||
- name: upload the tarred dist and packaging folder
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: dist
|
|
||||||
path: |
|
|
||||||
${{ steps.filename.outputs.INSTALLER_FILENAME }}.tar.gz
|
|
||||||
${{ steps.filename.outputs.INSTALLER_FILENAME }}-package.tar.gz
|
|
||||||
retention-days: 5
|
|
||||||
|
|
||||||
cura-installer-create-dmg:
|
|
||||||
needs: [ cura-installer-create ]
|
|
||||||
runs-on: macos-11
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Python
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: '3.10.x'
|
|
||||||
|
|
||||||
- name: Download the dist
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: dist
|
|
||||||
|
|
||||||
- name: untar the dist folder
|
|
||||||
run: |
|
|
||||||
tar -zxf "./${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.tar.gz"
|
|
||||||
tar -zxf "./${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}-package.tar.gz"
|
|
||||||
|
|
||||||
- name: Remove Macos keychain (Bash)
|
|
||||||
run: security delete-keychain signing_temp.keychain || true
|
|
||||||
|
|
||||||
- name: Configure Macos keychain Developer Cert(Bash)
|
|
||||||
id: macos-keychain-developer-cert
|
|
||||||
uses: apple-actions/import-codesign-certs@v1
|
|
||||||
with:
|
|
||||||
keychain-password: ${{ secrets.MACOS_KEYCHAIN_PASSWORD }}
|
|
||||||
p12-file-base64: ${{ secrets.MACOS_CERT_P12 }}
|
|
||||||
p12-password: ${{ secrets.MACOS_CERT_PASSPHRASE }}
|
|
||||||
|
|
||||||
- name: Configure Macos keychain Installer Cert (Bash)
|
|
||||||
id: macos-keychain-installer-cert
|
|
||||||
uses: apple-actions/import-codesign-certs@v1
|
|
||||||
with:
|
|
||||||
keychain-password: ${{ secrets.MACOS_KEYCHAIN_PASSWORD }}
|
|
||||||
create-keychain: false # keychain is created in previous use of action.
|
|
||||||
p12-file-base64: ${{ secrets.MACOS_CERT_INSTALLER_P12 }}
|
|
||||||
p12-password: ${{ secrets.MACOS_CERT_PASSPHRASE }}
|
|
||||||
|
|
||||||
- name: Install MacOS system requirements
|
|
||||||
run: brew install create-dmg
|
|
||||||
|
|
||||||
- name: Create the Macos dmg (Bash)
|
- name: Create the Macos dmg (Bash)
|
||||||
run: python ../cura_inst/packaging/MacOS/build_macos.py --source_path ../cura_inst --dist_path . --cura_conan_version $CURA_CONAN_VERSION --filename "${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}" --build_dmg --app_name "$CURA_APP_NAME"
|
run: python ../cura_inst/packaging/MacOS/build_macos.py --source_path ../cura_inst --dist_path . --cura_conan_version $CURA_CONAN_VERSION --filename "${{ steps.filename.outputs.INSTALLER_FILENAME }}" --build_dmg --build_pkg --app_name "$CURA_APP_NAME"
|
||||||
working-directory: dist
|
working-directory: dist
|
||||||
|
|
||||||
- name: Upload the dmg
|
- name: Upload the dmg
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}-dmg
|
name: ${{ steps.filename.outputs.INSTALLER_FILENAME }}-dmg
|
||||||
path: |
|
path: |
|
||||||
dist/${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.dmg
|
dist/${{ steps.filename.outputs.INSTALLER_FILENAME }}.dmg
|
||||||
retention-days: 5
|
retention-days: 5
|
||||||
|
|
||||||
cura-installer-create-pkg:
|
|
||||||
needs: [ cura-installer-create ]
|
|
||||||
runs-on: macos-11
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Python
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: '3.10.x'
|
|
||||||
|
|
||||||
- name: Download the dist
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: dist
|
|
||||||
|
|
||||||
- name: untar the dist folder
|
|
||||||
run: |
|
|
||||||
tar -zxf "./${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.tar.gz"
|
|
||||||
tar -zxf "./${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}-package.tar.gz"
|
|
||||||
|
|
||||||
- name: Remove Macos keychain (Bash)
|
|
||||||
run: security delete-keychain signing_temp.keychain || true
|
|
||||||
|
|
||||||
- name: Configure Macos keychain Developer Cert(Bash)
|
|
||||||
id: macos-keychain-developer-cert
|
|
||||||
uses: apple-actions/import-codesign-certs@v1
|
|
||||||
with:
|
|
||||||
keychain-password: ${{ secrets.MACOS_KEYCHAIN_PASSWORD }}
|
|
||||||
p12-file-base64: ${{ secrets.MACOS_CERT_P12 }}
|
|
||||||
p12-password: ${{ secrets.MACOS_CERT_PASSPHRASE }}
|
|
||||||
|
|
||||||
- name: Configure Macos keychain Installer Cert (Bash)
|
|
||||||
id: macos-keychain-installer-cert
|
|
||||||
uses: apple-actions/import-codesign-certs@v1
|
|
||||||
with:
|
|
||||||
keychain-password: ${{ secrets.MACOS_KEYCHAIN_PASSWORD }}
|
|
||||||
create-keychain: false # keychain is created in previous use of action.
|
|
||||||
p12-file-base64: ${{ secrets.MACOS_CERT_INSTALLER_P12 }}
|
|
||||||
p12-password: ${{ secrets.MACOS_CERT_PASSPHRASE }}
|
|
||||||
|
|
||||||
- name: Install MacOS system requirements
|
|
||||||
run: brew install create-dmg
|
|
||||||
|
|
||||||
- name: Create the Macos pkg (Bash)
|
|
||||||
run: python ../cura_inst/packaging/MacOS/build_macos.py --source_path ../cura_inst --dist_path . --cura_conan_version $CURA_CONAN_VERSION --filename "${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}" --build_pkg --app_name "$CURA_APP_NAME"
|
|
||||||
working-directory: dist
|
|
||||||
|
|
||||||
- name: Upload the pkg
|
- name: Upload the pkg
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}-pkg
|
name: ${{ steps.filename.outputs.INSTALLER_FILENAME }}-pkg
|
||||||
path: |
|
path: |
|
||||||
dist/${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.pkg
|
dist/${{ steps.filename.outputs.INSTALLER_FILENAME }}.pkg
|
||||||
retention-days: 5
|
retention-days: 5
|
||||||
|
|
||||||
|
|
||||||
notify-export:
|
notify-export:
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
needs: [ cura-installer-create-dmg, cura-installer-create-pkg ]
|
needs: [ cura-installer-create ]
|
||||||
|
|
||||||
uses: ultimaker/cura/.github/workflows/notify.yml@main
|
uses: ultimaker/cura/.github/workflows/notify.yml@main
|
||||||
with:
|
with:
|
||||||
|
115
.github/workflows/windows.yml
vendored
115
.github/workflows/windows.yml
vendored
@ -199,91 +199,6 @@ jobs:
|
|||||||
for package in pkg_resources.working_set:
|
for package in pkg_resources.working_set:
|
||||||
f.writelines(f"`{package.key}/{package.version}`\n")
|
f.writelines(f"`{package.key}/{package.version}`\n")
|
||||||
|
|
||||||
- name: Archive the artifacts (Powershell)
|
|
||||||
run: Compress-Archive -Force -CompressionLevel NoCompression -Path @('.\dist', '.\cura_inst\packaging') -DestinationPath ".\${{ steps.filename.outputs.INSTALLER_FILENAME }}.zip"
|
|
||||||
shell: powershell
|
|
||||||
|
|
||||||
- name: upload the zipped dist and packaging folder
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: dist-windows
|
|
||||||
path: |
|
|
||||||
${{ steps.filename.outputs.INSTALLER_FILENAME }}.zip
|
|
||||||
retention-days: 1
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
cura-installer-create-exe:
|
|
||||||
needs: [ cura-installer-create ]
|
|
||||||
runs-on: ${{ inputs.operating_system }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Python
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: '3.10.x'
|
|
||||||
|
|
||||||
- name: Download the zipped dist
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: dist-windows
|
|
||||||
|
|
||||||
- name: Extract the zipped dist
|
|
||||||
run: Expand-Archive -Force -Path ".\${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.zip" -DestinationPath .
|
|
||||||
shell: powershell
|
|
||||||
|
|
||||||
- name: Create PFX certificate from BASE64_PFX_CONTENT secret
|
|
||||||
id: create-pfx
|
|
||||||
env:
|
|
||||||
PFX_CONTENT: ${{ secrets.WIN_CERT_INSTALLER_CER }}
|
|
||||||
run: |
|
|
||||||
$pfxPath = Join-Path -Path $env:RUNNER_TEMP -ChildPath "cert.pfx";
|
|
||||||
$encodedBytes = [System.Convert]::FromBase64String($env:PFX_CONTENT);
|
|
||||||
Set-Content $pfxPath -Value $encodedBytes -AsByteStream;
|
|
||||||
echo "PFX_PATH=$pfxPath" >> $env:GITHUB_OUTPUT;
|
|
||||||
|
|
||||||
- name: Create the Windows exe installer (Powershell)
|
|
||||||
run: |
|
|
||||||
python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.exe"
|
|
||||||
working-directory: dist
|
|
||||||
|
|
||||||
- name: Sign the Windows exe installer (Powershell)
|
|
||||||
env:
|
|
||||||
PFX_PATH: ${{ steps.create-pfx.outputs.PFX_PATH }}
|
|
||||||
run: |
|
|
||||||
& "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe" sign /f $Env:PFX_PATH /p "$Env:WIN_CERT_INSTALLER_CER_PASS" /fd SHA256 /t http://timestamp.digicert.com "${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.exe"
|
|
||||||
working-directory: dist
|
|
||||||
|
|
||||||
- name: Upload the exe
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: ${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}-exe
|
|
||||||
path: |
|
|
||||||
dist/${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.exe
|
|
||||||
retention-days: 5
|
|
||||||
|
|
||||||
cura-installer-create-msi:
|
|
||||||
needs: [ cura-installer-create ]
|
|
||||||
runs-on: ${{ inputs.operating_system }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup Python
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: '3.10.x'
|
|
||||||
|
|
||||||
- name: Download the zipped dist
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: dist-windows
|
|
||||||
|
|
||||||
- name: Extract the zipped dist
|
|
||||||
run: Expand-Archive -Force -Path ".\${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.zip" -DestinationPath .
|
|
||||||
shell: powershell
|
|
||||||
|
|
||||||
- name: Create PFX certificate from BASE64_PFX_CONTENT secret
|
- name: Create PFX certificate from BASE64_PFX_CONTENT secret
|
||||||
id: create-pfx
|
id: create-pfx
|
||||||
env:
|
env:
|
||||||
@ -296,27 +211,47 @@ jobs:
|
|||||||
|
|
||||||
- name: Create the Windows msi installer (Powershell)
|
- name: Create the Windows msi installer (Powershell)
|
||||||
run: |
|
run: |
|
||||||
python ..\cura_inst\packaging\msi\create_windows_msi.py ..\cura_inst .\UltiMaker-Cura "${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.msi" "$Env:CURA_APP_NAME"
|
python ..\cura_inst\packaging\msi\create_windows_msi.py ..\cura_inst .\UltiMaker-Cura "${{steps.filename.outputs.INSTALLER_FILENAME }}.msi" "$Env:CURA_APP_NAME"
|
||||||
working-directory: dist
|
working-directory: dist
|
||||||
|
|
||||||
- name: Sign the Windows msi installer (Powershell)
|
- name: Sign the Windows msi installer (Powershell)
|
||||||
env:
|
env:
|
||||||
PFX_PATH: ${{ steps.create-pfx.outputs.PFX_PATH }}
|
PFX_PATH: ${{ steps.create-pfx.outputs.PFX_PATH }}
|
||||||
run: |
|
run: |
|
||||||
& "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe" sign /f $Env:PFX_PATH /p "$Env:WIN_CERT_INSTALLER_CER_PASS" /fd SHA256 /t http://timestamp.digicert.com "${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.msi"
|
& "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe" sign /f $Env:PFX_PATH /p "$Env:WIN_CERT_INSTALLER_CER_PASS" /fd SHA256 /t http://timestamp.digicert.com "${{steps.filename.outputs.INSTALLER_FILENAME }}.msi"
|
||||||
|
working-directory: dist
|
||||||
|
|
||||||
|
- name: Create the Windows exe installer (Powershell)
|
||||||
|
run: |
|
||||||
|
python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "${{steps.filename.outputs.INSTALLER_FILENAME }}.exe"
|
||||||
|
working-directory: dist
|
||||||
|
|
||||||
|
- name: Sign the Windows exe installer (Powershell)
|
||||||
|
env:
|
||||||
|
PFX_PATH: ${{ steps.create-pfx.outputs.PFX_PATH }}
|
||||||
|
run: |
|
||||||
|
& "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe" sign /f $Env:PFX_PATH /p "$Env:WIN_CERT_INSTALLER_CER_PASS" /fd SHA256 /t http://timestamp.digicert.com "${{steps.filename.outputs.INSTALLER_FILENAME }}.exe"
|
||||||
working-directory: dist
|
working-directory: dist
|
||||||
|
|
||||||
- name: Upload the msi
|
- name: Upload the msi
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}-msi
|
name: ${{steps.filename.outputs.INSTALLER_FILENAME }}-msi
|
||||||
path: |
|
path: |
|
||||||
dist/${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.msi
|
dist/${{steps.filename.outputs.INSTALLER_FILENAME }}.msi
|
||||||
|
retention-days: 5
|
||||||
|
|
||||||
|
- name: Upload the exe
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{steps.filename.outputs.INSTALLER_FILENAME }}-exe
|
||||||
|
path: |
|
||||||
|
dist/${{steps.filename.outputs.INSTALLER_FILENAME }}.exe
|
||||||
retention-days: 5
|
retention-days: 5
|
||||||
|
|
||||||
notify-export:
|
notify-export:
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
needs: [ cura-installer-create-exe, cura-installer-create-msi ]
|
needs: [ cura-installer-create ]
|
||||||
|
|
||||||
uses: ultimaker/cura/.github/workflows/notify.yml@main
|
uses: ultimaker/cura/.github/workflows/notify.yml@main
|
||||||
with:
|
with:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user