@@ -138,6 +138,7 @@ jobs:
138138 run-coverage : ${{ steps.source-run-info.outputs.run-coverage }}
139139 run-go-sdk-tests : ${{ steps.selective-checks.outputs.run-go-sdk-tests }}
140140 run-java-sdk-tests : ${{ steps.selective-checks.outputs.run-java-sdk-tests }}
141+ run-ts-sdk-docs : ${{ steps.selective-checks.outputs.run-ts-sdk-docs }}
141142 run-helm-tests : ${{ steps.selective-checks.outputs.run-helm-tests }}
142143 run-kubernetes-tests : ${{ steps.selective-checks.outputs.run-kubernetes-tests }}
143144 run-mypy-providers : ${{ steps.selective-checks.outputs.run-mypy-providers }}
@@ -997,7 +998,10 @@ jobs:
997998 - name : Setup Go
998999 uses : actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
9991000 with :
1000- go-version : 1.25
1001+ # Pinned to the patch: actions/go-versions trails Go security releases by weeks, and
1002+ # setup-go resolves from that manifest whenever it can match, so a bare 1.25 lands on a
1003+ # toolchain whose standard library still carries advisories the scan below fails on.
1004+ go-version : ' 1.25.13'
10011005 cache-dependency-path : go-sdk/go.sum
10021006 # keep this in sync with go.mod in go-sdk/
10031007 - name : Setup Gotestsum
@@ -1040,7 +1044,7 @@ jobs:
10401044 with :
10411045 persist-credentials : false
10421046 - name : Setup Java
1043- uses : actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6 .0
1047+ uses : actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7 .0
10441048 with :
10451049 distribution : ' temurin'
10461050 java-version : ${{ env.JAVA_VERSION }}
@@ -1082,6 +1086,38 @@ jobs:
10821086 if-no-files-found : error
10831087 overwrite : ' true'
10841088
1089+ build-ts-sdk-docs :
1090+ name : " TypeScript SDK docs"
1091+ needs : [build-info]
1092+ runs-on : ${{ fromJSON(needs.build-info.outputs.runner-type) }}
1093+ timeout-minutes : 30
1094+ permissions :
1095+ contents : read
1096+ packages : read
1097+ if : needs.build-info.outputs.run-ts-sdk-docs == 'true'
1098+ env :
1099+ GITHUB_REPOSITORY : ${{ github.repository }}
1100+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1101+ GITHUB_USERNAME : ${{ github.actor }}
1102+ VERBOSE : " true"
1103+ steps :
1104+ - name : " Checkout ${{ github.ref }} ( ${{ github.sha }} )"
1105+ uses : actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
1106+ with :
1107+ persist-credentials : false
1108+ - name : " Install Breeze"
1109+ uses : ./.github/actions/breeze
1110+ - name : " Build TypeScript SDK API reference"
1111+ run : breeze build-docs --sdk-docs-only --sdk=typescript
1112+ - name : " Upload TypeScript SDK docs artifact"
1113+ uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
1114+ with :
1115+ name : ts-sdk-docs
1116+ path : generated/_build/docs/ts-sdk/
1117+ retention-days : 7
1118+ if-no-files-found : error
1119+ overwrite : ' true'
1120+
10851121 tests-airflow-ctl :
10861122 name : " Airflow CTL tests"
10871123 uses : ./.github/workflows/airflow-distributions-tests.yml
@@ -1137,6 +1173,7 @@ jobs:
11371173 - tests-go-sdk
11381174 - tests-java-sdk
11391175 - build-java-sdk-docs
1176+ - build-ts-sdk-docs
11401177 - tests-with-lowest-direct-resolution-core
11411178 - tests-with-lowest-direct-resolution-providers
11421179 uses : ./.github/workflows/finalize-tests.yml
@@ -1183,6 +1220,9 @@ jobs:
11831220 echo "failed-jobs<<EOF" >> "${GITHUB_OUTPUT}"
11841221 echo "${FAILED_JOBS}" >> "${GITHUB_OUTPUT}"
11851222 echo "EOF" >> "${GITHUB_OUTPUT}"
1223+ # A literal newline would end the double-quoted YAML scalar the Slack payload
1224+ # interpolates job names into, and the action would reject the whole payload.
1225+ echo "failed-jobs-text=${FAILED_JOBS//$'\n'/\\n}" >> "${GITHUB_OUTPUT}"
11861226 if [[ -n "${FAILED_JOBS}" ]]; then
11871227 echo "has-failures=true" >> "${GITHUB_OUTPUT}"
11881228 else
@@ -1217,12 +1257,12 @@ jobs:
12171257 # yamllint disable rule:line-length
12181258 payload : |
12191259 channel: "internal-airflow-ci-cd"
1220- text: "🚨 Failure Alert: Scheduled CI (${{ needs.build-info.outputs.platform }}) on branch *${{ github.ref_name }}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs }}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
1260+ text: "🚨 Failure Alert: Scheduled CI (${{ needs.build-info.outputs.platform }}) on branch *${{ github.ref_name }}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs-text }}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
12211261 blocks:
12221262 - type: "section"
12231263 text:
12241264 type: "mrkdwn"
1225- text: "🚨 Failure Alert: Scheduled CI (${{ needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs }}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
1265+ text: "🚨 Failure Alert: Scheduled CI (${{ needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs-text }}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
12261266 # yamllint enable rule:line-length
12271267 - name : " Notify Slack (still not fixed)"
12281268 if : steps.notification.outputs.action == 'notify_reminder'
@@ -1233,12 +1273,12 @@ jobs:
12331273 # yamllint disable rule:line-length
12341274 payload : |
12351275 channel: "internal-airflow-ci-cd"
1236- text: "🚨🔁 Still not fixed: Scheduled CI (${{ needs.build-info.outputs.platform }}) on branch *${{ github.ref_name }}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs }}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
1276+ text: "🚨🔁 Still not fixed: Scheduled CI (${{ needs.build-info.outputs.platform }}) on branch *${{ github.ref_name }}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs-text }}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
12371277 blocks:
12381278 - type: "section"
12391279 text:
12401280 type: "mrkdwn"
1241- text: "🚨🔁 Still not fixed: Scheduled CI (${{ needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs }}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
1281+ text: "🚨🔁 Still not fixed: Scheduled CI (${{ needs.build-info.outputs.platform }}) on *${{ github.ref_name }}*\n\nFailing jobs:\n${{ steps.get-failures.outputs.failed-jobs-text }}\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
12421282 # yamllint enable rule:line-length
12431283 - name : " Notify Slack (all tests passing)"
12441284 if : steps.notification.outputs.action == 'notify_recovery'
0 commit comments