-
Notifications
You must be signed in to change notification settings - Fork 130
IEP-1475: Signing Windows Executable #1228
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 8 commits
826dfc7
200eee5
914f938
543756a
5c69473
8116925
f10e08f
47bcd01
70b422f
cdfaf07
baeea69
ff20f32
09a227b
e1ae050
94b1f30
c27f9ba
e8d43f4
9a8b624
f1aead4
c7a227e
eb83701
6b008a8
38f2739
6a0e72f
7024921
28fd1f0
b018315
40e11f5
c7097fe
a292776
8a7b021
4327e23
b17abfe
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,236 @@ | ||||||||||||||||||||||||||||||||||||||
name: Espressif-IDE Cross-platform Release | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
on: | ||||||||||||||||||||||||||||||||||||||
push: | ||||||||||||||||||||||||||||||||||||||
branches: [master] | ||||||||||||||||||||||||||||||||||||||
tags: | ||||||||||||||||||||||||||||||||||||||
- "v[0-9]+.[0-9]+.[0-9]+" | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Unsupported regex in tag filter - tags:
- - "v[0-9]+.[0-9]+.[0-9]+" with: tags:
- 'v*.*.*' 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
pull_request: | ||||||||||||||||||||||||||||||||||||||
branches: [master] | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
env: | ||||||||||||||||||||||||||||||||||||||
ARCHIVE_PREFIX: com.espressif.idf.update- | ||||||||||||||||||||||||||||||||||||||
ARCHIVE_SUFFIX: -SNAPSHOT.zip | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
jobs: | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
macos-build: | ||||||||||||||||||||||||||||||||||||||
runs-on: macos-latest | ||||||||||||||||||||||||||||||||||||||
outputs: | ||||||||||||||||||||||||||||||||||||||
version: ${{ steps.get_version.outputs.version }} | ||||||||||||||||||||||||||||||||||||||
steps: | ||||||||||||||||||||||||||||||||||||||
- uses: actions/checkout@v3 | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Upgrade Also applies to: 145-145, 227-227 🧰 Tools🪛 actionlint (1.7.7)21-21: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue (action) 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Bump - uses: actions/checkout@v3
+ uses: actions/checkout@v4 Also applies to: 141-142 🧰 Tools🪛 actionlint (1.7.7)22-22: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue (action) 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
- name: Set up JDK 17 | ||||||||||||||||||||||||||||||||||||||
uses: actions/setup-java@v3 | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Bump 🧰 Tools🪛 actionlint (1.7.7)24-24: the runner of "actions/setup-java@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue (action) 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||
java-version: '17' | ||||||||||||||||||||||||||||||||||||||
distribution: 'temurin' | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Upgrade 🧰 Tools🪛 actionlint (1.7.7)24-24: the runner of "actions/setup-java@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue (action) 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
- name: Get version from tag | ||||||||||||||||||||||||||||||||||||||
id: get_version | ||||||||||||||||||||||||||||||||||||||
run: echo "version=${GITHUB_REF##*/v}" >> $GITHUB_OUTPUT | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Decode keystore and build with Maven | ||||||||||||||||||||||||||||||||||||||
env: | ||||||||||||||||||||||||||||||||||||||
JARSIGNER_KEYSTORE_B64: ${{ secrets.JARSIGNER_REL_KEYSTORE_B64 }} | ||||||||||||||||||||||||||||||||||||||
JARSIGNER_STOREPASS: ${{ secrets.JARSIGNER_REL_STOREPASS }} | ||||||||||||||||||||||||||||||||||||||
JARSIGNER_ALIAS: ${{ secrets.JARSIGNER_REL_ALIAS }} | ||||||||||||||||||||||||||||||||||||||
run: | | ||||||||||||||||||||||||||||||||||||||
KEYSTORE_FILE="${PWD}/{{secrets.JARSIGNER_KEYSTORE}}" | ||||||||||||||||||||||||||||||||||||||
echo "${KEYSTORE_FILE}" | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix unresolved keystore filename placeholder KEYSTORE_FILE="${PWD}/{{secrets.JARSIGNER_KEYSTORE}}" uses a literal placeholder. Replace it with a concrete filename or an env var, for example: KEYSTORE_FILE="${PWD}/jarsigner-keystore.jks" 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
printf "%s" "${JARSIGNER_KEYSTORE_B64}" | base64 -d > "${KEYSTORE_FILE}" | ||||||||||||||||||||||||||||||||||||||
mvn -e -X clean install -Djarsigner.keystore="${KEYSTORE_FILE}" -Djarsigner.alias="${JARSIGNER_ALIAS}" -Djarsigner.storepass="${JARSIGNER_STOREPASS}" -DskipTests=true | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Avoid verbose/debug flags to prevent leaking secrets - mvn -e -X clean install \
+ mvn clean install \
🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
rm -v "${KEYSTORE_FILE}" | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix unresolved placeholder in KEYSTORE_FILE path KEYSTORE_FILE="${PWD}/{{secrets.JARSIGNER_KEYSTORE}}" contains a literal placeholder instead of a real filename. Define a concrete keystore filename (or introduce an env var) before decoding: - KEYSTORE_FILE="${PWD}/{{secrets.JARSIGNER_KEYSTORE}}"
+ KEYSTORE_FILE="${PWD}/jarsigner-keystore.jks" 🤖 Prompt for AI Agents
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix unresolved keystore filename placeholder KEYSTORE_FILE="${PWD}/{{secrets.JARSIGNER_KEYSTORE}}" uses a literal placeholder. Replace with a real path or env var, e.g.: KEYSTORE_FILE="${PWD}/jarsigner-keystore.jks" 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Codesign Espressif-IDE | ||||||||||||||||||||||||||||||||||||||
env: | ||||||||||||||||||||||||||||||||||||||
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} | ||||||||||||||||||||||||||||||||||||||
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }} | ||||||||||||||||||||||||||||||||||||||
run: | | ||||||||||||||||||||||||||||||||||||||
echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12 | ||||||||||||||||||||||||||||||||||||||
/usr/bin/security create-keychain -p espressif build.keychain | ||||||||||||||||||||||||||||||||||||||
/usr/bin/security default-keychain -s build.keychain | ||||||||||||||||||||||||||||||||||||||
/usr/bin/security unlock-keychain -p espressif build.keychain | ||||||||||||||||||||||||||||||||||||||
/usr/bin/security import certificate.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign | ||||||||||||||||||||||||||||||||||||||
/usr/bin/security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k espressif build.keychain | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
echo "codesigning espressif-ide-macosx.cocoa.x86_64" | ||||||||||||||||||||||||||||||||||||||
/usr/bin/codesign --entitlements $PWD/releng/com.espressif.idf.product/entitlements/espressif-ide.entitlement --options runtime --force -s "ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD. (QWXF6GB4AV)" $PWD/releng/com.espressif.idf.product/target/products/com.espressif.idf.product/macosx/cocoa/x86_64/Espressif-IDE.app -v | ||||||||||||||||||||||||||||||||||||||
/usr/bin/codesign -v -vvv --deep $PWD/releng/com.espressif.idf.product/target/products/com.espressif.idf.product/macosx/cocoa/x86_64/Espressif-IDE.app | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
echo "codesigning espressif-ide-macosx.cocoa.aarch64" | ||||||||||||||||||||||||||||||||||||||
/usr/bin/codesign --entitlements $PWD/releng/com.espressif.idf.product/entitlements/espressif-ide.entitlement --options runtime --force -s "ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD. (QWXF6GB4AV)" $PWD/releng/com.espressif.idf.product/target/products/com.espressif.idf.product/macosx/cocoa/aarch64/Espressif-IDE.app -v | ||||||||||||||||||||||||||||||||||||||
/usr/bin/codesign -v -vvv --deep $PWD/releng/com.espressif.idf.product/target/products/com.espressif.idf.product/macosx/cocoa/aarch64/Espressif-IDE.app | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
echo "Creating dmg for espressif-ide-macosx.cocoa.x86_64" | ||||||||||||||||||||||||||||||||||||||
$PWD/releng/ide-dmg-builder/ide-dmg-builder.sh | ||||||||||||||||||||||||||||||||||||||
/usr/bin/codesign --entitlements $PWD/releng/com.espressif.idf.product/entitlements/espressif-ide.entitlement --options runtime --force -s "ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD. (QWXF6GB4AV)" $PWD/releng/ide-dmg-builder/Espressif-IDE-macosx-cocoa-x86_64.dmg -v | ||||||||||||||||||||||||||||||||||||||
/usr/bin/codesign -v -vvv --deep $PWD/releng/ide-dmg-builder/Espressif-IDE-macosx-cocoa-x86_64.dmg | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
echo "Creating dmg for espressif-ide-macosx.cocoa.aarch64" | ||||||||||||||||||||||||||||||||||||||
$PWD/releng/ide-dmg-builder/ide-dmg-builder-aarch64.sh | ||||||||||||||||||||||||||||||||||||||
/usr/bin/codesign --options runtime --force -s "ESPRESSIF SYSTEMS (SHANGHAI) CO., LTD. (QWXF6GB4AV)" $PWD/releng/ide-dmg-builder/Espressif-IDE-macosx-cocoa-aarch64.dmg -v | ||||||||||||||||||||||||||||||||||||||
/usr/bin/codesign -v -vvv --deep $PWD/releng/ide-dmg-builder/Espressif-IDE-macosx-cocoa-aarch64.dmg | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Notarization of Espressif-IDE dmg files | ||||||||||||||||||||||||||||||||||||||
env: | ||||||||||||||||||||||||||||||||||||||
NOTARIZATION_USERNAME: ${{ secrets.NOTARIZATION_USERNAME }} | ||||||||||||||||||||||||||||||||||||||
NOTARIZATION_PASSWORD: ${{ secrets.NOTARIZATION_PASSWORD }} | ||||||||||||||||||||||||||||||||||||||
NOTARIZATION_TEAM_ID: ${{ secrets.NOTARIZATION_TEAM_ID }} | ||||||||||||||||||||||||||||||||||||||
run: | | ||||||||||||||||||||||||||||||||||||||
echo "Create notary keychain" | ||||||||||||||||||||||||||||||||||||||
/usr/bin/security create-keychain -p espressif notary.keychain | ||||||||||||||||||||||||||||||||||||||
/usr/bin/security default-keychain -s notary.keychain | ||||||||||||||||||||||||||||||||||||||
/usr/bin/security unlock-keychain -p espressif notary.keychain | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
echo "Create keychain profile" | ||||||||||||||||||||||||||||||||||||||
xcrun notarytool store-credentials "ide-notarytool-profile" --apple-id $NOTARIZATION_USERNAME --team-id $NOTARIZATION_TEAM_ID --password $NOTARIZATION_PASSWORD | ||||||||||||||||||||||||||||||||||||||
xcrun notarytool submit $PWD/releng/ide-dmg-builder/Espressif-IDE-macosx-cocoa-x86_64.dmg --keychain-profile "ide-notarytool-profile" --wait | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
echo "Attach staple for x86_64.dmg" | ||||||||||||||||||||||||||||||||||||||
xcrun stapler staple $PWD/releng/ide-dmg-builder/Espressif-IDE-macosx-cocoa-x86_64.dmg | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
echo "Unlock the notary keychain" | ||||||||||||||||||||||||||||||||||||||
/usr/bin/security unlock-keychain -p espressif notary.keychain | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
xcrun notarytool submit $PWD/releng/ide-dmg-builder/Espressif-IDE-macosx-cocoa-aarch64.dmg --keychain-profile "ide-notarytool-profile" --wait | ||||||||||||||||||||||||||||||||||||||
echo "Attach staple for aarch64.dmg" | ||||||||||||||||||||||||||||||||||||||
xcrun stapler staple $PWD/releng/ide-dmg-builder/Espressif-IDE-macosx-cocoa-aarch64.dmg | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Upload Espressif-IDE-macosx-cocoa-x86_64.dmg | ||||||||||||||||||||||||||||||||||||||
if: ${{ !cancelled() }} | ||||||||||||||||||||||||||||||||||||||
uses: actions/upload-artifact@v4 | ||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||
name: espressif-ide-macosx-cocoa-x86_64 | ||||||||||||||||||||||||||||||||||||||
path: releng/ide-dmg-builder/Espressif-IDE-macosx-cocoa-x86_64.dmg | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Upload Espressif-IDE-macosx-cocoa-aarch64.dmg | ||||||||||||||||||||||||||||||||||||||
if: ${{ !cancelled() }} | ||||||||||||||||||||||||||||||||||||||
uses: actions/upload-artifact@v4 | ||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||
name: espressif-ide-macosx.cocoa.aarch64 | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix indentation for - name: espressif-ide.cocoa.aarch64
+ name: espressif-ide.cocoa.aarch64
🧰 Tools🪛 YAMLlint (1.37.1)[warning] 112-112: wrong indentation: expected 10 but found 11 (indentation) 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
path: releng/ide-dmg-builder/Espressif-IDE-macosx-cocoa-aarch64.dmg | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix artifact name and indentation for aarch64 DMG - name: espressif-ide-macosx.cocoa.aarch64
+ name: espressif-ide-macosx-cocoa-aarch64 Adjust indentation to match other upload steps. 🧰 Tools🪛 YAMLlint (1.37.1)[warning] 111-111: wrong indentation: expected 10 but found 11 (indentation) 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Upload build artifacts | ||||||||||||||||||||||||||||||||||||||
if: ${{ !cancelled() }} | ||||||||||||||||||||||||||||||||||||||
uses: actions/upload-artifact@v4 | ||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||
name: com.espressif.idf.update | ||||||||||||||||||||||||||||||||||||||
path: releng/com.espressif.idf.update/target/repository | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Upload windows rcp | ||||||||||||||||||||||||||||||||||||||
if: ${{ !cancelled() }} | ||||||||||||||||||||||||||||||||||||||
uses: actions/upload-artifact@v4 | ||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||
name: espressif-ide-win32 | ||||||||||||||||||||||||||||||||||||||
path: releng/com.espressif.idf.product/target/products/Espressif-IDE-*-win32.win32.x86_64.zip | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Upload linux rcp | ||||||||||||||||||||||||||||||||||||||
if: ${{ !cancelled() }} | ||||||||||||||||||||||||||||||||||||||
uses: actions/upload-artifact@v4 | ||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||
name: espressif-ide-linux | ||||||||||||||||||||||||||||||||||||||
path: releng/com.espressif.idf.product/target/products/Espressif-IDE-*-linux.gtk.x86_64.tar.gz | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
windows-sign: | ||||||||||||||||||||||||||||||||||||||
runs-on: windows-latest | ||||||||||||||||||||||||||||||||||||||
needs: macos-build | ||||||||||||||||||||||||||||||||||||||
steps: | ||||||||||||||||||||||||||||||||||||||
- uses: actions/checkout@v3 | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Install Java on Windows runner - name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11' 🧰 Tools🪛 actionlint (1.7.7)141-141: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue (action) 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
- name: Download built artifacts | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add Java setup action to Windows job - - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
+ - name: Set up Java
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'temurin'
+ java-version: '11' This ensures 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
uses: actions/download-artifact@v4 | ||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||
name: espressif-ide-win32 | ||||||||||||||||||||||||||||||||||||||
path: releng/com.espressif.idf.product/target/products/Espressif-IDE-*-win32.win32.x86_64.zip | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Extract Windows ZIP | ||||||||||||||||||||||||||||||||||||||
run: | | ||||||||||||||||||||||||||||||||||||||
Expand-Archive -Path (Get-ChildItem -Path artifacts -Filter "*win32.win32.x86_64.zip").FullName -DestinationPath extracted | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Align download path with Expand-Archive usage - - name: Download built artifacts
- uses: actions/download-artifact@v4
- with:
- name: espressif-ide-win32
- path: releng/com.espressif.idf.product/target/products/Espressif-IDE-*-win32.win32.x86_64.zip
+ - name: Download built artifacts
+ uses: actions/download-artifact@v4
+ with:
+ name: espressif-ide-win32
+ path: artifacts or update 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Decode JKS and convert to PFX | ||||||||||||||||||||||||||||||||||||||
env: | ||||||||||||||||||||||||||||||||||||||
JKS_B64: ${{ secrets.JARSIGNER_REL_KEYSTORE_B64 }} | ||||||||||||||||||||||||||||||||||||||
JKS_PASS: ${{ secrets.JARSIGNER_REL_STOREPASS }} | ||||||||||||||||||||||||||||||||||||||
ALIAS: ${{ secrets.JARSIGNER_REL_ALIAS }} | ||||||||||||||||||||||||||||||||||||||
PFX_PASS: ${{ secrets.JARSIGNER_REL_STOREPASS }} | ||||||||||||||||||||||||||||||||||||||
run: | | ||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Install and configure Java on Windows runner - name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11' 🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
echo $env:JKS_B64 | Out-File encoded.b64 -Encoding ASCII | ||||||||||||||||||||||||||||||||||||||
certutil -decode encoded.b64 mykeystore.jks | ||||||||||||||||||||||||||||||||||||||
Remove-Item encoded.b64 | ||||||||||||||||||||||||||||||||||||||
& "${env:JAVA_HOME}\bin\keytool.exe" -importkeystore ` | ||||||||||||||||||||||||||||||||||||||
-srckeystore mykeystore.jks ` | ||||||||||||||||||||||||||||||||||||||
-srcstorepass $env:JKS_PASS ` | ||||||||||||||||||||||||||||||||||||||
-srcalias $env:ALIAS ` | ||||||||||||||||||||||||||||||||||||||
-destkeystore cert.pfx ` | ||||||||||||||||||||||||||||||||||||||
-deststoretype PKCS12 ` | ||||||||||||||||||||||||||||||||||||||
-deststorepass $env:PFX_PASS | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Sign Windows Executable | ||||||||||||||||||||||||||||||||||||||
run: | | ||||||||||||||||||||||||||||||||||||||
$exe = Get-ChildItem -Recurse extracted\*.exe | Select-Object -First 1 | ||||||||||||||||||||||||||||||||||||||
& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\signtool.exe" sign ` | ||||||||||||||||||||||||||||||||||||||
/f cert.pfx ` | ||||||||||||||||||||||||||||||||||||||
/p $env:PFX_PASS ` | ||||||||||||||||||||||||||||||||||||||
/tr http://timestamp.digicert.com ` | ||||||||||||||||||||||||||||||||||||||
/td sha256 ` | ||||||||||||||||||||||||||||||||||||||
/fd sha256 ` | ||||||||||||||||||||||||||||||||||||||
$exe.FullName | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Repack signed Windows ZIP | ||||||||||||||||||||||||||||||||||||||
run: | | ||||||||||||||||||||||||||||||||||||||
Compress-Archive -Path extracted\* -DestinationPath artifacts/Espressif-IDE-win32.win32.x86_64.zip -Force | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: Upload Signed Windows ZIP | ||||||||||||||||||||||||||||||||||||||
uses: actions/upload-artifact@v4 | ||||||||||||||||||||||||||||||||||||||
with: | ||||||||||||||||||||||||||||||||||||||
name: release-artifacts | ||||||||||||||||||||||||||||||||||||||
path: artifacts/Espressif-IDE-win32.win32.x86_64.zip | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consistent artifact naming for Windows ZIP upload - - name: Upload Signed Windows ZIP
- uses: actions/upload-artifact@v4
+ - name: Upload Signed Windows ZIP
+ uses: actions/upload-artifact@v4
with:
- name: release-artifacts
+ name: espressif-ide-win32
path: artifacts/Espressif-IDE-win32.win32.x86_64.zip 📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
|
||||||||||||||||||||||||||||||||||||||
# deploy: | ||||||||||||||||||||||||||||||||||||||
# runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||||||||
# needs: [macos-build, windows-sign] | ||||||||||||||||||||||||||||||||||||||
# steps: | ||||||||||||||||||||||||||||||||||||||
# - uses: actions/checkout@v3 | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# - name: Download final artifacts | ||||||||||||||||||||||||||||||||||||||
# uses: actions/download-artifact@v4 | ||||||||||||||||||||||||||||||||||||||
# with: | ||||||||||||||||||||||||||||||||||||||
# name: release-artifacts | ||||||||||||||||||||||||||||||||||||||
# path: final | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# - name: Upload to S3 (dl.espressif.com) | ||||||||||||||||||||||||||||||||||||||
# env: | ||||||||||||||||||||||||||||||||||||||
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | ||||||||||||||||||||||||||||||||||||||
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | ||||||||||||||||||||||||||||||||||||||
# AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} | ||||||||||||||||||||||||||||||||||||||
# DL_BUCKET: ${{ secrets.DL_BUCKET }} | ||||||||||||||||||||||||||||||||||||||
# DL_DISTRIBUTION_ID: ${{ secrets.DL_DISTRIBUTION_ID }} | ||||||||||||||||||||||||||||||||||||||
# run: | | ||||||||||||||||||||||||||||||||||||||
# version=${GITHUB_REF##*/v} | ||||||||||||||||||||||||||||||||||||||
# folder=v${version} | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# mkdir "$folder" | ||||||||||||||||||||||||||||||||||||||
# unzip -q final/com.espressif.idf.update-*.zip -d "$folder" | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# mv final/com.espressif.idf.update-*.zip "${ARCHIVE_PREFIX}${version}.zip" | ||||||||||||||||||||||||||||||||||||||
# mv final/Espressif-IDE-macosx-cocoa-x86_64.dmg "Espressif-IDE-macosx-cocoa-x86_64-${folder}.dmg" | ||||||||||||||||||||||||||||||||||||||
# mv final/Espressif-IDE-macosx-cocoa-aarch64.dmg "Espressif-IDE-macosx-cocoa-aarch64-${folder}.dmg" | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# aws s3 rm s3://$DL_BUCKET/dl/idf-eclipse-plugin/updates/latest --recursive | ||||||||||||||||||||||||||||||||||||||
# aws s3 cp --acl=public-read --recursive "./$folder/" s3://$DL_BUCKET/dl/idf-eclipse-plugin/updates/latest | ||||||||||||||||||||||||||||||||||||||
# aws s3 cp --acl=public-read ./releng/index.html s3://$DL_BUCKET/dl/idf-eclipse-plugin/updates/latest/ | ||||||||||||||||||||||||||||||||||||||
# aws s3 cp --acl=public-read --recursive "./$folder/" s3://$DL_BUCKET/dl/idf-eclipse-plugin/updates/$folder | ||||||||||||||||||||||||||||||||||||||
# aws s3 cp --acl=public-read --recursive --exclude "*" --include "Espressif-IDE-*" final/ s3://$DL_BUCKET/dl/idf-eclipse-plugin/ide/ | ||||||||||||||||||||||||||||||||||||||
# aws s3 cp --acl=public-read "${ARCHIVE_PREFIX}${version}.zip" s3://$DL_BUCKET/dl/idf-eclipse-plugin/updates/ | ||||||||||||||||||||||||||||||||||||||
# aws s3 cp --acl=public-read "Espressif-IDE-macosx-cocoa-x86_64-${folder}.dmg" s3://$DL_BUCKET/dl/idf-eclipse-plugin/ide/ | ||||||||||||||||||||||||||||||||||||||
# aws s3 cp --acl=public-read "Espressif-IDE-macosx-cocoa-aarch64-${folder}.dmg" s3://$DL_BUCKET/dl/idf-eclipse-plugin/ide/ | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# aws cloudfront create-invalidation --distribution-id $DL_DISTRIBUTION_ID --paths "/dl/idf-eclipse-plugin/updates/latest/*" | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
# aws s3api put-object --acl=public-read --bucket espdldata --key "dl/idf-eclipse-plugin/ide/Espressif-IDE-win32.win32.x86_64/latest" --website-redirect-location "/dl/idf-eclipse-plugin/ide/Espressif-IDE-${version}-win32.win32.x86_64.zip" | ||||||||||||||||||||||||||||||||||||||
# aws s3api put-object --acl=public-read --bucket espdldata --key "dl/idf-eclipse-plugin/ide/Espressif-IDE-macosx-cocoa-x86_64/latest" --website-redirect-location "/dl/idf-eclipse-plugin/ide/Espressif-IDE-macosx-cocoa-x86_64-${folder}.dmg" | ||||||||||||||||||||||||||||||||||||||
# aws s3api put-object --acl=public-read --bucket espdldata --key "dl/idf-eclipse-plugin/ide/Espressif-IDE-macosx-cocoa-aarch64/latest" --website-redirect-location "/dl/idf-eclipse-plugin/ide/Espressif-IDE-macosx-cocoa-aarch64-${folder}.dmg" | ||||||||||||||||||||||||||||||||||||||
# aws s3api put-object --acl=public-read --bucket espdldata --key "dl/idf-eclipse-plugin/ide/Espressif-IDE-linux.gtk.x86_64/latest" --website-redirect-location "/dl/idf-eclipse-plugin/ide/Espressif-IDE-${version}-linux.gtk.x86_64.tar.gz" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replace regex tag filter with glob pattern
GitHub Actions tag filters do not support regex syntax. Update the pattern from:
to a shell-style glob, for example:
This ensures your workflow triggers correctly on version tags.
🤖 Prompt for AI Agents