From c95e4f6d8662bb70851dc6acdc66f5eab594ac80 Mon Sep 17 00:00:00 2001 From: mcollinscodat Date: Tue, 4 Aug 2026 10:56:52 +0100 Subject: [PATCH 1/4] feat/CONN-1273-release-stubs: Replace Speakeasy generate/release workflows with thin stubs pointing at the central pipeline - bank_feeds_generate.yaml - generation moved to Codat SDK Codegen; stub warns and exits 0 - bank_feeds_release.yaml - queues the central Azure DevOps npm publish pipeline - lending_generate.yaml - generation moved to Codat SDK Codegen; stub warns and exits 0 - lending_release.yaml - queues the central Azure DevOps npm publish pipeline - platform_generate.yaml - generation moved to Codat SDK Codegen; stub warns and exits 0 - platform_release.yaml - queues the central Azure DevOps npm publish pipeline - sync_for_expenses_generate.yaml - generation moved to Codat SDK Codegen; stub warns and exits 0 - sync_for_expenses_release.yaml - queues the central Azure DevOps npm publish pipeline - sync_for_payables_generate.yaml - generation moved to Codat SDK Codegen; stub warns and exits 0 - sync_for_payables_release.yaml - queues the central Azure DevOps npm publish pipeline --- .github/workflows/bank_feeds_generate.yaml | 25 ++++++++------- .github/workflows/bank_feeds_release.yaml | 31 +++++++++++++++---- .github/workflows/lending_generate.yaml | 25 ++++++++------- .github/workflows/lending_release.yaml | 31 +++++++++++++++---- .github/workflows/platform_generate.yaml | 25 ++++++++------- .github/workflows/platform_release.yaml | 31 +++++++++++++++---- .../workflows/sync_for_expenses_generate.yaml | 25 ++++++++------- .../workflows/sync_for_expenses_release.yaml | 31 +++++++++++++++---- .../workflows/sync_for_payables_generate.yaml | 25 ++++++++------- .../workflows/sync_for_payables_release.yaml | 31 +++++++++++++++---- 10 files changed, 190 insertions(+), 90 deletions(-) diff --git a/.github/workflows/bank_feeds_generate.yaml b/.github/workflows/bank_feeds_generate.yaml index 3fd2640e8..642f7ac2f 100644 --- a/.github/workflows/bank_feeds_generate.yaml +++ b/.github/workflows/bank_feeds_generate.yaml @@ -1,3 +1,7 @@ +# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Generation no longer runs in this repo: generate-and-pr.yml in Codat SDK +# Codegen generates this SDK and opens a versioned PR here, dispatched by the +# oas pipeline. This stub only says so. name: Generate Bank Feeds library 'on': workflow_dispatch: @@ -11,15 +15,12 @@ name: Generate Bank Feeds library type: string jobs: generate: - uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15 - with: - mode: pr - speakeasy_version: latest - force: ${{ github.event.inputs.force }} - set_version: ${{ github.event.inputs.set_version }} - target: bank-feeds-library - secrets: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - npm_token: ${{ secrets.NPM_TOKEN }} + runs-on: ubuntu-latest + steps: + - name: Generation moved to Codat SDK Codegen + run: | + echo "::warning::This workflow no longer generates anything. bank-feeds is generated by generate-and-pr.yml in Codat SDK Codegen, dispatched by the oas pipeline, which opens a versioned PR on this repo." + # Exits 0 because the oas pipeline still runs this workflow on every OAS + # merge; flip to exit 1 in the same change that switches the oas trigger + # to the repository dispatch, so stray runs become loud. + exit 0 diff --git a/.github/workflows/bank_feeds_release.yaml b/.github/workflows/bank_feeds_release.yaml index b7f18fd18..6070dc67b 100644 --- a/.github/workflows/bank_feeds_release.yaml +++ b/.github/workflows/bank_feeds_release.yaml @@ -1,3 +1,8 @@ +# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Publishing no longer runs in this repo. The packaging checks, the npm publish +# and the tag all run centrally in the Azure DevOps npm publish pipeline - no +# check has been dropped, they just moved. This stub only queues that pipeline, +# at the url in the ADO_PUBLISH_PIPELINE_URL repo variable. name: Release Bank Feeds library 'on': push: @@ -5,11 +10,25 @@ name: Release Bank Feeds library - bank-feeds/RELEASES.md branches: - main + workflow_dispatch: {} +concurrency: publish-bank-feeds-typescript jobs: publish: - uses: speakeasy-api/sdk-generation-action/.github/workflows/sdk-publish.yaml@v15 - secrets: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - npm_token: ${{ secrets.NPM_TOKEN }} + runs-on: ubuntu-latest + steps: + - name: Queue the central npm publish pipeline + run: | + if [ -z "${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" ]; then + echo "::error::ADO_PUBLISH_TRIGGER_TOKEN secret is not set - needed to queue the Azure DevOps npm publish pipeline" + exit 1 + fi + if [ -z "${{ vars.ADO_PUBLISH_PIPELINE_URL }}" ]; then + echo "::error::ADO_PUBLISH_PIPELINE_URL repo variable is not set - expected https://dev.azure.com///_apis/pipelines/" + exit 1 + fi + curl --fail-with-body --silent --show-error -X POST \ + -u ":${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" \ + -H "Content-Type: application/json" \ + "${{ vars.ADO_PUBLISH_PIPELINE_URL }}/runs?api-version=7.1" \ + -d '{"templateParameters": {"product": "bank-feeds", "sha": "${{ github.sha }}"}}' + echo "npm publish pipeline queued for bank-feeds @ ${{ github.sha }}" diff --git a/.github/workflows/lending_generate.yaml b/.github/workflows/lending_generate.yaml index 9b471fd32..370a0b71b 100644 --- a/.github/workflows/lending_generate.yaml +++ b/.github/workflows/lending_generate.yaml @@ -1,3 +1,7 @@ +# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Generation no longer runs in this repo: generate-and-pr.yml in Codat SDK +# Codegen generates this SDK and opens a versioned PR here, dispatched by the +# oas pipeline. This stub only says so. name: Generate Lending library 'on': workflow_dispatch: @@ -11,15 +15,12 @@ name: Generate Lending library type: string jobs: generate: - uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15 - with: - mode: pr - speakeasy_version: latest - force: ${{ github.event.inputs.force }} - set_version: ${{ github.event.inputs.set_version }} - target: lending-library - secrets: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - npm_token: ${{ secrets.NPM_TOKEN }} + runs-on: ubuntu-latest + steps: + - name: Generation moved to Codat SDK Codegen + run: | + echo "::warning::This workflow no longer generates anything. lending is generated by generate-and-pr.yml in Codat SDK Codegen, dispatched by the oas pipeline, which opens a versioned PR on this repo." + # Exits 0 because the oas pipeline still runs this workflow on every OAS + # merge; flip to exit 1 in the same change that switches the oas trigger + # to the repository dispatch, so stray runs become loud. + exit 0 diff --git a/.github/workflows/lending_release.yaml b/.github/workflows/lending_release.yaml index 6b655201a..d863b0d51 100644 --- a/.github/workflows/lending_release.yaml +++ b/.github/workflows/lending_release.yaml @@ -1,3 +1,8 @@ +# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Publishing no longer runs in this repo. The packaging checks, the npm publish +# and the tag all run centrally in the Azure DevOps npm publish pipeline - no +# check has been dropped, they just moved. This stub only queues that pipeline, +# at the url in the ADO_PUBLISH_PIPELINE_URL repo variable. name: Release Lending library 'on': push: @@ -5,11 +10,25 @@ name: Release Lending library - lending/RELEASES.md branches: - main + workflow_dispatch: {} +concurrency: publish-lending-typescript jobs: publish: - uses: speakeasy-api/sdk-generation-action/.github/workflows/sdk-publish.yaml@v15 - secrets: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - npm_token: ${{ secrets.NPM_TOKEN }} + runs-on: ubuntu-latest + steps: + - name: Queue the central npm publish pipeline + run: | + if [ -z "${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" ]; then + echo "::error::ADO_PUBLISH_TRIGGER_TOKEN secret is not set - needed to queue the Azure DevOps npm publish pipeline" + exit 1 + fi + if [ -z "${{ vars.ADO_PUBLISH_PIPELINE_URL }}" ]; then + echo "::error::ADO_PUBLISH_PIPELINE_URL repo variable is not set - expected https://dev.azure.com///_apis/pipelines/" + exit 1 + fi + curl --fail-with-body --silent --show-error -X POST \ + -u ":${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" \ + -H "Content-Type: application/json" \ + "${{ vars.ADO_PUBLISH_PIPELINE_URL }}/runs?api-version=7.1" \ + -d '{"templateParameters": {"product": "lending", "sha": "${{ github.sha }}"}}' + echo "npm publish pipeline queued for lending @ ${{ github.sha }}" diff --git a/.github/workflows/platform_generate.yaml b/.github/workflows/platform_generate.yaml index 430b55a9a..8b8936e35 100644 --- a/.github/workflows/platform_generate.yaml +++ b/.github/workflows/platform_generate.yaml @@ -1,3 +1,7 @@ +# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Generation no longer runs in this repo: generate-and-pr.yml in Codat SDK +# Codegen generates this SDK and opens a versioned PR here, dispatched by the +# oas pipeline. This stub only says so. name: Generate Platform library 'on': workflow_dispatch: @@ -11,15 +15,12 @@ name: Generate Platform library type: string jobs: generate: - uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15 - with: - mode: pr - speakeasy_version: latest - force: ${{ github.event.inputs.force }} - set_version: ${{ github.event.inputs.set_version }} - target: platform-library - secrets: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - npm_token: ${{ secrets.NPM_TOKEN }} + runs-on: ubuntu-latest + steps: + - name: Generation moved to Codat SDK Codegen + run: | + echo "::warning::This workflow no longer generates anything. platform is generated by generate-and-pr.yml in Codat SDK Codegen, dispatched by the oas pipeline, which opens a versioned PR on this repo." + # Exits 0 because the oas pipeline still runs this workflow on every OAS + # merge; flip to exit 1 in the same change that switches the oas trigger + # to the repository dispatch, so stray runs become loud. + exit 0 diff --git a/.github/workflows/platform_release.yaml b/.github/workflows/platform_release.yaml index 3f29ca9b8..9f5e29161 100644 --- a/.github/workflows/platform_release.yaml +++ b/.github/workflows/platform_release.yaml @@ -1,3 +1,8 @@ +# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Publishing no longer runs in this repo. The packaging checks, the npm publish +# and the tag all run centrally in the Azure DevOps npm publish pipeline - no +# check has been dropped, they just moved. This stub only queues that pipeline, +# at the url in the ADO_PUBLISH_PIPELINE_URL repo variable. name: Release Platform library 'on': push: @@ -5,11 +10,25 @@ name: Release Platform library - platform/RELEASES.md branches: - main + workflow_dispatch: {} +concurrency: publish-platform-typescript jobs: publish: - uses: speakeasy-api/sdk-generation-action/.github/workflows/sdk-publish.yaml@v15 - secrets: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - npm_token: ${{ secrets.NPM_TOKEN }} + runs-on: ubuntu-latest + steps: + - name: Queue the central npm publish pipeline + run: | + if [ -z "${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" ]; then + echo "::error::ADO_PUBLISH_TRIGGER_TOKEN secret is not set - needed to queue the Azure DevOps npm publish pipeline" + exit 1 + fi + if [ -z "${{ vars.ADO_PUBLISH_PIPELINE_URL }}" ]; then + echo "::error::ADO_PUBLISH_PIPELINE_URL repo variable is not set - expected https://dev.azure.com///_apis/pipelines/" + exit 1 + fi + curl --fail-with-body --silent --show-error -X POST \ + -u ":${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" \ + -H "Content-Type: application/json" \ + "${{ vars.ADO_PUBLISH_PIPELINE_URL }}/runs?api-version=7.1" \ + -d '{"templateParameters": {"product": "platform", "sha": "${{ github.sha }}"}}' + echo "npm publish pipeline queued for platform @ ${{ github.sha }}" diff --git a/.github/workflows/sync_for_expenses_generate.yaml b/.github/workflows/sync_for_expenses_generate.yaml index c3c913524..cc7e6a8af 100644 --- a/.github/workflows/sync_for_expenses_generate.yaml +++ b/.github/workflows/sync_for_expenses_generate.yaml @@ -1,3 +1,7 @@ +# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Generation no longer runs in this repo: generate-and-pr.yml in Codat SDK +# Codegen generates this SDK and opens a versioned PR here, dispatched by the +# oas pipeline. This stub only says so. name: Generate Sync for Expenses library 'on': workflow_dispatch: @@ -11,15 +15,12 @@ name: Generate Sync for Expenses library type: string jobs: generate: - uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15 - with: - mode: pr - speakeasy_version: latest - force: ${{ github.event.inputs.force }} - set_version: ${{ github.event.inputs.set_version }} - target: sync-for-expenses-library - secrets: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - npm_token: ${{ secrets.NPM_TOKEN }} + runs-on: ubuntu-latest + steps: + - name: Generation moved to Codat SDK Codegen + run: | + echo "::warning::This workflow no longer generates anything. sync-for-expenses is generated by generate-and-pr.yml in Codat SDK Codegen, dispatched by the oas pipeline, which opens a versioned PR on this repo." + # Exits 0 because the oas pipeline still runs this workflow on every OAS + # merge; flip to exit 1 in the same change that switches the oas trigger + # to the repository dispatch, so stray runs become loud. + exit 0 diff --git a/.github/workflows/sync_for_expenses_release.yaml b/.github/workflows/sync_for_expenses_release.yaml index 6256868f3..95ebfcc5f 100644 --- a/.github/workflows/sync_for_expenses_release.yaml +++ b/.github/workflows/sync_for_expenses_release.yaml @@ -1,3 +1,8 @@ +# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Publishing no longer runs in this repo. The packaging checks, the npm publish +# and the tag all run centrally in the Azure DevOps npm publish pipeline - no +# check has been dropped, they just moved. This stub only queues that pipeline, +# at the url in the ADO_PUBLISH_PIPELINE_URL repo variable. name: Release Sync for Expenses library 'on': push: @@ -5,11 +10,25 @@ name: Release Sync for Expenses library - sync-for-expenses/RELEASES.md branches: - main + workflow_dispatch: {} +concurrency: publish-sync-for-expenses-typescript jobs: publish: - uses: speakeasy-api/sdk-generation-action/.github/workflows/sdk-publish.yaml@v15 - secrets: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - npm_token: ${{ secrets.NPM_TOKEN }} + runs-on: ubuntu-latest + steps: + - name: Queue the central npm publish pipeline + run: | + if [ -z "${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" ]; then + echo "::error::ADO_PUBLISH_TRIGGER_TOKEN secret is not set - needed to queue the Azure DevOps npm publish pipeline" + exit 1 + fi + if [ -z "${{ vars.ADO_PUBLISH_PIPELINE_URL }}" ]; then + echo "::error::ADO_PUBLISH_PIPELINE_URL repo variable is not set - expected https://dev.azure.com///_apis/pipelines/" + exit 1 + fi + curl --fail-with-body --silent --show-error -X POST \ + -u ":${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" \ + -H "Content-Type: application/json" \ + "${{ vars.ADO_PUBLISH_PIPELINE_URL }}/runs?api-version=7.1" \ + -d '{"templateParameters": {"product": "sync-for-expenses", "sha": "${{ github.sha }}"}}' + echo "npm publish pipeline queued for sync-for-expenses @ ${{ github.sha }}" diff --git a/.github/workflows/sync_for_payables_generate.yaml b/.github/workflows/sync_for_payables_generate.yaml index 06552ce6f..114079a5e 100644 --- a/.github/workflows/sync_for_payables_generate.yaml +++ b/.github/workflows/sync_for_payables_generate.yaml @@ -1,3 +1,7 @@ +# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Generation no longer runs in this repo: generate-and-pr.yml in Codat SDK +# Codegen generates this SDK and opens a versioned PR here, dispatched by the +# oas pipeline. This stub only says so. name: Generate Sync for Payables library 'on': workflow_dispatch: @@ -11,15 +15,12 @@ name: Generate Sync for Payables library type: string jobs: generate: - uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15 - with: - mode: pr - speakeasy_version: latest - force: ${{ github.event.inputs.force }} - set_version: ${{ github.event.inputs.set_version }} - target: sync-for-payables-library - secrets: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - npm_token: ${{ secrets.NPM_TOKEN }} + runs-on: ubuntu-latest + steps: + - name: Generation moved to Codat SDK Codegen + run: | + echo "::warning::This workflow no longer generates anything. sync-for-payables is generated by generate-and-pr.yml in Codat SDK Codegen, dispatched by the oas pipeline, which opens a versioned PR on this repo." + # Exits 0 because the oas pipeline still runs this workflow on every OAS + # merge; flip to exit 1 in the same change that switches the oas trigger + # to the repository dispatch, so stray runs become loud. + exit 0 diff --git a/.github/workflows/sync_for_payables_release.yaml b/.github/workflows/sync_for_payables_release.yaml index b855fa109..6edd09cd6 100644 --- a/.github/workflows/sync_for_payables_release.yaml +++ b/.github/workflows/sync_for_payables_release.yaml @@ -1,3 +1,8 @@ +# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Publishing no longer runs in this repo. The packaging checks, the npm publish +# and the tag all run centrally in the Azure DevOps npm publish pipeline - no +# check has been dropped, they just moved. This stub only queues that pipeline, +# at the url in the ADO_PUBLISH_PIPELINE_URL repo variable. name: Release Sync for Payables library 'on': push: @@ -5,11 +10,25 @@ name: Release Sync for Payables library - sync-for-payables/RELEASES.md branches: - main + workflow_dispatch: {} +concurrency: publish-sync-for-payables-typescript jobs: publish: - uses: speakeasy-api/sdk-generation-action/.github/workflows/sdk-publish.yaml@v15 - secrets: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - npm_token: ${{ secrets.NPM_TOKEN }} + runs-on: ubuntu-latest + steps: + - name: Queue the central npm publish pipeline + run: | + if [ -z "${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" ]; then + echo "::error::ADO_PUBLISH_TRIGGER_TOKEN secret is not set - needed to queue the Azure DevOps npm publish pipeline" + exit 1 + fi + if [ -z "${{ vars.ADO_PUBLISH_PIPELINE_URL }}" ]; then + echo "::error::ADO_PUBLISH_PIPELINE_URL repo variable is not set - expected https://dev.azure.com///_apis/pipelines/" + exit 1 + fi + curl --fail-with-body --silent --show-error -X POST \ + -u ":${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" \ + -H "Content-Type: application/json" \ + "${{ vars.ADO_PUBLISH_PIPELINE_URL }}/runs?api-version=7.1" \ + -d '{"templateParameters": {"product": "sync-for-payables", "sha": "${{ github.sha }}"}}' + echo "npm publish pipeline queued for sync-for-payables @ ${{ github.sha }}" From e2d61b585ac3930f6861758cb368e291b2647953 Mon Sep 17 00:00:00 2001 From: mcollinscodat Date: Tue, 4 Aug 2026 14:29:01 +0100 Subject: [PATCH 2/4] feat/CONN-1273-release-stubs: the release stubs stop queuing the publish pipeline, and the pipeline itself lands in this repo .azuredevops/npm-publish.yml - new: builds, checks and publishes the released package to npm, triggered by the push to /RELEASES.md; written by sdk-codegen (cutover/npm_publish_pipeline.yml), do not edit by hand .github/workflows/bank_feeds_release.yaml - stub no longer queues Azure DevOps over REST, it just records where publishing went; no token, no pipeline url, no concurrency group .github/workflows/lending_release.yaml - same .github/workflows/platform_release.yaml - same .github/workflows/sync_for_expenses_release.yaml - same .github/workflows/sync_for_payables_release.yaml - same --- .azuredevops/npm-publish.yml | 324 ++++++++++++++++++ .github/workflows/bank_feeds_release.yaml | 28 +- .github/workflows/lending_release.yaml | 28 +- .github/workflows/platform_release.yaml | 28 +- .../workflows/sync_for_expenses_release.yaml | 28 +- .../workflows/sync_for_payables_release.yaml | 28 +- 6 files changed, 364 insertions(+), 100 deletions(-) create mode 100644 .azuredevops/npm-publish.yml diff --git a/.azuredevops/npm-publish.yml b/.azuredevops/npm-publish.yml new file mode 100644 index 000000000..47b3c1fb4 --- /dev/null +++ b/.azuredevops/npm-publish.yml @@ -0,0 +1,324 @@ +# Publishes one @codat/* TypeScript SDK package to public npm. +# +# This file lives in the SDK repo (codatio/client-sdk-typescript) at +# .azuredevops/npm-publish.yml, not in this repo: Azure Pipelines CI triggers +# only fire for the repository the YAML is committed to. The copy here is the +# source of truth that gets delivered into the SDK repo. +# +# It fires when a versioned release PR merges to main, which it recognises by a +# change to /RELEASES.md. The detect step works out which product that +# was; a versioned PR only ever touches one, so two at once is an error rather +# than a guess. A manual run can override the product for testing. +# +# Build stage: builds and packs the package at the merged commit and runs the +# packaging checks that used to run in the GitHub Actions release rehearsal +# (mirror_release_workflows.py). Publish stage: publishes the tarball under the +# "next" dist-tag; if the version is already on npm it skips and stays green, so +# a re-run is harmless. The npm credential lives in the +# codat-npm-publish-packages service connection and never leaves Azure. + +trigger: + branches: + include: [main] + paths: + include: + - bank-feeds/RELEASES.md + - lending/RELEASES.md + - platform/RELEASES.md + - sync-for-expenses/RELEASES.md + - sync-for-payables/RELEASES.md + +pr: none + +parameters: + - name: product + displayName: Product to publish ("auto" reads it from the merged commit) + type: string + default: auto + values: + - auto + - bank-feeds + - lending + - platform + - sync-for-expenses + - sync-for-payables + +resources: + repositories: + # Checkout-only: the check scripts (exports_smoke.mjs), products.json and + # the feed .npmrc live in the codegen repo. No trigger comes from here. + - repository: codegen + type: github + name: codat-internal/sdk-codegen + ref: refs/heads/main + endpoint: codat-tech + +variables: + nodeVersion: "20.x" + # Two repos are checked out, so each checkout step pins its own folder + # rather than relying on the default multi-repo layout. + sdkDir: $(Agent.BuildDirectory)/s/sdk + codegenDir: $(Agent.BuildDirectory)/s/codegen + publicNpmRegistry: "https://registry.npmjs.org/" + npmServiceConnection: "codat-npm-publish-packages" + packageArtifact: "npm-package" + distTag: "next" + +stages: + - stage: BuildValidate + displayName: "Build & validate" + jobs: + - job: BuildValidate + displayName: "Build, pack and check the package" + pool: codat-intg-managed-devops-pool-linux + variables: + NPM_CONFIG_USERCONFIG: $(Agent.TempDirectory)/.npmrc + steps: + # Two commits so the detect step can diff the merge against its parent. + - checkout: self + fetchDepth: 2 + path: s/sdk + - checkout: codegen + fetchDepth: 1 + path: s/codegen + + - task: Bash@3 + displayName: "Work out which product this release is for" + inputs: + targetType: inline + workingDirectory: $(sdkDir) + script: | + set -euo pipefail + override="${{ parameters.product }}" + if [ "$override" != "auto" ]; then + echo "Manual override: publishing $override" + echo "##vso[task.setvariable variable=product]$override" + exit 0 + fi + if ! git rev-parse --verify --quiet HEAD^ >/dev/null; then + echo "##[error]No parent commit to diff against — re-run with the product parameter set" + exit 1 + fi + # No match is a normal outcome here, not a script failure, so + # the guidance below gets a chance to print. + changed=$(git diff --name-only HEAD^ HEAD \ + | grep -E '^(bank-feeds|lending|platform|sync-for-expenses|sync-for-payables)/RELEASES\.md$' \ + | cut -d/ -f1 | sort -u || true) + count=$(echo "$changed" | grep -c . || true) + if [ "$count" -eq 0 ]; then + echo "##[error]No /RELEASES.md changed in $(git rev-parse --short HEAD) — nothing to publish. Re-run with the product parameter if this was intentional." + exit 1 + fi + if [ "$count" -gt 1 ]; then + echo "##[error]More than one product released in one commit: $(echo $changed). Release PRs are one product each — re-run per product with the product parameter." + exit 1 + fi + echo "Releasing $changed" + echo "##vso[task.setvariable variable=product]$changed" + + - task: UseNode@1 + displayName: "Install Node.js" + inputs: + version: $(nodeVersion) + + # Installs go through Codat's verified feed, not public npm — the feed + # mirrors npmjs and everything on it has been through safe-package-feeder. + # First run needs the feed owner to approve this pipeline's access. + - task: Bash@3 + displayName: "Point npm at Codat's verified feed" + inputs: + targetType: inline + script: cp "$(codegenDir)/parity/typescript/.npmrc.example" "$(Agent.TempDirectory)/.npmrc" + + - task: npmAuthenticate@0 + displayName: "Authenticate to the feed" + inputs: + workingFile: $(Agent.TempDirectory)/.npmrc + + - task: Bash@3 + displayName: "Check the product folder is there" + inputs: + targetType: inline + workingDirectory: $(sdkDir) + script: | + set -euo pipefail + if [ ! -f "$(product)/package.json" ]; then + echo "##[error]No $(product)/package.json at this commit — is the product folder name right?" + exit 1 + fi + + - task: Bash@3 + displayName: "Build and pack" + inputs: + targetType: inline + workingDirectory: $(sdkDir) + script: | + set -euo pipefail + cd "$(product)" + if [ -f package-lock.json ]; then npm ci; else npm install; fi + npm run build + cd .. + mkdir -p "$(Build.ArtifactStagingDirectory)/pack-out" + npm pack "./$(product)" --pack-destination "$(Build.ArtifactStagingDirectory)/pack-out" + + - task: Bash@3 + displayName: "Check the tarball carries the stamped version" + inputs: + targetType: inline + workingDirectory: $(Build.ArtifactStagingDirectory)/pack-out + script: | + set -euo pipefail + stamped=$(node -p "require('$(sdkDir)/$(product)/package.json').version") + echo "stamped version: $stamped" + ls | grep -F -- "-$stamped.tgz" >/dev/null || { + echo "##[error]Tarball does not carry version $stamped"; ls; exit 1; } + + - task: Bash@3 + displayName: "Tarball tripwire (dist populated, no .npmrc)" + inputs: + targetType: inline + workingDirectory: $(Build.ArtifactStagingDirectory)/pack-out + script: | + set -euo pipefail + tgz=$(ls *.tgz) + dist_js=$(tar -tzf "$tgz" | grep -c '^package/dist/.*\.js$' || true) + echo "built dist/*.js files in tarball: $dist_js" + if [ "$dist_js" -eq 0 ]; then + echo "##[error]Tarball has no built dist/*.js — the package would install empty" + tar -tzf "$tgz" | head -40; exit 1 + fi + if tar -tzf "$tgz" | grep -q '^package/\.npmrc$'; then + echo "##[error]Tarball contains .npmrc — private-feed credentials must never be published"; exit 1 + fi + + - task: Bash@3 + displayName: "npm publish dry run" + inputs: + targetType: inline + workingDirectory: $(Build.ArtifactStagingDirectory)/pack-out + script: npm publish ./*.tgz --dry-run --registry=$(publicNpmRegistry) + + - task: Bash@3 + displayName: "Install into a scratch consumer, compile and load" + inputs: + targetType: inline + script: | + set -euo pipefail + client=$(node -p " + const p = require('$(codegenDir)/products.json').products; + p['$(product)'].typescript.client_class_name") + mkdir "$(Agent.TempDirectory)/consumer" && cd "$(Agent.TempDirectory)/consumer" + npm init -y >/dev/null + npm install "$(Build.ArtifactStagingDirectory)"/pack-out/*.tgz typescript @types/node >/dev/null + cat > smoke.ts <&1) + status=$? + set -e + if [ $status -eq 0 ] && [ "$output" = "$version" ]; then + echo "##vso[task.setvariable variable=alreadyPublished]true" + echo "$name@$version is already on npm — nothing to publish." + elif { [ $status -eq 0 ] && [ -z "$output" ]; } || echo "$output" | grep -q "E404\|No match found for version"; then + echo "##vso[task.setvariable variable=alreadyPublished]false" + echo "$name@$version is not on npm yet — publishing under --tag $(distTag)." + else + echo "$output" + echo "##[error]Could not determine whether $name@$version is already on npm" + exit 1 + fi + + - task: Bash@3 + displayName: "Prepare public npm .npmrc" + inputs: + targetType: inline + workingDirectory: $(Pipeline.Workspace)/pack-out + script: | + { + echo "registry=$(publicNpmRegistry)" + echo "always-auth=true" + } > .npmrc + + - task: npmAuthenticate@0 + displayName: "Authenticate to public npm" + inputs: + workingFile: $(Pipeline.Workspace)/pack-out/.npmrc + customEndpoint: $(npmServiceConnection) + + - task: Bash@3 + displayName: "Publish" + inputs: + targetType: inline + workingDirectory: $(Pipeline.Workspace)/pack-out + script: | + set -euo pipefail + if [ "$(alreadyPublished)" = "true" ]; then + echo "Version already on npm — skipping publish." + exit 0 + fi + npm publish ./*.tgz --access public --tag $(distTag) diff --git a/.github/workflows/bank_feeds_release.yaml b/.github/workflows/bank_feeds_release.yaml index 6070dc67b..722033b28 100644 --- a/.github/workflows/bank_feeds_release.yaml +++ b/.github/workflows/bank_feeds_release.yaml @@ -1,8 +1,9 @@ # Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. -# Publishing no longer runs in this repo. The packaging checks, the npm publish -# and the tag all run centrally in the Azure DevOps npm publish pipeline - no -# check has been dropped, they just moved. This stub only queues that pipeline, -# at the url in the ADO_PUBLISH_PIPELINE_URL repo variable. +# Publishing no longer runs in this repo. The packaging checks, the upload to +# npm and the tag all run centrally in the Azure DevOps pipeline at +# .azuredevops/npm-publish.yml - no check has been dropped, they just moved. +# That pipeline watches this same RELEASES.md push itself, so this stub has +# nothing to hand on and only says where publishing went. name: Release Bank Feeds library 'on': push: @@ -11,24 +12,11 @@ name: Release Bank Feeds library branches: - main workflow_dispatch: {} -concurrency: publish-bank-feeds-typescript jobs: publish: runs-on: ubuntu-latest steps: - - name: Queue the central npm publish pipeline + - name: Publishing moved to the Azure DevOps pipeline run: | - if [ -z "${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" ]; then - echo "::error::ADO_PUBLISH_TRIGGER_TOKEN secret is not set - needed to queue the Azure DevOps npm publish pipeline" - exit 1 - fi - if [ -z "${{ vars.ADO_PUBLISH_PIPELINE_URL }}" ]; then - echo "::error::ADO_PUBLISH_PIPELINE_URL repo variable is not set - expected https://dev.azure.com///_apis/pipelines/" - exit 1 - fi - curl --fail-with-body --silent --show-error -X POST \ - -u ":${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" \ - -H "Content-Type: application/json" \ - "${{ vars.ADO_PUBLISH_PIPELINE_URL }}/runs?api-version=7.1" \ - -d '{"templateParameters": {"product": "bank-feeds", "sha": "${{ github.sha }}"}}' - echo "npm publish pipeline queued for bank-feeds @ ${{ github.sha }}" + echo "::warning::This workflow no longer publishes anything. bank-feeds is built, checked and published to npm by .azuredevops/npm-publish.yml, which triggers on this same push to bank-feeds/RELEASES.md." + exit 0 diff --git a/.github/workflows/lending_release.yaml b/.github/workflows/lending_release.yaml index d863b0d51..c78aa9f08 100644 --- a/.github/workflows/lending_release.yaml +++ b/.github/workflows/lending_release.yaml @@ -1,8 +1,9 @@ # Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. -# Publishing no longer runs in this repo. The packaging checks, the npm publish -# and the tag all run centrally in the Azure DevOps npm publish pipeline - no -# check has been dropped, they just moved. This stub only queues that pipeline, -# at the url in the ADO_PUBLISH_PIPELINE_URL repo variable. +# Publishing no longer runs in this repo. The packaging checks, the upload to +# npm and the tag all run centrally in the Azure DevOps pipeline at +# .azuredevops/npm-publish.yml - no check has been dropped, they just moved. +# That pipeline watches this same RELEASES.md push itself, so this stub has +# nothing to hand on and only says where publishing went. name: Release Lending library 'on': push: @@ -11,24 +12,11 @@ name: Release Lending library branches: - main workflow_dispatch: {} -concurrency: publish-lending-typescript jobs: publish: runs-on: ubuntu-latest steps: - - name: Queue the central npm publish pipeline + - name: Publishing moved to the Azure DevOps pipeline run: | - if [ -z "${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" ]; then - echo "::error::ADO_PUBLISH_TRIGGER_TOKEN secret is not set - needed to queue the Azure DevOps npm publish pipeline" - exit 1 - fi - if [ -z "${{ vars.ADO_PUBLISH_PIPELINE_URL }}" ]; then - echo "::error::ADO_PUBLISH_PIPELINE_URL repo variable is not set - expected https://dev.azure.com///_apis/pipelines/" - exit 1 - fi - curl --fail-with-body --silent --show-error -X POST \ - -u ":${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" \ - -H "Content-Type: application/json" \ - "${{ vars.ADO_PUBLISH_PIPELINE_URL }}/runs?api-version=7.1" \ - -d '{"templateParameters": {"product": "lending", "sha": "${{ github.sha }}"}}' - echo "npm publish pipeline queued for lending @ ${{ github.sha }}" + echo "::warning::This workflow no longer publishes anything. lending is built, checked and published to npm by .azuredevops/npm-publish.yml, which triggers on this same push to lending/RELEASES.md." + exit 0 diff --git a/.github/workflows/platform_release.yaml b/.github/workflows/platform_release.yaml index 9f5e29161..b06111665 100644 --- a/.github/workflows/platform_release.yaml +++ b/.github/workflows/platform_release.yaml @@ -1,8 +1,9 @@ # Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. -# Publishing no longer runs in this repo. The packaging checks, the npm publish -# and the tag all run centrally in the Azure DevOps npm publish pipeline - no -# check has been dropped, they just moved. This stub only queues that pipeline, -# at the url in the ADO_PUBLISH_PIPELINE_URL repo variable. +# Publishing no longer runs in this repo. The packaging checks, the upload to +# npm and the tag all run centrally in the Azure DevOps pipeline at +# .azuredevops/npm-publish.yml - no check has been dropped, they just moved. +# That pipeline watches this same RELEASES.md push itself, so this stub has +# nothing to hand on and only says where publishing went. name: Release Platform library 'on': push: @@ -11,24 +12,11 @@ name: Release Platform library branches: - main workflow_dispatch: {} -concurrency: publish-platform-typescript jobs: publish: runs-on: ubuntu-latest steps: - - name: Queue the central npm publish pipeline + - name: Publishing moved to the Azure DevOps pipeline run: | - if [ -z "${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" ]; then - echo "::error::ADO_PUBLISH_TRIGGER_TOKEN secret is not set - needed to queue the Azure DevOps npm publish pipeline" - exit 1 - fi - if [ -z "${{ vars.ADO_PUBLISH_PIPELINE_URL }}" ]; then - echo "::error::ADO_PUBLISH_PIPELINE_URL repo variable is not set - expected https://dev.azure.com///_apis/pipelines/" - exit 1 - fi - curl --fail-with-body --silent --show-error -X POST \ - -u ":${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" \ - -H "Content-Type: application/json" \ - "${{ vars.ADO_PUBLISH_PIPELINE_URL }}/runs?api-version=7.1" \ - -d '{"templateParameters": {"product": "platform", "sha": "${{ github.sha }}"}}' - echo "npm publish pipeline queued for platform @ ${{ github.sha }}" + echo "::warning::This workflow no longer publishes anything. platform is built, checked and published to npm by .azuredevops/npm-publish.yml, which triggers on this same push to platform/RELEASES.md." + exit 0 diff --git a/.github/workflows/sync_for_expenses_release.yaml b/.github/workflows/sync_for_expenses_release.yaml index 95ebfcc5f..d47c6e38a 100644 --- a/.github/workflows/sync_for_expenses_release.yaml +++ b/.github/workflows/sync_for_expenses_release.yaml @@ -1,8 +1,9 @@ # Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. -# Publishing no longer runs in this repo. The packaging checks, the npm publish -# and the tag all run centrally in the Azure DevOps npm publish pipeline - no -# check has been dropped, they just moved. This stub only queues that pipeline, -# at the url in the ADO_PUBLISH_PIPELINE_URL repo variable. +# Publishing no longer runs in this repo. The packaging checks, the upload to +# npm and the tag all run centrally in the Azure DevOps pipeline at +# .azuredevops/npm-publish.yml - no check has been dropped, they just moved. +# That pipeline watches this same RELEASES.md push itself, so this stub has +# nothing to hand on and only says where publishing went. name: Release Sync for Expenses library 'on': push: @@ -11,24 +12,11 @@ name: Release Sync for Expenses library branches: - main workflow_dispatch: {} -concurrency: publish-sync-for-expenses-typescript jobs: publish: runs-on: ubuntu-latest steps: - - name: Queue the central npm publish pipeline + - name: Publishing moved to the Azure DevOps pipeline run: | - if [ -z "${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" ]; then - echo "::error::ADO_PUBLISH_TRIGGER_TOKEN secret is not set - needed to queue the Azure DevOps npm publish pipeline" - exit 1 - fi - if [ -z "${{ vars.ADO_PUBLISH_PIPELINE_URL }}" ]; then - echo "::error::ADO_PUBLISH_PIPELINE_URL repo variable is not set - expected https://dev.azure.com///_apis/pipelines/" - exit 1 - fi - curl --fail-with-body --silent --show-error -X POST \ - -u ":${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" \ - -H "Content-Type: application/json" \ - "${{ vars.ADO_PUBLISH_PIPELINE_URL }}/runs?api-version=7.1" \ - -d '{"templateParameters": {"product": "sync-for-expenses", "sha": "${{ github.sha }}"}}' - echo "npm publish pipeline queued for sync-for-expenses @ ${{ github.sha }}" + echo "::warning::This workflow no longer publishes anything. sync-for-expenses is built, checked and published to npm by .azuredevops/npm-publish.yml, which triggers on this same push to sync-for-expenses/RELEASES.md." + exit 0 diff --git a/.github/workflows/sync_for_payables_release.yaml b/.github/workflows/sync_for_payables_release.yaml index 6edd09cd6..d59a0d1b4 100644 --- a/.github/workflows/sync_for_payables_release.yaml +++ b/.github/workflows/sync_for_payables_release.yaml @@ -1,8 +1,9 @@ # Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. -# Publishing no longer runs in this repo. The packaging checks, the npm publish -# and the tag all run centrally in the Azure DevOps npm publish pipeline - no -# check has been dropped, they just moved. This stub only queues that pipeline, -# at the url in the ADO_PUBLISH_PIPELINE_URL repo variable. +# Publishing no longer runs in this repo. The packaging checks, the upload to +# npm and the tag all run centrally in the Azure DevOps pipeline at +# .azuredevops/npm-publish.yml - no check has been dropped, they just moved. +# That pipeline watches this same RELEASES.md push itself, so this stub has +# nothing to hand on and only says where publishing went. name: Release Sync for Payables library 'on': push: @@ -11,24 +12,11 @@ name: Release Sync for Payables library branches: - main workflow_dispatch: {} -concurrency: publish-sync-for-payables-typescript jobs: publish: runs-on: ubuntu-latest steps: - - name: Queue the central npm publish pipeline + - name: Publishing moved to the Azure DevOps pipeline run: | - if [ -z "${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" ]; then - echo "::error::ADO_PUBLISH_TRIGGER_TOKEN secret is not set - needed to queue the Azure DevOps npm publish pipeline" - exit 1 - fi - if [ -z "${{ vars.ADO_PUBLISH_PIPELINE_URL }}" ]; then - echo "::error::ADO_PUBLISH_PIPELINE_URL repo variable is not set - expected https://dev.azure.com///_apis/pipelines/" - exit 1 - fi - curl --fail-with-body --silent --show-error -X POST \ - -u ":${{ secrets.ADO_PUBLISH_TRIGGER_TOKEN }}" \ - -H "Content-Type: application/json" \ - "${{ vars.ADO_PUBLISH_PIPELINE_URL }}/runs?api-version=7.1" \ - -d '{"templateParameters": {"product": "sync-for-payables", "sha": "${{ github.sha }}"}}' - echo "npm publish pipeline queued for sync-for-payables @ ${{ github.sha }}" + echo "::warning::This workflow no longer publishes anything. sync-for-payables is built, checked and published to npm by .azuredevops/npm-publish.yml, which triggers on this same push to sync-for-payables/RELEASES.md." + exit 0 From 146cfa82a9218c37da4c2cf1f7e3e55fff57a485 Mon Sep 17 00:00:00 2001 From: mcollinscodat Date: Tue, 4 Aug 2026 15:13:08 +0100 Subject: [PATCH 3/4] feat/CONN-1273-release-stubs: re-deliver the publish pipeline after its comments were reworded .azuredevops/npm-publish.yml - re-emitted from cutover/npm_publish_pipeline.yml in sdk-codegen: clearer header comments and the two source paths now read from $(Build.SourcesDirectory); no change to what the pipeline does --- .azuredevops/npm-publish.yml | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/.azuredevops/npm-publish.yml b/.azuredevops/npm-publish.yml index 47b3c1fb4..b7cd679ab 100644 --- a/.azuredevops/npm-publish.yml +++ b/.azuredevops/npm-publish.yml @@ -1,18 +1,17 @@ # Publishes one @codat/* TypeScript SDK package to public npm. # -# This file lives in the SDK repo (codatio/client-sdk-typescript) at -# .azuredevops/npm-publish.yml, not in this repo: Azure Pipelines CI triggers -# only fire for the repository the YAML is committed to. The copy here is the -# source of truth that gets delivered into the SDK repo. +# This file actually lives in the SDK repo (codatio/client-sdk-typescript) at +# .azuredevops/npm-publish.yml, not in this repo because Azure Pipelines CI +# triggers only fire for the repository the YAML is committed to. The copy here +# is the source of truth that gets delivered into the SDK repo. # # It fires when a versioned release PR merges to main, which it recognises by a # change to /RELEASES.md. The detect step works out which product that -# was; a versioned PR only ever touches one, so two at once is an error rather -# than a guess. A manual run can override the product for testing. +# was; a versioned PR only ever touches one product at a time, so two at once +# will error. A manual run can override the product for testing. # -# Build stage: builds and packs the package at the merged commit and runs the -# packaging checks that used to run in the GitHub Actions release rehearsal -# (mirror_release_workflows.py). Publish stage: publishes the tarball under the +# Build stage: builds and packs the package at the merged commit and runs +# packaging checks. Publish stage: publishes the tarball under the # "next" dist-tag; if the version is already on npm it skips and stays green, so # a re-run is harmless. The npm credential lives in the # codat-npm-publish-packages service connection and never leaves Azure. @@ -45,8 +44,6 @@ parameters: resources: repositories: - # Checkout-only: the check scripts (exports_smoke.mjs), products.json and - # the feed .npmrc live in the codegen repo. No trigger comes from here. - repository: codegen type: github name: codat-internal/sdk-codegen @@ -55,10 +52,9 @@ resources: variables: nodeVersion: "20.x" - # Two repos are checked out, so each checkout step pins its own folder - # rather than relying on the default multi-repo layout. - sdkDir: $(Agent.BuildDirectory)/s/sdk - codegenDir: $(Agent.BuildDirectory)/s/codegen + # Both checkouts pin their folder, so these paths don't depend on ADO's default naming + sdkDir: $(Build.SourcesDirectory)/sdk + codegenDir: $(Build.SourcesDirectory)/codegen publicNpmRegistry: "https://registry.npmjs.org/" npmServiceConnection: "codat-npm-publish-packages" packageArtifact: "npm-package" From dd18d0aff3de41c0d815bec2d84a3f1d101f9aa3 Mon Sep 17 00:00:00 2001 From: mcollinscodat Date: Tue, 4 Aug 2026 15:33:18 +0100 Subject: [PATCH 4/4] feat/CONN-1273-release-stubs: re-deliver after the header wording was tidied .azuredevops/npm-publish.yml - the header no longer says "this repo", which flipped meaning depending on which copy you read; it names both repos and carries the written-by line the stubs have .github/workflows - all ten stubs: the written-by line names just the emitter file, not its path --- .azuredevops/npm-publish.yml | 9 +++++---- .github/workflows/bank_feeds_generate.yaml | 2 +- .github/workflows/bank_feeds_release.yaml | 2 +- .github/workflows/lending_generate.yaml | 2 +- .github/workflows/lending_release.yaml | 2 +- .github/workflows/platform_generate.yaml | 2 +- .github/workflows/platform_release.yaml | 2 +- .github/workflows/sync_for_expenses_generate.yaml | 2 +- .github/workflows/sync_for_expenses_release.yaml | 2 +- .github/workflows/sync_for_payables_generate.yaml | 2 +- .github/workflows/sync_for_payables_release.yaml | 2 +- 11 files changed, 15 insertions(+), 14 deletions(-) diff --git a/.azuredevops/npm-publish.yml b/.azuredevops/npm-publish.yml index b7cd679ab..e1a1f48fc 100644 --- a/.azuredevops/npm-publish.yml +++ b/.azuredevops/npm-publish.yml @@ -1,9 +1,10 @@ # Publishes one @codat/* TypeScript SDK package to public npm. # -# This file actually lives in the SDK repo (codatio/client-sdk-typescript) at -# .azuredevops/npm-publish.yml, not in this repo because Azure Pipelines CI -# triggers only fire for the repository the YAML is committed to. The copy here -# is the source of truth that gets delivered into the SDK repo. +# Written by sdk-codegen (npm_publish_pipeline.yml); do not edit by hand. +# It runs from codatio/client-sdk-typescript at .azuredevops/npm-publish.yml, +# because an Azure Pipelines CI trigger only fires for the repository the YAML +# is committed to. codat-internal/sdk-codegen holds the source of truth and +# delivers a copy into the SDK repo. # # It fires when a versioned release PR merges to main, which it recognises by a # change to /RELEASES.md. The detect step works out which product that diff --git a/.github/workflows/bank_feeds_generate.yaml b/.github/workflows/bank_feeds_generate.yaml index 642f7ac2f..2fd103af1 100644 --- a/.github/workflows/bank_feeds_generate.yaml +++ b/.github/workflows/bank_feeds_generate.yaml @@ -1,4 +1,4 @@ -# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Written by sdk-codegen (emit_workflow_stubs.py); do not edit by hand. # Generation no longer runs in this repo: generate-and-pr.yml in Codat SDK # Codegen generates this SDK and opens a versioned PR here, dispatched by the # oas pipeline. This stub only says so. diff --git a/.github/workflows/bank_feeds_release.yaml b/.github/workflows/bank_feeds_release.yaml index 722033b28..84949dc01 100644 --- a/.github/workflows/bank_feeds_release.yaml +++ b/.github/workflows/bank_feeds_release.yaml @@ -1,4 +1,4 @@ -# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Written by sdk-codegen (emit_workflow_stubs.py); do not edit by hand. # Publishing no longer runs in this repo. The packaging checks, the upload to # npm and the tag all run centrally in the Azure DevOps pipeline at # .azuredevops/npm-publish.yml - no check has been dropped, they just moved. diff --git a/.github/workflows/lending_generate.yaml b/.github/workflows/lending_generate.yaml index 370a0b71b..93bcaab3b 100644 --- a/.github/workflows/lending_generate.yaml +++ b/.github/workflows/lending_generate.yaml @@ -1,4 +1,4 @@ -# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Written by sdk-codegen (emit_workflow_stubs.py); do not edit by hand. # Generation no longer runs in this repo: generate-and-pr.yml in Codat SDK # Codegen generates this SDK and opens a versioned PR here, dispatched by the # oas pipeline. This stub only says so. diff --git a/.github/workflows/lending_release.yaml b/.github/workflows/lending_release.yaml index c78aa9f08..7836d26fa 100644 --- a/.github/workflows/lending_release.yaml +++ b/.github/workflows/lending_release.yaml @@ -1,4 +1,4 @@ -# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Written by sdk-codegen (emit_workflow_stubs.py); do not edit by hand. # Publishing no longer runs in this repo. The packaging checks, the upload to # npm and the tag all run centrally in the Azure DevOps pipeline at # .azuredevops/npm-publish.yml - no check has been dropped, they just moved. diff --git a/.github/workflows/platform_generate.yaml b/.github/workflows/platform_generate.yaml index 8b8936e35..a0dc2273e 100644 --- a/.github/workflows/platform_generate.yaml +++ b/.github/workflows/platform_generate.yaml @@ -1,4 +1,4 @@ -# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Written by sdk-codegen (emit_workflow_stubs.py); do not edit by hand. # Generation no longer runs in this repo: generate-and-pr.yml in Codat SDK # Codegen generates this SDK and opens a versioned PR here, dispatched by the # oas pipeline. This stub only says so. diff --git a/.github/workflows/platform_release.yaml b/.github/workflows/platform_release.yaml index b06111665..1e86161e9 100644 --- a/.github/workflows/platform_release.yaml +++ b/.github/workflows/platform_release.yaml @@ -1,4 +1,4 @@ -# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Written by sdk-codegen (emit_workflow_stubs.py); do not edit by hand. # Publishing no longer runs in this repo. The packaging checks, the upload to # npm and the tag all run centrally in the Azure DevOps pipeline at # .azuredevops/npm-publish.yml - no check has been dropped, they just moved. diff --git a/.github/workflows/sync_for_expenses_generate.yaml b/.github/workflows/sync_for_expenses_generate.yaml index cc7e6a8af..fafe61375 100644 --- a/.github/workflows/sync_for_expenses_generate.yaml +++ b/.github/workflows/sync_for_expenses_generate.yaml @@ -1,4 +1,4 @@ -# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Written by sdk-codegen (emit_workflow_stubs.py); do not edit by hand. # Generation no longer runs in this repo: generate-and-pr.yml in Codat SDK # Codegen generates this SDK and opens a versioned PR here, dispatched by the # oas pipeline. This stub only says so. diff --git a/.github/workflows/sync_for_expenses_release.yaml b/.github/workflows/sync_for_expenses_release.yaml index d47c6e38a..3fde6470d 100644 --- a/.github/workflows/sync_for_expenses_release.yaml +++ b/.github/workflows/sync_for_expenses_release.yaml @@ -1,4 +1,4 @@ -# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Written by sdk-codegen (emit_workflow_stubs.py); do not edit by hand. # Publishing no longer runs in this repo. The packaging checks, the upload to # npm and the tag all run centrally in the Azure DevOps pipeline at # .azuredevops/npm-publish.yml - no check has been dropped, they just moved. diff --git a/.github/workflows/sync_for_payables_generate.yaml b/.github/workflows/sync_for_payables_generate.yaml index 114079a5e..fb56617ce 100644 --- a/.github/workflows/sync_for_payables_generate.yaml +++ b/.github/workflows/sync_for_payables_generate.yaml @@ -1,4 +1,4 @@ -# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Written by sdk-codegen (emit_workflow_stubs.py); do not edit by hand. # Generation no longer runs in this repo: generate-and-pr.yml in Codat SDK # Codegen generates this SDK and opens a versioned PR here, dispatched by the # oas pipeline. This stub only says so. diff --git a/.github/workflows/sync_for_payables_release.yaml b/.github/workflows/sync_for_payables_release.yaml index d59a0d1b4..33c6b8a9d 100644 --- a/.github/workflows/sync_for_payables_release.yaml +++ b/.github/workflows/sync_for_payables_release.yaml @@ -1,4 +1,4 @@ -# Written by sdk-codegen (cutover/emit_workflow_stubs.py); do not edit by hand. +# Written by sdk-codegen (emit_workflow_stubs.py); do not edit by hand. # Publishing no longer runs in this repo. The packaging checks, the upload to # npm and the tag all run centrally in the Azure DevOps pipeline at # .azuredevops/npm-publish.yml - no check has been dropped, they just moved.