Spaces:
Paused
Paused
| name: Build and Push Docker Image | |
| # Trigger the pipeline | |
| on: | |
| workflow_dispatch: # manual trigger | |
| push: | |
| branches: | |
| - test | |
| - dev | |
| - main | |
| # Define pipeline jobs | |
| jobs: | |
| build-image: | |
| runs-on: ubuntu-latest | |
| steps: | |
| # Checkout only the latest first commit | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 1 | |
| # Set up QEMU for multi-platform Docker builds | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v2 | |
| # Set up Docker Buildx for multi-platform support | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v2 | |
| # Log in to DockerHub | |
| - name: Login to DockerHub | |
| uses: docker/login-action@v2 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| # Cache Docker layers to speed up builds | |
| - name: Cache Docker layers | |
| uses: actions/cache@v3 | |
| with: | |
| path: /tmp/.buildx-cache | |
| key: ${{ runner.os }}-buildx-${{ hashFiles('**/Dockerfile', '**/package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-buildx- | |
| # Build and push Docker image to DockerHub and GHCR | |
| - name: Build and push Docker images | |
| uses: docker/build-push-action@v2 | |
| with: | |
| platforms: linux/amd64 | |
| context: . | |
| push: true | |
| # Define dynamic tags based on branch name | |
| tags: | | |
| synthetic-data-${{ github.ref_name }}:latest | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache,mode=max | |
| # deploy: | |
| # needs: build-image | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - name: Checkout code | |
| # uses: actions/checkout@v3 | |
| # - name: Configure AWS credentials | |
| # uses: aws-actions/configure-aws-credentials@v1 | |
| # with: | |
| # aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| # aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| # aws-region: us-west-1 | |
| # # Update kubeconfig to the correct EKS cluster based on the branch | |
| # - name: Update kubeconfig | |
| # run: | | |
| # if [[ "${{ github.ref_name }}" == "main" ]]; then | |
| # aws eks update-kubeconfig --name Prod --region us-west-1 | |
| # elif [[ "${{ github.ref_name }}" == "dev" ]]; then | |
| # aws eks update-kubeconfig --name Dev --region us-west-1 | |
| # elif [[ "${{ github.ref_name }}" == "test" ]]; then | |
| # aws eks update-kubeconfig --name test --region us-west-1 | |
| # fi | |
| # # Deploy to EKS | |
| # - name: Deploy to EKS | |
| # run: | | |
| # kubectl rollout restart deployment ai-agent-service --namespace intersoul | |