diff --git a/.github/workflows/build-push-docker.yml b/.github/workflows/build-push-docker.yml index 9767e54a7e..8aec01d260 100644 --- a/.github/workflows/build-push-docker.yml +++ b/.github/workflows/build-push-docker.yml @@ -1,8 +1,11 @@ name: Build and Push to ACR + on: push: branches: - - 'main' + - main + workflow_dispatch: + jobs: build: name: 'Build and Push to ACR' @@ -13,16 +16,30 @@ jobs: shell: bash steps: - - uses: actions/checkout@v4 + - name: Checkout code + uses: actions/checkout@v4 - - uses: docker/login-action@v3 + - name: Log in to Docker Hub + uses: docker/login-action@v3 with: registry: ${{ secrets.DOCKER_REGISTRY_SERVER_URL }} username: ${{ secrets.DOCKER_REGISTRY_SERVER_USERNAME }} password: ${{ secrets.DOCKER_REGISTRY_SERVER_PASSWORD }} - - uses: docker/build-push-action@v6 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and push Docker image to ACR + uses: docker/build-push-action@v6 with: + context: . + platforms: linux/amd64,linux/arm64 push: true tags: ${{ secrets.DOCKER_REGISTRY_SERVER_URL }}/kantega-big-agi:latest - file: Dockerfile \ No newline at end of file + + - name: Deploy to Azure Web App + uses: azure/webapps-deploy@v3 + with: + app-name: 'kantega-big-agi' + publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }} + images: '${{ secrets.DOCKER_REGISTRY_SERVER_URL }}/kantega-big-agi:latest' diff --git a/infra/build.tf b/infra/build.tf index 1327b2d60a..e69de29bb2 100644 --- a/infra/build.tf +++ b/infra/build.tf @@ -1,34 +0,0 @@ -resource "null_resource" "docker_build" { - triggers = { - always_run = "${timestamp()}" - } - - provisioner "local-exec" { - command = < /dev/null 2>&1; then - echo "Docker is not running. Please start Docker and try again." - exit 1 - fi - - # Create a temporary Buildx builder with docker-container driver - BUILDER_NAME=temp-builder-$(date +%s) - docker buildx create --name $BUILDER_NAME --use --driver docker-container - - # Remove existing images - docker image remove ${azurerm_container_registry.acr.login_server}/${var.project_name}:latest || true - az acr repository delete --name ${azurerm_container_registry.acr.name} --image ${var.project_name}:latest --yes || true - - # Build and push big-agi image - docker buildx build --platform linux/amd64,linux/arm64 -t ${azurerm_container_registry.acr.login_server}/${var.project_name}:latest --push . - - # Clean up the temporary builder - docker buildx rm $BUILDER_NAME - EOT - } - - depends_on = [azurerm_container_registry.acr] -} diff --git a/infra/main.tf b/infra/main.tf index a1d9857ec0..69afc8a553 100644 --- a/infra/main.tf +++ b/infra/main.tf @@ -82,8 +82,10 @@ resource "azurerm_linux_web_app" "browserless" { identity { type = "SystemAssigned" } + depends_on = [ + azurerm_service_plan.asp, + ] - depends_on = [null_resource.docker_build] } resource "azurerm_linux_web_app" "app" { @@ -141,7 +143,8 @@ resource "azurerm_linux_web_app" "app" { } depends_on = [ - null_resource.docker_build, - azurerm_linux_web_app.browserless + azurerm_service_plan.asp, + azurerm_linux_web_app.browserless, + azurerm_container_registry.acr ] }