fix: streamline CI/CD — remove broken AI docs updater, fix Docker publish

- Delete ai-docs-updater.yml (never worked: missing ANTHROPIC_API_KEY, tsx not found)
- Delete standalone docker-publish.yml (GITHUB_TOKEN can't trigger cross-workflow)
- Merge Docker build/push into release.yml as dependent job using .release-version
- Add publishCmd to .releaserc.json to signal new releases to Docker job
- Fix deploy-docs.yml: upgrade pnpm@v3→v4, node 20→22, add --frozen-lockfile
- Fix ci.yml: rename job to "Typecheck" (no lint step existed)
This commit is contained in:
Siddharth Kumar Sah
2026-03-23 15:14:34 +08:00
parent 8971debcfc
commit 4f984c83ac
8 changed files with 74 additions and 254 deletions
-56
View File
@@ -1,56 +0,0 @@
name: AI Documentation Updater
on:
push:
branches:
- main
paths:
- 'apps/api/**'
- 'apps/web/**'
- 'packages/**'
jobs:
update-docs:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 2 # Fetch previous commit to get diff
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- name: Install dependencies
run: pnpm install
- name: Generate Diff
run: git diff HEAD^ HEAD > diff.patch
- name: Run Real AI Agent
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
echo "Running Claude to analyze changes and update docs..."
cd apps/docs && pnpm exec tsx scripts/update-docs.ts ../../diff.patch
- name: Commit and Push Changes
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add apps/docs/
if ! git diff-index --quiet HEAD; then
git commit -m "docs: auto-updated by AI 🤖"
git push
else
echo "No documentation changes needed."
fi
+3 -3
View File
@@ -11,8 +11,8 @@ concurrency:
cancel-in-progress: true
jobs:
lint-and-typecheck:
name: Lint & Typecheck
typecheck:
name: Typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -30,7 +30,7 @@ jobs:
build:
name: Build
runs-on: ubuntu-latest
needs: lint-and-typecheck
needs: typecheck
steps:
- uses: actions/checkout@v4
+3 -5
View File
@@ -26,16 +26,14 @@ jobs:
with:
fetch-depth: 0
- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 9
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: pnpm
- name: Install dependencies
run: pnpm install
run: pnpm install --frozen-lockfile
- name: Build Docs
run: pnpm --filter @stirling-image/docs docs:build
- name: Upload artifact
-65
View File
@@ -1,65 +0,0 @@
name: Build and Push Docker Image
on:
push:
tags: ["v*"]
workflow_dispatch:
env:
REGISTRY: docker.io
IMAGE_NAME: siddharth123sk/stirling-image
jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.IMAGE_NAME }}
ghcr.io/${{ github.repository }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=raw,value=latest
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: docker/Dockerfile
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
+65 -1
View File
@@ -8,13 +8,15 @@ permissions:
contents: write
issues: write
pull-requests: write
packages: write
jobs:
release:
name: Semantic Release
runs-on: ubuntu-latest
# Skip release commits to avoid infinite loop
if: "!contains(github.event.head_commit.message, '[skip ci]')"
outputs:
new_version: ${{ steps.check.outputs.version }}
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -38,3 +40,65 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release
- name: Check for new release
id: check
run: |
if [ -f .release-version ]; then
echo "version=$(cat .release-version)" >> "$GITHUB_OUTPUT"
fi
docker:
name: Build and Push Docker Image
needs: release
if: needs.release.outputs.new_version != ''
runs-on: ubuntu-latest
steps:
- name: Checkout release tag
uses: actions/checkout@v4
with:
ref: v${{ needs.release.outputs.new_version }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: |
siddharth123sk/stirling-image
ghcr.io/${{ github.repository }}
tags: |
type=semver,pattern={{version}},value=v${{ needs.release.outputs.new_version }}
type=semver,pattern={{major}}.{{minor}},value=v${{ needs.release.outputs.new_version }}
type=semver,pattern={{major}},value=v${{ needs.release.outputs.new_version }}
type=raw,value=latest
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: docker/Dockerfile
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max