name: Build and Publish Docker Image on: push: tags: ["*"] # Only triggers on tag pushes workflow_dispatch: jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 # ensures tags are fetched - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to Docker Registry run: echo "${{ secrets.PASSWORD }}" | docker login ${{ secrets.REGISTRY }} -u "${{ secrets.USERNAME }}" --password-stdin - name: Build and Push Docker Images run: | IMAGE_NAME="ai-frame-image-server" REGISTRY="${{ secrets.REGISTRY }}" USERNAME="${{ secrets.USERNAME }}" GIT_TAG="${GITHUB_REF#refs/tags/}" IMAGE_TAGGED="$REGISTRY/$USERNAME/$IMAGE_NAME:$GIT_TAG" IMAGE_LATEST="$REGISTRY/$USERNAME/$IMAGE_NAME:latest" echo "🔧 Building $IMAGE_TAGGED and $IMAGE_LATEST" docker build -t $IMAGE_LATEST -t $IMAGE_TAGGED . echo "📤 Pushing $IMAGE_TAGGED" docker push $IMAGE_TAGGED echo "📤 Pushing $IMAGE_LATEST" docker push $IMAGE_LATEST