✨ feat: implement separate workflow architecture with workflow dispatch
This commit is contained in:
@@ -308,54 +308,20 @@ jobs:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Docker push job - runs on host environment
|
# Trigger Docker push workflow on main branch
|
||||||
docker-push:
|
trigger-docker-push:
|
||||||
name: Docker Push
|
name: Trigger Docker Push
|
||||||
needs: [build-cache, ci-pipeline]
|
needs: [build-cache, ci-pipeline]
|
||||||
runs-on: ubuntu-latest-ca
|
runs-on: ubuntu-latest-ca
|
||||||
if: "!contains(github.event.head_commit.message, '[skip ci]') && github.actor != 'ci-bot' && github.ref == 'refs/heads/main'"
|
if: "!contains(github.event.head_commit.message, '[skip ci]') && github.actor != 'ci-bot' && github.ref == 'refs/heads/main'"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Trigger Docker Push Workflow
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Login to Gitea Container Registry
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: ${{ env.CI_REGISTRY }}
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.PACKAGES_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build and push Docker image
|
|
||||||
run: |
|
run: |
|
||||||
source VERSION
|
echo "🚀 Triggering Docker Push workflow..."
|
||||||
IMAGE_VERSION="$MAJOR.$MINOR.$PATCH${PRERELEASE:+-$PRERELEASE}"
|
curl -X POST \
|
||||||
|
-H "Authorization: token ${{ secrets.GITEA_TOKEN || secrets.PACKAGES_TOKEN }}" \
|
||||||
# Use the template file with proper dependency hash replacement
|
-H "Content-Type: application/json" \
|
||||||
DEPS_HASH="${{ needs.build-cache.outputs.deps_hash }}"
|
"${{ env.GITEA_INTERNAL }}api/v1/repos/${{ env.GITEA_ORG }}/${{ env.GITEA_REPO }}/actions/workflows/docker-push.yaml/dispatches" \
|
||||||
echo "Using dependency hash: $DEPS_HASH"
|
-d '{"ref":"${{ github.ref }}","inputs":{"deps_hash":"${{ needs.build-cache.outputs.deps_hash }}","ref":"${{ github.ref }}"}}'
|
||||||
|
echo "✅ Docker Push workflow triggered successfully!"
|
||||||
# Create Dockerfile.prod from template
|
|
||||||
sed "s/{{DEPS_HASH}}/$DEPS_HASH/g" docker/Dockerfile.prod.template > docker/Dockerfile.prod
|
|
||||||
|
|
||||||
TAGS="$IMAGE_VERSION latest ${{ github.sha }}"
|
|
||||||
echo "Building Docker image with tags: $TAGS"
|
|
||||||
|
|
||||||
# Build the production image
|
|
||||||
docker build -t dance-lessons-coach -f docker/Dockerfile.prod .
|
|
||||||
|
|
||||||
for TAG in $TAGS; do
|
|
||||||
IMAGE_NAME="${{ env.CI_REGISTRY }}/${{ env.GITEA_ORG }}/${{ env.GITEA_REPO }}:$TAG"
|
|
||||||
echo "Tagging and pushing: $IMAGE_NAME"
|
|
||||||
docker tag dance-lessons-coach "$IMAGE_NAME"
|
|
||||||
docker push "$IMAGE_NAME"
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Show published images
|
|
||||||
run: |
|
|
||||||
source VERSION
|
|
||||||
IMAGE_VERSION="$MAJOR.$MINOR.$PATCH${PRERELEASE:+-$PRERELEASE}"
|
|
||||||
echo "📦 Published Docker images:"
|
|
||||||
echo " - ${{ env.CI_REGISTRY }}/${{ env.GITEA_ORG }}/${{ env.GITEA_REPO }}:$IMAGE_VERSION"
|
|
||||||
echo " - ${{ env.CI_REGISTRY }}/${{ env.GITEA_ORG }}/${{ env.GITEA_REPO }}:latest"
|
|
||||||
echo " - ${{ env.CI_REGISTRY }}/${{ env.GITEA_ORG }}/${{ env.GITEA_REPO }}:${{ github.sha }}"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user