Compare commits
	
		
			28 Commits
		
	
	
		
			jtran/pars
			...
			pierremtb/
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e8a82ea85e | |||
| c1894edaed | |||
| 8c28f34238 | |||
| d2340628a8 | |||
| a1f5cdd690 | |||
| d1d8d0a82c | |||
| f76b328136 | |||
| a13548da17 | |||
| 65f4b0f239 | |||
| dbcc0bd3b4 | |||
| 472b3618ac | |||
| 43e89e8bae | |||
| 94a9e01301 | |||
| 3980a1caf8 | |||
| d4f23f8469 | |||
| 9143c6f08a | |||
| 1d4456c458 | |||
| c6fbb4fc63 | |||
| b7c8d6c185 | |||
| f23aa5e642 | |||
| 8bb26c9b89 | |||
| 0d7aebdee9 | |||
| ad333c2055 | |||
| 3559df0c5e | |||
| e2dda07829 | |||
| ea585cb5d6 | |||
| 8af9af2aa7 | |||
| f0ba35c0b2 | 
							
								
								
									
										33
									
								
								.github/workflows/build-apps.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								.github/workflows/build-apps.yml
									
									
									
									
										vendored
									
									
								
							| @ -10,7 +10,8 @@ on: | ||||
|       - 'nightly-v[0-9]+.[0-9]+.[0-9]+' | ||||
|  | ||||
| env: | ||||
|   IS_RELEASE: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} | ||||
|   # IS_RELEASE: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} | ||||
|   IS_RELEASE: true | ||||
|   IS_NIGHTLY: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'nightly-v') }} | ||||
|  | ||||
| concurrency: | ||||
| @ -99,11 +100,11 @@ jobs: | ||||
|           yarn files:set-version | ||||
|           yarn files:flip-to-nightly | ||||
|  | ||||
|       - name: Set release version | ||||
|         if: ${{ env.IS_RELEASE == 'true' }} | ||||
|         run: | | ||||
|           export VERSION=${GITHUB_REF_NAME#v} | ||||
|           yarn files:set-version | ||||
|       # - name: Set release version | ||||
|       #   if: ${{ env.IS_RELEASE == 'true' }} | ||||
|       #   run: | | ||||
|       #     export VERSION=${GITHUB_REF_NAME#v} | ||||
|       #     yarn files:set-version | ||||
|  | ||||
|       - uses: actions/upload-artifact@v4 | ||||
|         with: | ||||
| @ -183,30 +184,32 @@ jobs: | ||||
|           max_attempts: 3 | ||||
|           command: yarn install | ||||
|  | ||||
|       # Next steps are from Digicert docs at | ||||
|       # https://docs.digicert.com/en/digicert-keylocker/ci-cd-integrations/scripts/github/scripts-for-signing-using-ksp-library-on-github.html#ksp-signing-using-github-action-488726 | ||||
|       - name: Prepare certificate and variables (Windows only) | ||||
|         if: ${{ (env.IS_RELEASE == 'true' || env.IS_NIGHTLY == 'true') && matrix.os == 'windows-2022' }} | ||||
|         run: | | ||||
|           echo "${{secrets.SM_CLIENT_CERT_FILE_B64 }}" | base64 --decode > /d/Certificate_pkcs12.p12 | ||||
|           cat /d/Certificate_pkcs12.p12 | ||||
|           echo "::set-output name=version::${GITHUB_REF#refs/tags/v}" | ||||
|           CERTIFICATE_PATH=$RUNNER_TEMP/certificate.p12 | ||||
|           echo "$SM_CLIENT_CERT_FILE_B64" | base64 --decode > $CERTIFICATE_PATH | ||||
|           echo "SM_CLIENT_CERT_FILE=$CERTIFICATE_PATH" >> "$GITHUB_ENV" | ||||
|           echo "SM_HOST=${{ secrets.SM_HOST }}" >> "$GITHUB_ENV" | ||||
|           echo "SM_API_KEY=${{ secrets.SM_API_KEY }}" >> "$GITHUB_ENV" | ||||
|           echo "SM_CLIENT_CERT_FILE=D:\\Certificate_pkcs12.p12" >> "$GITHUB_ENV" | ||||
|           echo "SM_CLIENT_CERT_PASSWORD=${{ secrets.SM_CLIENT_CERT_PASSWORD }}" >> "$GITHUB_ENV" | ||||
|           echo "C:\Program Files (x86)\Windows Kits\10\App Certification Kit" >> $GITHUB_PATH | ||||
|           echo "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools" >> $GITHUB_PATH | ||||
|           echo "C:\Program Files\DigiCert\DigiCert One Signing Manager Tools" >> $GITHUB_PATH | ||||
|           echo "C:\Program Files\DigiCert\DigiCert Keylocker Tools" >> $GITHUB_PATH | ||||
|         shell: bash | ||||
|  | ||||
|       - name: Setup certicate with SSM KSP (Windows only) | ||||
|         if: ${{ (env.IS_RELEASE == 'true' || env.IS_NIGHTLY == 'true') && matrix.os == 'windows-2022' }} | ||||
|         run: | | ||||
|           curl -X GET  https://one.digicert.com/signingmanager/api-ui/v1/releases/smtools-windows-x64.msi/download -H "x-api-key:%SM_API_KEY%" -o smtools-windows-x64.msi | ||||
|           msiexec /i smtools-windows-x64.msi /quiet /qn | ||||
|           curl -X GET  https://one.digicert.com/signingmanager/api-ui/v1/releases/Keylockertools-windows-x64.msi/download -H "x-api-key:%SM_API_KEY%" -o Keylockertools-windows-x64.msi | ||||
|           msiexec /i Keylockertools-windows-x64.msi /quiet /qn | ||||
|           smksp_registrar.exe list | ||||
|           smctl.exe keypair ls | ||||
|           C:\Windows\System32\certutil.exe -csp "DigiCert Signing Manager KSP" -key -user | ||||
|           smksp_cert_sync.exe | ||||
|           smctl windows certsync | ||||
|         shell: cmd | ||||
|  | ||||
|       - name: Build the app (debug) | ||||
| @ -225,8 +228,8 @@ jobs: | ||||
|           CSC_LINK: ${{ secrets.APPLE_CERTIFICATE }} | ||||
|           CSC_KEY_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | ||||
|           CSC_KEYCHAIN: ${{ secrets.APPLE_SIGNING_IDENTITY }} | ||||
|           WINDOWS_CERTIFICATE_THUMBPRINT: ${{ secrets.WINDOWS_CERTIFICATE_THUMBPRINT }} | ||||
|           DEBUG: "electron-notarize*" | ||||
|           # DEBUG: "electron-notarize*" | ||||
|           DEBUG: electron-builder | ||||
|         # TODO: Fix electron-notarize flakes. The logs above should help gather more data on failures | ||||
|         uses: nick-fields/retry@v3.0.2 | ||||
|         with: | ||||
|  | ||||
| @ -33,10 +33,12 @@ win: | ||||
|         - x64 | ||||
|         - arm64 | ||||
|   signtoolOptions: | ||||
|     sign: "./scripts/sign-win.js" | ||||
|     certificateSha1: F4C9A52FF7BC26EE5E054946F6B11DEEA94C748D | ||||
|     signingHashAlgorithms: | ||||
|       - sha256 | ||||
|     publisherName: "KittyCAD Inc" # needs to be exactly like on Digicert | ||||
|     publisherName: "KittyCAD Inc" | ||||
|     certificateSubjectName: "KittyCAD Inc" | ||||
|     rfc3161TimeStampServer: http://timestamp.digicert.com | ||||
|   icon: "assets/icon.ico" | ||||
|   fileAssociations: | ||||
|     - ext: kcl | ||||
|  | ||||
| @ -1,37 +0,0 @@ | ||||
| // From https://github.com/OpenBuilds/OpenBuilds-CONTROL/blob/4800540ffaa517925fc2cff26670809efa341ffe/signWin.js | ||||
| const { execSync } = require('node:child_process') | ||||
|  | ||||
| exports.default = async (configuration) => { | ||||
|   if (!process.env.SM_API_KEY) { | ||||
|     console.error( | ||||
|       'Signing using signWin.js script: failed: SM_API_KEY ENV VAR NOT FOUND' | ||||
|     ) | ||||
|     return | ||||
|   } | ||||
|  | ||||
|   if (!process.env.WINDOWS_CERTIFICATE_THUMBPRINT) { | ||||
|     console.error( | ||||
|       'Signing using signWin.js script: failed: FINGERPRINT ENV VAR NOT FOUND' | ||||
|     ) | ||||
|     return | ||||
|   } | ||||
|  | ||||
|   if (!configuration.path) { | ||||
|     throw new Error( | ||||
|       `Signing using signWin.js script: failed: TARGET PATH NOT FOUND` | ||||
|     ) | ||||
|   } | ||||
|  | ||||
|   try { | ||||
|     execSync( | ||||
|       `smctl sign --fingerprint="${process.env.WINDOWS_CERTIFICATE_THUMBPRINT | ||||
|       }" --input "${String(configuration.path)}"`, | ||||
|       { | ||||
|         stdio: 'inherit', | ||||
|       } | ||||
|     ) | ||||
|     console.log('Signing using signWin.js script: successful') | ||||
|   } catch (error) { | ||||
|     throw new Error('Signing using signWin.js script: failed:', error) | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	