name: Build and Publish Docker Image on: push: branches: [master] 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 Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to Docker Registry uses: docker/login-action@v3 with: registry: ${{ secrets.REGISTRY }} username: ${{ secrets.USERNAME }} password: ${{ secrets.PASSWORD }} - name: Determine Version id: version run: | if [[ "${GITHUB_REF}" == refs/tags/* ]]; then echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT else echo "VERSION=$(jq -r .version package.json)" >> $GITHUB_OUTPUT fi - name: Build and Push Docker Images run: | IMAGE_NAME="bobbytviptv_suzie" REGISTRY="${{ secrets.REGISTRY }}" USERNAME="telegrambots" VERSION="${{ steps.version.outputs.VERSION }}" IMAGE_VERSIONED="$REGISTRY/$USERNAME/$IMAGE_NAME:$VERSION" IMAGE_LATEST="$REGISTRY/$USERNAME/$IMAGE_NAME:latest" echo "🔧 Building $IMAGE_VERSIONED" docker build --build-arg VERSION=$VERSION -t "$IMAGE_VERSIONED" . echo "🏷️ Tagging as $IMAGE_LATEST" docker tag "$IMAGE_VERSIONED" "$IMAGE_LATEST" echo "📤 Pushing $IMAGE_VERSIONED" docker push "$IMAGE_VERSIONED" echo "📤 Pushing $IMAGE_LATEST" docker push "$IMAGE_LATEST"