ci: split frontend and backend into separate jobs to fix image tag mix-up
Both builds in the same job shared the same docker buildx instance, causing the backend image to be incorrectly tagged with the frontend image. Separate jobs get isolated buildx instances and separate build caches. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -23,7 +23,7 @@ env:
|
|||||||
BACKEND_IMAGE_NAME: valknar/sexy-backend
|
BACKEND_IMAGE_NAME: valknar/sexy-backend
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-push:
|
build-frontend:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -48,23 +48,17 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||||
tags: |
|
tags: |
|
||||||
# Tag as 'latest' for main branch
|
|
||||||
type=raw,value=latest,enable={{is_default_branch}}
|
type=raw,value=latest,enable={{is_default_branch}}
|
||||||
# Tag with branch name
|
|
||||||
type=ref,event=branch
|
type=ref,event=branch
|
||||||
# Tag with PR number
|
|
||||||
type=ref,event=pr
|
type=ref,event=pr
|
||||||
# Tag with git tag (semver)
|
|
||||||
type=semver,pattern={{version}}
|
type=semver,pattern={{version}}
|
||||||
type=semver,pattern={{major}}.{{minor}}
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
type=semver,pattern={{major}}
|
type=semver,pattern={{major}}
|
||||||
# Tag with commit SHA
|
|
||||||
type=sha,prefix={{branch}}-
|
type=sha,prefix={{branch}}-
|
||||||
# Custom tag from workflow_dispatch
|
|
||||||
type=raw,value=${{ gitea.event.inputs.tag }},enable=${{ gitea.event_name == 'workflow_dispatch' }}
|
type=raw,value=${{ gitea.event.inputs.tag }},enable=${{ gitea.event_name == 'workflow_dispatch' }}
|
||||||
labels: |
|
labels: |
|
||||||
org.opencontainers.image.title=sexy.pivoine.art
|
org.opencontainers.image.title=sexy.pivoine.art
|
||||||
org.opencontainers.image.description=Adult content platform with SvelteKit, Directus, and hardware integration
|
org.opencontainers.image.description=Adult content platform frontend (SvelteKit)
|
||||||
org.opencontainers.image.vendor=valknar
|
org.opencontainers.image.vendor=valknar
|
||||||
org.opencontainers.image.source=https://dev.pivoine.art/${{ gitea.repository }}
|
org.opencontainers.image.source=https://dev.pivoine.art/${{ gitea.repository }}
|
||||||
|
|
||||||
@@ -83,6 +77,35 @@ jobs:
|
|||||||
NODE_ENV=production
|
NODE_ENV=production
|
||||||
CI=true
|
CI=true
|
||||||
|
|
||||||
|
- name: Generate image digest
|
||||||
|
if: gitea.event_name != 'pull_request'
|
||||||
|
run: |
|
||||||
|
echo "### Frontend Image Published :rocket:" >> $GITEA_STEP_SUMMARY
|
||||||
|
echo "" >> $GITEA_STEP_SUMMARY
|
||||||
|
echo "**Registry:** \`${{ env.REGISTRY }}\`" >> $GITEA_STEP_SUMMARY
|
||||||
|
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
||||||
|
echo "${{ steps.meta.outputs.tags }}" >> $GITEA_STEP_SUMMARY
|
||||||
|
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
||||||
|
|
||||||
|
build-backend:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
platforms: linux/amd64
|
||||||
|
|
||||||
|
- name: Log in to Gitea Container Registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ${{ env.REGISTRY }}
|
||||||
|
username: ${{ gitea.actor }}
|
||||||
|
password: ${{ secrets.REGISTRY_TOKEN }}
|
||||||
|
|
||||||
- name: Extract metadata for backend image
|
- name: Extract metadata for backend image
|
||||||
id: meta-backend
|
id: meta-backend
|
||||||
uses: docker/metadata-action@v5
|
uses: docker/metadata-action@v5
|
||||||
@@ -121,39 +144,9 @@ jobs:
|
|||||||
- name: Generate image digest
|
- name: Generate image digest
|
||||||
if: gitea.event_name != 'pull_request'
|
if: gitea.event_name != 'pull_request'
|
||||||
run: |
|
run: |
|
||||||
echo "### Docker Images Published :rocket:" >> $GITEA_STEP_SUMMARY
|
echo "### Backend Image Published :rocket:" >> $GITEA_STEP_SUMMARY
|
||||||
echo "" >> $GITEA_STEP_SUMMARY
|
echo "" >> $GITEA_STEP_SUMMARY
|
||||||
echo "**Registry:** \`${{ env.REGISTRY }}\`" >> $GITEA_STEP_SUMMARY
|
echo "**Registry:** \`${{ env.REGISTRY }}\`" >> $GITEA_STEP_SUMMARY
|
||||||
echo "" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "**Frontend (\`${{ env.IMAGE_NAME }}\`):**" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "${{ steps.meta.outputs.tags }}" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "**Backend (\`${{ env.BACKEND_IMAGE_NAME }}\`):**" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "${{ steps.meta-backend.outputs.tags }}" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "**Pull commands:**" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "\`\`\`bash" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "docker pull ${{ env.REGISTRY }}/${{ env.BACKEND_IMAGE_NAME }}:latest" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
|
||||||
|
|
||||||
- name: PR Comment - Images built but not pushed
|
|
||||||
if: gitea.event_name == 'pull_request'
|
|
||||||
run: |
|
|
||||||
echo "### Docker Images Built Successfully :white_check_mark:" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "Images were built successfully but **not pushed** (PR builds are not published)." >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "**Frontend would be tagged as:**" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "${{ steps.meta.outputs.tags }}" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "**Backend would be tagged as:**" >> $GITEA_STEP_SUMMARY
|
|
||||||
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
||||||
echo "${{ steps.meta-backend.outputs.tags }}" >> $GITEA_STEP_SUMMARY
|
echo "${{ steps.meta-backend.outputs.tags }}" >> $GITEA_STEP_SUMMARY
|
||||||
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
echo "\`\`\`" >> $GITEA_STEP_SUMMARY
|
||||||
|
|||||||
Reference in New Issue
Block a user