From cd5306814cb30f37829d18bf51e28ae0e075d7ac Mon Sep 17 00:00:00 2001 From: Karl Date: Sat, 17 May 2025 10:51:31 +0100 Subject: [PATCH] revery workflow --- .github/workflows/docker-publish.yml | 50 ++++++++++++---------------- 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 3850ee3..22c4a51 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -1,55 +1,47 @@ -name: Build, Update Version and Publish Docker Image +name: Build and Publish Docker Image on: push: branches: [main] - tags: ['*'] + tags: ['*'] # triggers on any tag push workflow_dispatch: jobs: build-and-push: runs-on: ubuntu-latest + steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - - name: Install bump2version - run: pip install bump2version - - # Bump patch version, commit, and push back to repo (only on main branch) - - name: Bump version and push - if: github.ref == 'refs/heads/main' - run: | - bump2version patch --allow-dirty - git push origin main --follow-tags - - 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: Get version from file - id: get_version - run: | - VERSION=$(python -c "import myproject.__version__ as v; print(v.__version__)") - echo "version=$VERSION" >> $GITHUB_OUTPUT - - name: Build and Push Docker Images run: | IMAGE_NAME="ai-frame-image-server" REGISTRY="${{ secrets.REGISTRY }}" USERNAME="${{ secrets.USERNAME }}" - VERSION="${{ steps.get_version.outputs.version }}" - IMAGE_TAG="$REGISTRY/$USERNAME/$IMAGE_NAME:$VERSION" + IMAGE_LATEST="$REGISTRY/$USERNAME/$IMAGE_NAME:latest" - echo "🔧 Building $IMAGE_TAG" - docker build -t $IMAGE_TAG . + # Always build and tag as latest + echo "🔧 Building $IMAGE_LATEST" + docker build -t $IMAGE_LATEST . - echo "📤 Pushing $IMAGE_TAG" - docker push $IMAGE_TAG + echo "📤 Pushing $IMAGE_LATEST" + docker push $IMAGE_LATEST + + # If this is a tag push, tag the image accordingly + if [[ "${GITHUB_REF}" == refs/tags/* ]]; then + GIT_TAG="${GITHUB_REF#refs/tags/}" + IMAGE_TAGGED="$REGISTRY/$USERNAME/$IMAGE_NAME:$GIT_TAG" + + echo "🏷️ Also tagging as $IMAGE_TAGGED" + docker tag $IMAGE_LATEST $IMAGE_TAGGED + + echo "📤 Pushing $IMAGE_TAGGED" + docker push $IMAGE_TAGGED + fi