Merge pull request #30 from vaisu-bhut/dd_agent #38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CD | |
| on: | |
| push: | |
| branches: ["main", "staging"] | |
| workflow_dispatch: | |
| jobs: | |
| build-and-health-check: | |
| runs-on: ubuntu-latest | |
| if: github.repository == 'ClestiqShield/AgentCore' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v2 | |
| - name: Authenticate to Google Cloud | |
| if: success() | |
| uses: google-github-actions/auth@v1 | |
| with: | |
| credentials_json: "${{ secrets.GCP_SA_KEY }}" | |
| - name: Set up Cloud SDK | |
| if: success() | |
| uses: google-github-actions/setup-gcloud@v1 | |
| - name: Create Artifact Registry Repository | |
| if: success() | |
| env: | |
| REPO: ${{ secrets.GCP_REPO }} | |
| REGION: ${{ secrets.GCP_REGION }} | |
| run: | | |
| if ! gcloud artifacts repositories describe $REPO --location=$REGION; then | |
| echo "Creating repository $REPO in $REGION..." | |
| gcloud artifacts repositories create $REPO \ | |
| --repository-format=docker \ | |
| --location=$REGION \ | |
| --description="Docker repository for Clestiq Shield" | |
| else | |
| echo "Repository $REPO already exists." | |
| fi | |
| - name: Configure Docker for Artifact Registry | |
| if: success() | |
| run: gcloud auth configure-docker us-east1-docker.pkg.dev | |
| - name: Build and Push Images to Artifact Registry | |
| if: success() | |
| env: | |
| PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }} | |
| REPO: ${{ secrets.GCP_REPO }} | |
| REGION: ${{ secrets.GCP_REGION }} | |
| run: | | |
| echo "Building and Pushing images..." | |
| # Gateway | |
| docker build -t $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/gateway:${{ github.sha }} ./services/gateway | |
| docker push $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/gateway:${{ github.sha }} | |
| # Also push 'latest' tag | |
| docker tag $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/gateway:${{ github.sha }} $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/gateway:latest | |
| docker push $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/gateway:latest | |
| # Sentinel (Source is services/security-agent) | |
| docker build -t $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/sentinel:${{ github.sha }} ./services/security-agent | |
| docker push $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/sentinel:${{ github.sha }} | |
| docker tag $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/sentinel:${{ github.sha }} $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/sentinel:latest | |
| docker push $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/sentinel:latest | |
| # Guardian | |
| docker build -t $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/guardian:${{ github.sha }} ./services/guardian | |
| docker push $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/guardian:${{ github.sha }} | |
| docker tag $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/guardian:${{ github.sha }} $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/guardian:latest | |
| docker push $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/guardian:latest | |
| # EagleEye | |
| docker build -t $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/eagle-eye:${{ github.sha }} ./services/eagle-eye | |
| docker push $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/eagle-eye:${{ github.sha }} | |
| docker tag $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/eagle-eye:${{ github.sha }} $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/eagle-eye:latest | |
| docker push $REGION-docker.pkg.dev/$PROJECT_ID/$REPO/eagle-eye:latest | |
| echo "✅ All images pushed successfully!" | |
| - name: Clean up | |
| if: always() | |
| run: | | |
| echo "Cleaning up Docker resources..." | |
| docker compose down -v | |
| echo "✅ Cleanup complete" |