Repository: airbytehq/airbyte
Pull request #60969: ci: remove stale/deprecated workflows
Author: login: aaronsteers
Created: 2025-05-29T06:11:53Z | Merged: 2025-05-29T21:51:17Z

## What

- Deletes old, stale, or deprecated workflows.
- Re-sorts slash command dispatch event names, deleting those which no longer exist. 

## Related

- https://github.com/airbytehq/airbyte/pull/60967
- https://github.com/airbytehq/airbyte/pull/60966

> [!IMPORTANT]
> **Auto-merge enabled.**
> 
> _This PR is set to merge automatically when all requirements are met._

> [!NOTE]
> **Auto-merge may have been disabled. Please check the PR status to confirm.**


Diff:
diff --git a/.github/workflows/approve-and-merge-dispatch.yml b/.github/workflows/approve-and-merge-dispatch.yml
deleted file mode 100644
index 85df84d35ea5..000000000000
--- a/.github/workflows/approve-and-merge-dispatch.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-name: Approve and Merge Command Dispatch
-on:
-  issue_comment:
-    types: [created]
-jobs:
-  approveAndMergeDispatch:
-    runs-on: ubuntu-24.04
-    steps:
-      - name: Auto Approve Slash Command Dispatch
-        uses: peter-evans/slash-command-dispatch@v3
-        id: scd
-        with:
-          token: ${{ secrets.GH_PAT_APPROVINGTON_OCTAVIA }}
-          permission: admin
-          issue-type: pull-request
-          repository: airbytehq/airbyte-platform-internal
-          dispatch-type: repository
-          commands: |
-            approve-and-merge
-
-      - name: Edit comment with error message
-        if: steps.scd.outputs.error-message
-        uses: peter-evans/create-or-update-comment@v1
-        with:
-          comment-id: ${{ github.event.comment.id }}
-          body: |
-            > Error!: ${{ steps.scd.outputs.error-message }}
-
-      - name: Checkout Airbyte
-        id: checkout
-        if: failure() || steps.scd.outputs.error-message
-        uses: actions/checkout@v2
-
-      - name: Run get_repo_admins.sh
-        if: failure() || steps.scd.outputs.error-message
-        id: repo_admins
-        run: |
-          echo "REPO_ADMINS=$(./tools/bin/get_repo_admins.sh ${{ secrets.GH_PAT_APPROVINGTON_OCTAVIA }} airbytehq/airbyte)" >> $GITHUB_ENV
-
-      - name: Edit comment with repo admins
-        if: failure() || steps.scd.outputs.error-message
-        uses: peter-evans/create-or-update-comment@v1
-        with:
-          comment-id: ${{ github.event.comment.id }}
-          body: |
-            >
-            > Important: This command can only be run by one of the repository admins:
-            > ${{ env.REPO_ADMINS }}
diff --git a/.github/workflows/connector_code_freeze.yml b/.github/workflows/connector_code_freeze.yml
deleted file mode 100644
index dc7832acc0ce..000000000000
--- a/.github/workflows/connector_code_freeze.yml
+++ /dev/null
@@ -1,79 +0,0 @@
-# This workflow is meant to be used to prevent/discourage merging to master during code freeze.
-# The code freeze dates are set in the env variables CODE_FREEZE_START_DATE and CODE_FREEZE_END_DATE.
-# If any connector code has been changed we display a warning message reminding merging is blocked and who to contact.
-# If no connector connector code has been changed we only display a warning message reminding merging is discouraged.
-# The Code freeze check job will be set as a required check for PRs in branch protection rules.
-
-name: Code freeze
-
-on:
-  pull_request:
-    types:
-      - opened
-      - synchronize
-      - ready_for_review
-
-env:
-  CODE_FREEZE_START_DATE: "2023-12-21"
-  CODE_FREEZE_END_DATE: "2024-01-02"
-jobs:
-  code-freeze-check:
-    runs-on: ubuntu-24.04
-    name: Code freeze check
-    permissions:
-      # This is required to be able to comment on PRs and list changed files
-      pull-requests: write
-
-    steps:
-      # Check if code freeze is in effect by comparing the current date with the start and end date of the code freeze
-      - name: Check code freeze in effect
-        id: check-code-freeze-in-effect
-        run: |
-          start_date=$(date -d "$CODE_FREEZE_START_DATE" +%s)
-          end_date=$(date -d "$CODE_FREEZE_END_DATE" +%s)
-          current_date=$(date +%s)
-
-          if [ "$current_date" -ge "$start_date" ] && [ "$current_date" -le "$end_date" ]; then
-              echo "Code freeze is in effect"
-              echo "is_in_code_freeze=true" >> $GITHUB_OUTPUT
-          else
-              echo "Code freeze is not in effect"
-              echo "is_in_code_freeze=false" >> $GITHUB_OUTPUT
-          fi
-
-      # Use GitHub PR Api to get the list of changed files
-      # Filter the list to only keep the connectors files
-      - name: Get changed files
-        if: steps.check-code-freeze-in-effect.outputs.is_in_code_freeze == 'true'
-        id: changed-files
-        uses: tj-actions/changed-files@v44
-        with:
-          files_yaml: |
-            connectors:
-              - 'airbyte-integrations/connectors/**'
-              - '!**/*.md'
-
-      # If any connector code has been changed we display a warning message reminding merging is blocked and who to contact
-      - name: Code freeze comment on PR
-        if: steps.changed-files.outputs.connectors_any_changed == 'true' && steps.check-code-freeze-in-effect.outputs.is_in_code_freeze == 'true'
-        uses: thollander/actions-comment-pull-request@v2
-        with:
-          comment_tag: code_freeze_warning
-          message: |
-            > [!WARNING]
-            > <b>🚨 Connector code freeze is in effect until ${{ env.CODE_FREEZE_END_DATE }}. This PR is changing connector code. Please contact the current OC engineers if you want to merge this change to master.</b>
-
-      # If no connector code has been changed we only display a warning message reminding merging is discouraged
-      - name: Code freeze comment on PR
-        if: steps.changed-files.outputs.connectors_any_changed == 'false' && steps.check-code-freeze-in-effect.outputs.is_in_code_freeze == 'true'
-        uses: thollander/actions-comment-pull-request@v2
-        with:
-          comment_tag: code_freeze_warning
-          message: |
-            > [!WARNING]
-            > <b>Soft code freeze is in effect until ${{ env.CODE_FREEZE_END_DATE }}. Please avoid merging to master. #freedom-and-responsibility</b>
-
-      # Fail the workflow if connector code has been changed to prevent merging to master
-      - name: Fail workflow if connector code has been changed
-        if: steps.changed-files.outputs.connectors_any_changed == 'true' && steps.check-code-freeze-in-effect.outputs.is_in_code_freeze == 'true'
-        run: echo "Connector code freeze is in effect. Please contact the current OC engineers if you want to merge this change." && exit 1
diff --git a/.github/workflows/connectors_weekly_build.yml b/.github/workflows/connectors_weekly_build.yml
deleted file mode 100644
index baf7baee6f75..000000000000
--- a/.github/workflows/connectors_weekly_build.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-name: Connector Ops CI - Connectors Weekly Tests
-
-on:
-  schedule:
-    # 12PM UTC on Sunday is 2PM CEST, 3PM EEST, 5 PDT.
-    - cron: "0 12 * * 0"
-  workflow_dispatch:
-    inputs:
-      test-connectors-options:
-        default: --concurrency=3 --support-level=community
-        required: true
-
-run-name: "Test connectors: ${{ inputs.test-connectors-options || 'weekly build for Community connectors' }}"
-
-jobs:
-  test_connectors:
-    name: "Test connectors: ${{ inputs.test-connectors-options || 'weekly build for Community connectors' }}"
-    timeout-minutes: 8640 # 6 days
-    runs-on: connector-weekly-xlarge
-    steps:
-      - name: Checkout Airbyte
-        uses: actions/checkout@v3
-        with:
-          repository: ${{ github.event.inputs.repo }}
-          ref: ${{ github.event.inputs.gitref }}
-      - name: Extract branch name
-        shell: bash
-        run: echo "branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
-        id: extract_branch
-      - name: Test connectors
-        uses: ./.github/actions/run-airbyte-ci
-        with:
-          context: "master"
-          ci_job_key: "weekly_alpha_test"
-          dagger_cloud_token: ${{ secrets.DAGGER_CLOUD_TOKEN_CACHE_3 }}
-          docker_hub_password: ${{ secrets.DOCKER_HUB_PASSWORD }}
-          docker_hub_username: ${{ secrets.DOCKER_HUB_USERNAME }}
-          gcp_gsm_credentials: ${{ secrets.GCP_GSM_CREDENTIALS }}
-          git_branch: ${{ steps.extract_branch.outputs.branch }}
-          github_token: ${{ secrets.GITHUB_TOKEN }}
-          subcommand: '--show-dagger-logs connectors ${{ inputs.test-connectors-options || ''--concurrency=3 --metadata-query="(data.ab_internal.ql > 100) & (data.ab_internal.sl < 200)"'' }} test'
diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml
deleted file mode 100644
index 1d38dcab8017..000000000000
--- a/.github/workflows/publish_pypi.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-name: Publish connectors to PyPI
-
-on:
-  workflow_dispatch:
-    inputs:
-      runs-on:
-        type: string
-        default: ci-runner-connector-publish-large-dagger-0-9-5
-        required: true
-
-jobs:
-  no-op:
-    name: No-op
-    runs-on: ${{ inputs.runs-on || 'ci-runner-connector-publish-large-dagger-0-9-5' }}
-    steps:
-      - run: echo 'hi!'
diff --git a/.github/workflows/slash-commands.yml b/.github/workflows/slash-commands.yml
index 8ac5c0b2eaf4..e0f148c92525 100644
--- a/.github/workflows/slash-commands.yml
+++ b/.github/workflows/slash-commands.yml
@@ -24,18 +24,17 @@ jobs:
           issue-type: both
 
           commands: |
+            approve-regression-tests
             bump-bulk-cdk-and-release-connectors
-            bump-version
             bump-cdk-version-and-merge
+            bump-version
+            connector-performance
             format-fix
-            test
+            poe
+            publish-java-cdk
             run-cat-tests
             run-connector-tests
             test-performance
-            publish-java-cdk
-            connector-performance
-            approve-regression-tests
-            poe
 
           # Notes regarding static-args:
           # - Slash commands can be invoked from both issues and comments.
diff --git a/.github/workflows/terminate-zombie-build-instances.yml b/.github/workflows/terminate-zombie-build-instances.yml
deleted file mode 100644
index 15e15f72ac06..000000000000
--- a/.github/workflows/terminate-zombie-build-instances.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-# Required since we cannot guarantee instances are always terminated.
-# Also a failsafe against a dev writing a workflow that does not terminate build instances.
-# Though the average Airbyte build runtime as of this commit is ~20 mins, connector builds
-# can take up to 3 hours. Set this to 3 hours to include these longer runs.
-name: Terminate Zombie Build Instances
-
-on:
-  workflow_dispatch:
-  schedule:
-    - cron: "0 */1 * * *"
-
-jobs:
-  terminate:
-    runs-on: ubuntu-24.04
-    steps:
-      - name: List and Terminate Instances Older Than 4 Hours
-        env:
-          AWS_ACCESS_KEY_ID: ${{ secrets.SELF_RUNNER_AWS_ACCESS_KEY_ID }}
-          AWS_SECRET_ACCESS_KEY: ${{ secrets.SELF_RUNNER_AWS_SECRET_ACCESS_KEY }}
-          # See https://github.com/aws/aws-cli/issues/5623
-          AWS_EC2_METADATA_DISABLED: true
-        run: |
-          set -euxo pipefail
-
-          export TIME_LIMIT=14400 # 4 hours
-
-          aws configure set default.region us-east-2
-
-          # See https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-instances.html for describe command.
-          # Since the AWS cli returns an ISO HH:MM timestamp, and Jq only accepts Z timestamps, we define a function toZ to convert this.
-          export to_terminate=$(aws ec2 describe-instances --no-paginate --filters --filters 'Name=tag:Repository,Values=airbytehq/airbyte-platform-internal,airbytehq/airbyte-platform,airbytehq/airbyte' Name=instance-state-name,Values=running \
-            --query 'Reservations[*].Instances[*].{Instance:InstanceId,LaunchTime:LaunchTime}' --output json \
-          | jq 'def toZ(str): str | (split("+")[0] + "Z") | fromdate ;
-              flatten | map( { InstanceId: .Instance, LaunchTime: toZ(.LaunchTime) } ) | map( select ( .LaunchTime < (now - (env.TIME_LIMIT|tonumber)) ) )')
-
-          echo "MARKED FOR TERMINATION: ${to_terminate}"
-
-          # See https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html for terminate command.
-          echo $to_terminate |  jq '.[]  | .InstanceId' | xargs --no-run-if-empty --max-args=1 aws ec2 terminate-instances --instance-ids
-  terminate-github-instances:
-    runs-on: ubuntu-24.04
-    steps:
-      - name: Checkout Airbyte
-        uses: actions/checkout@v3
-      - name: List and Terminate GH actions in status 'offline'
-        env:
-          GITHUB_PAT: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
-        run: ./tools/bin/gh_action_zombie_killer
diff --git a/.github/workflows/workflow-cleanup.yml b/.github/workflows/workflow-cleanup.yml
deleted file mode 100644
index 65fc05751902..000000000000
--- a/.github/workflows/workflow-cleanup.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-name: Cleanup old GH workflow runs
-
-on:
-  schedule:
-    - cron: "0 12 * * *" # runs at 12:00 UTC everyday
-
-jobs:
-  build:
-    runs-on: ubuntu-24.04
-    steps:
-      - name: checkout repo content
-        uses: actions/checkout@v3 # checkout the repository content to github runner
-
-      - name: setup python
-        uses: actions/setup-python@v4
-        with:
-          python-version: "3.9.13" # install the python version needed
-
-      - name: install python packages
-        run: |
-          python -m pip install --upgrade pip
-          pip install PyGithub slack_sdk
-
-      - name: execute cleanup workflow py script
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: python tools/bin/cleanup-workflow-runs.py --delete
-
-      - name: execute dormant workflow py script
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          SLACK_TOKEN: ${{ secrets.SLACK_BOT_TOKEN_AIRBYTE_TEAM }}
-
-        run: python tools/bin/identify-dormant-workflows.py


Reviews:
user: login: aaronsteers
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-29T21:01:38Z
user: login: aaronsteers
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-29T21:01:55Z
user: login: aaronsteers
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-29T21:02:24Z
user: login: aaronsteers
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-29T21:03:52Z
user: login: aaronsteers
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-29T21:04:30Z
user: login: aaronsteers
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-29T21:08:20Z

Review comments:
path: .github/workflows/approve-and-merge-dispatch.yml
user: login: aaronsteers
body: As far as I could tell, this isn't hooked up anymore.
created_at: 2025-05-29T21:01:38Z
author_association: MEMBER
path: .github/workflows/connector_code_freeze.yml
user: login: aaronsteers
body: This hasn't been used in 18 months.
created_at: 2025-05-29T21:01:55Z
author_association: MEMBER
path: .github/workflows/connectors_weekly_build.yml
user: login: aaronsteers
body: This is explicitly marked "Disabled" in GitHub Actions.

![image](https://github.com/user-attachments/assets/c64bcb52-3914-4ccb-8fc5-fe9146ad5927)

created_at: 2025-05-29T21:02:24Z
author_association: MEMBER
path: .github/workflows/publish_pypi.yml
user: login: aaronsteers
body: This workflow appears to be a no-op. (Prints 'hi!') 😄 
created_at: 2025-05-29T21:03:52Z
author_association: MEMBER
path: .github/workflows/terminate-zombie-build-instances.yml
user: login: aaronsteers
body: This looks like a remnant from when we used to use EC2 runners.
created_at: 2025-05-29T21:04:30Z
author_association: MEMBER
path: .github/workflows/workflow-cleanup.yml
user: login: aaronsteers
body: https://github.com/airbytehq/airbyte/actions/workflows/workflow-cleanup.yml

I don't know why this was created but it has been failing consistently with a timezone conversion error.

![image](https://github.com/user-attachments/assets/cddf416a-f1e6-4bb1-bc94-b92fa35d9392)

created_at: 2025-05-29T21:08:20Z
author_association: MEMBER

PR comments:
user: login: vercel[bot]
created_at: 2025-05-29T06:11:58Z
body: [vc]: #o8A5+CDxObDZXAKrCxjWn5kUVu94gqKRD3Y8k+cxH+E=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJhaXJieXRlLWRvY3MiLCJpbnNwZWN0b3JVcmwiOiJodHRwczovL3ZlcmNlbC5jb20vYWlyYnl0ZS1ncm93dGgvYWlyYnl0ZS1kb2NzL0RaZFhDc0xaYmtzUkxxZjE1bTVkcUpmZGtqcVYiLCJwcmV2aWV3VXJsIjoiYWlyYnl0ZS1kb2NzLWdpdC1jaS1yZW1vdmUtc3RhbGUtZGVwcmVjYXQtMGRlNzAwLWFpcmJ5dGUtZ3Jvd3RoLnZlcmNlbC5hcHAiLCJuZXh0Q29tbWl0U3RhdHVzIjoiREVQTE9ZRUQiLCJsaXZlRmVlZGJhY2siOnsicmVzb2x2ZWQiOjAsInVucmVzb2x2ZWQiOjAsInRvdGFsIjowLCJsaW5rIjoiYWlyYnl0ZS1kb2NzLWdpdC1jaS1yZW1vdmUtc3RhbGUtZGVwcmVjYXQtMGRlNzAwLWFpcmJ5dGUtZ3Jvd3RoLnZlcmNlbC5hcHAifSwicm9vdERpcmVjdG9yeSI6ImRvY3VzYXVydXMifV19
**The latest updates on your projects**. Learn more about [Vercel for Git ↗︎](https://vercel.link/github-learn-more)

| Name | Status | Preview | Comments | Updated (UTC) |
| :--- | :----- | :------ | :------- | :------ |
| **airbyte-docs** | ✅ Ready ([Inspect](https://vercel.com/airbyte-growth/airbyte-docs/DZdXCsLZbksRLqf15m5dqJfdkjqV)) | [Visit Preview](https://airbyte-docs-git-ci-remove-stale-deprecat-0de700-airbyte-growth.vercel.app) | 💬 [**Add feedback**](https://vercel.live/open-feedback/airbyte-docs-git-ci-remove-stale-deprecat-0de700-airbyte-growth.vercel.app?via=pr-comment-feedback-link) | May 29, 2025 9:51pm |


author_association: NONE
user: login: dbgold17
created_at: 2025-05-29T14:59:17Z
body: If there is a question of whether any of this code is useful, I'm not the best person to evaluate. I'll let someone else review
author_association: CONTRIBUTOR