1515
1616env :
1717 JOB_TRANSFER_ARTIFACT : build-artifacts
18+ CHANGELOG_ARTIFACTS : changelog
1819
1920jobs :
20-
2121 build :
2222 if : github.repository == 'arduino/arduino-ide'
2323 strategy :
@@ -56,29 +56,29 @@ jobs:
5656 IS_RELEASE : ${{ startsWith(github.ref, 'refs/tags/') }}
5757 IS_FORK : ${{ github.event.pull_request.head.repo.fork == true }}
5858 run : |
59- # See: https://www.electron.build/code-signing
60- if [ $IS_FORK = true ]; then
61- echo "Skipping the app signing: building from a fork."
62- else
63- if [ "${{ runner.OS }}" = "macOS" ]; then
64- export CSC_LINK="${{ runner.temp }}/signing_certificate.p12"
65- # APPLE_SIGNING_CERTIFICATE_P12 secret was produced by following the procedure from:
66- # https://www.kencochrane.com/2020/08/01/build-and-sign-golang-binaries-for-macos-with-github-actions/#exporting-the-developer-certificate
67- echo "${{ secrets.APPLE_SIGNING_CERTIFICATE_P12 }}" | base64 --decode > "$CSC_LINK"
59+ # See: https://www.electron.build/code-signing
60+ if [ $IS_FORK = true ]; then
61+ echo "Skipping the app signing: building from a fork."
62+ else
63+ if [ "${{ runner.OS }}" = "macOS" ]; then
64+ export CSC_LINK="${{ runner.temp }}/signing_certificate.p12"
65+ # APPLE_SIGNING_CERTIFICATE_P12 secret was produced by following the procedure from:
66+ # https://www.kencochrane.com/2020/08/01/build-and-sign-golang-binaries-for-macos-with-github-actions/#exporting-the-developer-certificate
67+ echo "${{ secrets.APPLE_SIGNING_CERTIFICATE_P12 }}" | base64 --decode > "$CSC_LINK"
6868
69- export CSC_KEY_PASSWORD="${{ secrets.KEYCHAIN_PASSWORD }}"
69+ export CSC_KEY_PASSWORD="${{ secrets.KEYCHAIN_PASSWORD }}"
7070
71- elif [ "${{ runner.OS }}" = "Windows" ]; then
72- export CSC_LINK="${{ runner.temp }}/signing_certificate.pfx"
73- npm config set msvs_version 2017 --global
74- echo "${{ secrets.WINDOWS_SIGNING_CERTIFICATE_PFX }}" | base64 --decode > "$CSC_LINK"
71+ elif [ "${{ runner.OS }}" = "Windows" ]; then
72+ export CSC_LINK="${{ runner.temp }}/signing_certificate.pfx"
73+ npm config set msvs_version 2017 --global
74+ echo "${{ secrets.WINDOWS_SIGNING_CERTIFICATE_PFX }}" | base64 --decode > "$CSC_LINK"
7575
76- export CSC_KEY_PASSWORD="${{ secrets.WINDOWS_SIGNING_CERTIFICATE_PASSWORD }}"
77- fi
76+ export CSC_KEY_PASSWORD="${{ secrets.WINDOWS_SIGNING_CERTIFICATE_PASSWORD }}"
7877 fi
78+ fi
7979
80- yarn --cwd ./electron/packager/
81- yarn --cwd ./electron/packager/ package
80+ yarn --cwd ./electron/packager/
81+ yarn --cwd ./electron/packager/ package
8282
8383 - name : Upload [GitHub Actions]
8484 uses : actions/upload-artifact@v2
@@ -95,15 +95,15 @@ jobs:
9595 strategy :
9696 matrix :
9797 artifact :
98- - path : " *Linux_64bit.zip"
98+ - path : ' *Linux_64bit.zip'
9999 name : Linux_X86-64
100- - path : " *macOS_64bit.dmg"
100+ - path : ' *macOS_64bit.dmg'
101101 name : macOS
102- - path : " *Windows_64bit.exe"
102+ - path : ' *Windows_64bit.exe'
103103 name : Windows_X86-64_interactive_installer
104- - path : " *Windows_64bit.msi"
104+ - path : ' *Windows_64bit.msi'
105105 name : Windows_X86-64_MSI
106- - path : " *Windows_64bit.zip"
106+ - path : ' *Windows_64bit.zip'
107107 name : Windows_X86-64_zip
108108
109109 steps :
@@ -112,7 +112,7 @@ jobs:
112112 with :
113113 name : ${{ env.JOB_TRANSFER_ARTIFACT }}
114114 path : ${{ env.JOB_TRANSFER_ARTIFACT }}
115-
115+
116116 - name : Upload tester build artifact
117117 uses : actions/upload-artifact@v2
118118 with :
@@ -135,24 +135,24 @@ jobs:
135135 env :
136136 IS_RELEASE : ${{ startsWith(github.ref, 'refs/tags/') }}
137137 run : |
138- export LATEST_TAG=$(git describe --abbrev=0)
139- export GIT_LOG=$(git log --pretty=" - %s [%h]" $LATEST_TAG..HEAD | sed 's/ *$//g')
140- if [ "$IS_RELEASE" = true ]; then
141- export BODY=$(echo -e "$GIT_LOG")
142- else
143- export LATEST_TAG_WITH_LINK=$(echo "[$LATEST_TAG](https://github.com/arduino/arduino-ide/releases/tag/$LATEST_TAG)")
144- if [ -z "$GIT_LOG" ]; then
145- export BODY="There were no changes since version $LATEST_TAG_WITH_LINK."
146- else
147- export BODY=$(echo -e "Changes since version $LATEST_TAG_WITH_LINK:\n$GIT_LOG")
148- fi
138+ export LATEST_TAG=$(git describe --abbrev=0)
139+ export GIT_LOG=$(git log --pretty=" - %s [%h]" $LATEST_TAG..HEAD | sed 's/ *$//g')
140+ if [ "$IS_RELEASE" = true ]; then
141+ export BODY=$(echo -e "$GIT_LOG")
142+ else
143+ export LATEST_TAG_WITH_LINK=$(echo "[$LATEST_TAG](https://github.com/arduino/arduino-ide/releases/tag/$LATEST_TAG)")
144+ if [ -z "$GIT_LOG" ]; then
145+ export BODY="There were no changes since version $LATEST_TAG_WITH_LINK."
146+ else
147+ export BODY=$(echo -e "Changes since version $LATEST_TAG_WITH_LINK:\n$GIT_LOG")
149148 fi
150- echo -e "$BODY"
151- OUTPUT_SAFE_BODY="${BODY//'%'/'%25'}"
152- OUTPUT_SAFE_BODY="${OUTPUT_SAFE_BODY//$'\n'/'%0A'}"
153- OUTPUT_SAFE_BODY="${OUTPUT_SAFE_BODY//$'\r'/'%0D'}"
154- echo "::set-output name=BODY::$OUTPUT_SAFE_BODY"
155- echo "$BODY" > CHANGELOG.txt
149+ fi
150+ echo -e "$BODY"
151+ OUTPUT_SAFE_BODY="${BODY//'%'/'%25'}"
152+ OUTPUT_SAFE_BODY="${OUTPUT_SAFE_BODY//$'\n'/'%0A'}"
153+ OUTPUT_SAFE_BODY="${OUTPUT_SAFE_BODY//$'\r'/'%0D'}"
154+ echo "::set-output name=BODY::$OUTPUT_SAFE_BODY"
155+ echo "$BODY" > CHANGELOG.txt
156156
157157 - name : Upload Changelog [GitHub Actions]
158158 if : github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main')
@@ -175,9 +175,9 @@ jobs:
175175 - name : Publish Nightly [S3]
176176 uses : docker://plugins/s3
177177 env :
178- PLUGIN_SOURCE : " ${{ env.JOB_TRANSFER_ARTIFACT }}/*"
179- PLUGIN_STRIP_PREFIX : " ${{ env.JOB_TRANSFER_ARTIFACT }}/"
180- PLUGIN_TARGET : " /arduino-ide/nightly"
178+ PLUGIN_SOURCE : ' ${{ env.JOB_TRANSFER_ARTIFACT }}/*'
179+ PLUGIN_STRIP_PREFIX : ' ${{ env.JOB_TRANSFER_ARTIFACT }}/'
180+ PLUGIN_TARGET : ' /arduino-ide/nightly'
181181 PLUGIN_BUCKET : ${{ secrets.DOWNLOADS_BUCKET }}
182182 AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
183183 AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -198,6 +198,20 @@ jobs:
198198 run : |
199199 echo ::set-output name=TAG_NAME::${GITHUB_REF#refs/tags/}
200200
201+ - name : Create full changelog
202+ id : full-changelog
203+ run : |
204+ mkdir "${{ github.workspace }}/${{ env.CHANGELOG_ARTIFACTS }}"
205+
206+ # Get the changelog file name to build
207+ CHANGELOG_FILE_NAME="${{ steps.tag_name.outputs.TAG_NAME }}-${date --iso-8601=s}.md"
208+
209+ # Create manifest file pointing to latest changelog file name
210+ echo "$CHANGELOG_FILE_NAME" >> "${{ github.workspace }}/${{ env.CHANGELOG_ARTIFACTS }}/latest.txt"
211+
212+ # Compose changelog
213+ yarn run compose-changelog "${{ github.workspace }}/${{ env.CHANGELOG_ARTIFACTS }}/$CHANGELOG_FILE_NAME"
214+
201215 - name : Publish Release [GitHub]
202216203217 with :
@@ -208,12 +222,22 @@ jobs:
208222 file_glob : true
209223 body : ${{ needs.changelog.outputs.BODY }}
210224
225+ - name : Publish Changelog [S3]
226+ uses : docker://plugins/s3
227+ env :
228+ PLUGIN_SOURCE : ' ${{ env.CHANGELOG_ARTIFACTS }}/*'
229+ PLUGIN_STRIP_PREFIX : ' ${{ env.CHANGELOG_ARTIFACTS }}/'
230+ PLUGIN_TARGET : ' /arduino-ide/changelog'
231+ PLUGIN_BUCKET : ${{ secrets.DOWNLOADS_BUCKET }}
232+ AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
233+ AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
234+
211235 - name : Publish Release [S3]
212236 uses : docker://plugins/s3
213237 env :
214- PLUGIN_SOURCE : " ${{ env.JOB_TRANSFER_ARTIFACT }}/*"
215- PLUGIN_STRIP_PREFIX : " ${{ env.JOB_TRANSFER_ARTIFACT }}/"
216- PLUGIN_TARGET : " /arduino-ide"
238+ PLUGIN_SOURCE : ' ${{ env.JOB_TRANSFER_ARTIFACT }}/*'
239+ PLUGIN_STRIP_PREFIX : ' ${{ env.JOB_TRANSFER_ARTIFACT }}/'
240+ PLUGIN_TARGET : ' /arduino-ide'
217241 PLUGIN_BUCKET : ${{ secrets.DOWNLOADS_BUCKET }}
218242 AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
219243 AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
0 commit comments