From dde5c671285ed3033d8dc5c9ab4c7fb30239b091 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 23 May 2026 15:33:49 +0000 Subject: [PATCH 1/9] ci: adopt centralized actions from github-actions repo Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- .../workflows/build-and-publish-image.yaml | 2 +- .github/workflows/bump-tool-versions.yaml | 4 +--- .github/workflows/lint-and-test.yaml | 11 ++------- .github/workflows/prune-ghcr-images.yaml | 24 +++++++------------ .github/workflows/release.yaml | 17 ++++++++++--- 5 files changed, 27 insertions(+), 31 deletions(-) diff --git a/.github/workflows/build-and-publish-image.yaml b/.github/workflows/build-and-publish-image.yaml index 21cf431..d2a8a2e 100644 --- a/.github/workflows/build-and-publish-image.yaml +++ b/.github/workflows/build-and-publish-image.yaml @@ -41,7 +41,7 @@ jobs: - name: Login to GHCR if: github.event_name != 'pull_request' - run: echo "${{ secrets.GITHUB_TOKEN }}" | podman login ghcr.io -u ${{ github.actor }} --password-stdin + uses: tankdonut/github-actions/actions/ghcr-login@v1 - name: Build and Push Container if: github.event_name != 'pull_request' diff --git a/.github/workflows/bump-tool-versions.yaml b/.github/workflows/bump-tool-versions.yaml index a1ae536..85d6c9e 100644 --- a/.github/workflows/bump-tool-versions.yaml +++ b/.github/workflows/bump-tool-versions.yaml @@ -35,9 +35,7 @@ jobs: - run: uv sync - name: Configure git - run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" + uses: tankdonut/github-actions/actions/git-bot-config@v1 - name: Run Update Automation run: | diff --git a/.github/workflows/lint-and-test.yaml b/.github/workflows/lint-and-test.yaml index d83ce66..97237f0 100644 --- a/.github/workflows/lint-and-test.yaml +++ b/.github/workflows/lint-and-test.yaml @@ -21,15 +21,8 @@ jobs: with: fetch-depth: 0 - - name: Cache asdf Tools - uses: actions/cache@v5 - id: cache-asdf - with: - path: ~/.asdf - key: asdf-${{ runner.os }}-${{ hashFiles('.tool-versions') }} - - - name: Install Dependencies via asdf - uses: asdf-vm/actions/install@v4 + - name: Run pre-commit + uses: tankdonut/github-actions/actions/pre-commit@v1 - name: Install Python Dependencies run: uv sync diff --git a/.github/workflows/prune-ghcr-images.yaml b/.github/workflows/prune-ghcr-images.yaml index a6a5952..7415cf9 100644 --- a/.github/workflows/prune-ghcr-images.yaml +++ b/.github/workflows/prune-ghcr-images.yaml @@ -5,20 +5,14 @@ on: schedule: - cron: "30 1 * * *" # Runs daily at 01:30 UTC -env: - SEMVER_REGEX: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ +permissions: + packages: write jobs: - cleanup-ghcr: - runs-on: ubuntu-latest - permissions: - packages: write # Required to delete images - steps: - - name: Cleanup Stale GHCR Images - uses: dataaxiom/ghcr-cleanup-action@cd0cdb900b5dbf3a6f2cc869f0dbb0b8211f50c4 - with: - package: ${{ github.event.repository.name }} - keep-n-tagged: 10 - exclude-tags: v.*,latest,${{ github.event.repository.default_branch }},${{ env.SEMVER_REGEX }} - delete-untagged: true - use-regex: true + prune: + uses: tankdonut/github-actions/.github/workflows/prune-ghcr.yaml@v1 + with: + packages: '["${{ github.event.repository.name }}"]' + exclude-tags: ${{ github.event.repository.default_branch }} + keep-n-tagged: "10" + secrets: inherit diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 8e7eb7f..8df856a 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -153,14 +153,18 @@ jobs: pyproject.write_text(content) " + - name: Configure git + if: >- + steps.check-version-changes.outputs.has_changes == 'true' && + steps.idempotency.outputs.skip != 'true' + uses: tankdonut/github-actions/actions/git-bot-config@v1 + - name: Commit and push changes if: >- steps.check-version-changes.outputs.has_changes == 'true' && steps.idempotency.outputs.skip != 'true' run: | TAG="${{ steps.calver.outputs.calver_tag }}" - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" git add CHANGELOG.md pyproject.toml git commit -m "chore: release ${TAG}" git push origin main @@ -175,6 +179,14 @@ jobs: | tar -xzf - crane sudo mv crane /usr/local/bin/crane + - name: Login to GHCR + if: >- + steps.check-version-changes.outputs.has_changes == 'true' && + steps.idempotency.outputs.skip != 'true' + uses: tankdonut/github-actions/actions/ghcr-login@v1 + with: + runtime: "crane" + - name: Tag container image if: >- steps.check-version-changes.outputs.has_changes == 'true' && @@ -185,7 +197,6 @@ jobs: IMAGE="ghcr.io/${{ github.repository }}" TAG="${{ steps.calver.outputs.calver_tag }}" DIGEST="${{ github.sha }}" - echo "${GITHUB_TOKEN}" | crane auth login ghcr.io -u "${{ github.actor }}" --password-stdin for i in $(seq 1 10); do if crane digest "${IMAGE}@${DIGEST}" 2>/dev/null; then echo "Image found, tagging..." From 9a43bc42ddbdb5b6e44f70de01c179ab31a90493 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 23 May 2026 15:46:43 +0000 Subject: [PATCH 2/9] fix: restore SEMVER_REGEX env and correct pre-commit step ordering Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- .github/workflows/lint-and-test.yaml | 7 ++----- .github/workflows/prune-ghcr-images.yaml | 5 ++++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/lint-and-test.yaml b/.github/workflows/lint-and-test.yaml index 97237f0..56b04e1 100644 --- a/.github/workflows/lint-and-test.yaml +++ b/.github/workflows/lint-and-test.yaml @@ -21,9 +21,6 @@ jobs: with: fetch-depth: 0 - - name: Run pre-commit - uses: tankdonut/github-actions/actions/pre-commit@v1 - - name: Install Python Dependencies run: uv sync @@ -33,5 +30,5 @@ jobs: path: ~/.cache/pre-commit key: pre-commit-${{ hashFiles('.tool-versions', '.pre-commit-config.yaml') }} - - name: Execute pre-commit - run: uv run pre-commit run --show-diff-on-failure --color=always --all-files + - name: Run pre-commit + uses: tankdonut/github-actions/actions/pre-commit@v1 diff --git a/.github/workflows/prune-ghcr-images.yaml b/.github/workflows/prune-ghcr-images.yaml index 7415cf9..0b8a4d2 100644 --- a/.github/workflows/prune-ghcr-images.yaml +++ b/.github/workflows/prune-ghcr-images.yaml @@ -5,6 +5,9 @@ on: schedule: - cron: "30 1 * * *" # Runs daily at 01:30 UTC +env: + SEMVER_REGEX: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + permissions: packages: write @@ -13,6 +16,6 @@ jobs: uses: tankdonut/github-actions/.github/workflows/prune-ghcr.yaml@v1 with: packages: '["${{ github.event.repository.name }}"]' - exclude-tags: ${{ github.event.repository.default_branch }} + exclude-tags: "v.*,latest,${{ github.event.repository.default_branch }},${{ env.SEMVER_REGEX }}" keep-n-tagged: "10" secrets: inherit From 126edcdb17705bc2de5a7923a1af835fe66561ca Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 23 May 2026 17:51:42 +0000 Subject: [PATCH 3/9] fix(ci): add setup-python-uv before uv sync --- .github/workflows/lint-and-test.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/lint-and-test.yaml b/.github/workflows/lint-and-test.yaml index 56b04e1..4f60339 100644 --- a/.github/workflows/lint-and-test.yaml +++ b/.github/workflows/lint-and-test.yaml @@ -21,6 +21,9 @@ jobs: with: fetch-depth: 0 + - name: Setup Python + uv + uses: tankdonut/github-actions/actions/setup-python-uv@v1 + - name: Install Python Dependencies run: uv sync From 3c07c2e7ae9132e3b420f0b6cea5d6e7769afdd5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 23 May 2026 18:15:55 +0000 Subject: [PATCH 4/9] fix(ci): use inline pre-commit instead of composite for uv sync compatibility --- .github/workflows/lint-and-test.yaml | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/.github/workflows/lint-and-test.yaml b/.github/workflows/lint-and-test.yaml index 4f60339..b7b341d 100644 --- a/.github/workflows/lint-and-test.yaml +++ b/.github/workflows/lint-and-test.yaml @@ -1,23 +1,21 @@ name: Lint & Test on: - pull_request: push: - branches: - - main - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true + branches: [main] + paths: + - '**' + - '!*.md' + pull_request: + paths: + - '**' + - '!*.md' jobs: pre-commit: - permissions: - contents: read runs-on: ubuntu-latest steps: - - name: Checkout Repository - uses: actions/checkout@v6 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -33,5 +31,5 @@ jobs: path: ~/.cache/pre-commit key: pre-commit-${{ hashFiles('.tool-versions', '.pre-commit-config.yaml') }} - - name: Run pre-commit - uses: tankdonut/github-actions/actions/pre-commit@v1 + - name: Execute pre-commit + run: uv run pre-commit run --show-diff-on-failure --color=always --all-files From bde910bea1e980fb0cf94c8a9d5ee69bd1a02e4a Mon Sep 17 00:00:00 2001 From: tankdonut <206458089+tankdonut@users.noreply.github.com> Date: Sat, 23 May 2026 20:48:18 +0000 Subject: [PATCH 5/9] refactor(ci): use tankdonut/github-actions pre-commit composite action --- .github/workflows/lint-and-test.yaml | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/.github/workflows/lint-and-test.yaml b/.github/workflows/lint-and-test.yaml index b7b341d..70d0ba9 100644 --- a/.github/workflows/lint-and-test.yaml +++ b/.github/workflows/lint-and-test.yaml @@ -19,17 +19,8 @@ jobs: with: fetch-depth: 0 - - name: Setup Python + uv - uses: tankdonut/github-actions/actions/setup-python-uv@v1 - - - name: Install Python Dependencies - run: uv sync - - - name: Cache pre-commit hooks - uses: actions/cache@v5 - with: - path: ~/.cache/pre-commit - key: pre-commit-${{ hashFiles('.tool-versions', '.pre-commit-config.yaml') }} - - name: Execute pre-commit - run: uv run pre-commit run --show-diff-on-failure --color=always --all-files + uses: tankdonut/github-actions/actions/pre-commit@v1 + with: + install_uv_deps: "true" + extra_args: "--show-diff-on-failure --color=always" From b2e22eaa05fa69b69a4b543ac7ed3bf6a8a02106 Mon Sep 17 00:00:00 2001 From: tankdonut <206458089+tankdonut@users.noreply.github.com> Date: Sat, 23 May 2026 20:48:55 +0000 Subject: [PATCH 6/9] fix(ci): use actions/checkout@v6 --- .github/workflows/lint-and-test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-and-test.yaml b/.github/workflows/lint-and-test.yaml index 70d0ba9..13492c6 100644 --- a/.github/workflows/lint-and-test.yaml +++ b/.github/workflows/lint-and-test.yaml @@ -15,7 +15,7 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 From 8284217e7a04e6eb12c398bee322a86cf2a18dbc Mon Sep 17 00:00:00 2001 From: tankdonut <206458089+tankdonut@users.noreply.github.com> Date: Sat, 23 May 2026 20:49:50 +0000 Subject: [PATCH 7/9] fix(ci): revert trigger config to match main --- .github/workflows/lint-and-test.yaml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/lint-and-test.yaml b/.github/workflows/lint-and-test.yaml index 13492c6..03f18bf 100644 --- a/.github/workflows/lint-and-test.yaml +++ b/.github/workflows/lint-and-test.yaml @@ -1,15 +1,10 @@ name: Lint & Test on: - push: - branches: [main] - paths: - - '**' - - '!*.md' pull_request: - paths: - - '**' - - '!*.md' + push: + branches: + - main jobs: pre-commit: From 586543db07250b0fa32e0ea65e3b233b3069824c Mon Sep 17 00:00:00 2001 From: tankdonut <206458089+tankdonut@users.noreply.github.com> Date: Sat, 23 May 2026 20:54:36 +0000 Subject: [PATCH 8/9] chore: ignore .omo/ instead of .sisyphus/ --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 57c4afa..c17b319 100644 --- a/.gitignore +++ b/.gitignore @@ -188,4 +188,4 @@ cython_debug/ # oh-my-openagent # Orchestration state, plans, and notepads for AI agent workflows -.sisyphus/ +.omo/ From a2c5300d26913c7be015cc2b7210ba9569d7d326 Mon Sep 17 00:00:00 2001 From: tankdonut <206458089+tankdonut@users.noreply.github.com> Date: Sat, 23 May 2026 21:06:00 +0000 Subject: [PATCH 9/9] fix(ci): add --group dev to uv sync args --- .github/workflows/lint-and-test.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/lint-and-test.yaml b/.github/workflows/lint-and-test.yaml index 03f18bf..2da6b5a 100644 --- a/.github/workflows/lint-and-test.yaml +++ b/.github/workflows/lint-and-test.yaml @@ -18,4 +18,5 @@ jobs: uses: tankdonut/github-actions/actions/pre-commit@v1 with: install_uv_deps: "true" + uv_sync_args: "--group dev" extra_args: "--show-diff-on-failure --color=always"