diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index e5e8ead2cd..736c906dab 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -241,137 +241,30 @@ jobs: for package in pkg_resources.working_set: 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) - 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 - name: Upload the dmg uses: actions/upload-artifact@v3 with: - name: ${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}-dmg + name: ${{ steps.filename.outputs.INSTALLER_FILENAME }}-dmg path: | - dist/${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.dmg + dist/${{ steps.filename.outputs.INSTALLER_FILENAME }}.dmg 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 uses: actions/upload-artifact@v3 with: - name: ${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}-pkg + name: ${{ steps.filename.outputs.INSTALLER_FILENAME }}-pkg path: | - dist/${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}.pkg + dist/${{ steps.filename.outputs.INSTALLER_FILENAME }}.pkg retention-days: 5 + notify-export: if: ${{ always() }} - needs: [ cura-installer-create-dmg, cura-installer-create-pkg ] + needs: [ cura-installer-create ] uses: ultimaker/cura/.github/workflows/notify.yml@main with: diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 99327f9602..57bace2fef 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -199,91 +199,6 @@ jobs: for package in pkg_resources.working_set: 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 id: create-pfx env: @@ -296,27 +211,47 @@ jobs: - name: Create the Windows msi installer (Powershell) 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 - name: Sign the Windows msi 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 }}.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 - name: Upload the msi uses: actions/upload-artifact@v3 with: - name: ${{ needs.cura-installer-create.outputs.INSTALLER_FILENAME }}-msi + name: ${{steps.filename.outputs.INSTALLER_FILENAME }}-msi 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 notify-export: if: ${{ always() }} - needs: [ cura-installer-create-exe, cura-installer-create-msi ] + needs: [ cura-installer-create ] uses: ultimaker/cura/.github/workflows/notify.yml@main with: