name: Build Container Image on: workflow_dispatch: inputs: tag: description: 'Image tag' required: false default: 'latest' type: string env: REGISTRY: ${{ secrets.CONTAINER_REGISTRY }} IMAGE_NAME: ${{ secrets.IMAGE_NAME }} jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Log in to Container Registry run: | echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ env.REGISTRY }} -u ${{ secrets.REGISTRY_USERNAME }} --password-stdin - name: Build Docker image run: | IMAGE_TAG="${{ inputs.tag }}" BRANCH_SHA_TAG="${{ github.ref_name }}-${{ github.sha }}" # Build the image docker build -t ${{ env.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/${{ env.IMAGE_NAME }}:${IMAGE_TAG} . docker build -t ${{ env.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/${{ env.IMAGE_NAME }}:${BRANCH_SHA_TAG} . - name: Push Docker image run: | IMAGE_TAG="${{ inputs.tag }}" BRANCH_SHA_TAG="${{ github.ref_name }}-${{ github.sha }}" # Push both tags docker push ${{ env.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/${{ env.IMAGE_NAME }}:${IMAGE_TAG} docker push ${{ env.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/${{ env.IMAGE_NAME }}:${BRANCH_SHA_TAG} - name: Output image tags run: | IMAGE_TAG="${{ inputs.tag }}" BRANCH_SHA_TAG="${{ github.ref_name }}-${{ github.sha }}" echo "Built and pushed image tags:" echo "- ${{ env.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/${{ env.IMAGE_NAME }}:${IMAGE_TAG}" echo "- ${{ env.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/${{ env.IMAGE_NAME }}:${BRANCH_SHA_TAG}"