@@ -2,13 +2,18 @@ name: CI & Docker
22
33on :
44 push :
5- branches : [main]
5+ branches :
6+ - main
7+ - lorenc-ci
8+ - paython-mcp
9+ - feature/configure-chat-ui
610 pull_request :
7- branches : [main]
11+ branches :
12+ - main
813
914jobs :
1015 build-test :
11- runs-on : unbuntu -latest
16+ runs-on : ubuntu -latest
1217
1318 steps :
1419 - name : Checkout repository
3237
3338 docker-image :
3439 needs : build-test
35- runs-on : unbuntu -latest
40+ runs-on : ubuntu -latest
3641
3742 permissions :
3843 contents : read
6671 run : |
6772 docker push $IMAGE_ID:$VERSION
6873 docker push $IMAGE_ID:latest
74+
75+ deploy-gcp :
76+ needs : docker-image
77+ runs-on : ubuntu-latest
78+ permissions :
79+ contents : read
80+ packages : read
81+
82+ steps :
83+ - name : Checkout repository
84+ uses : actions/checkout@v4
85+
86+ - name : Authenticate to Google Cloud
87+ uses : google-github-actions/auth@v2
88+ with :
89+ credentials_json : ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
90+
91+ - name : Set up gcloud
92+ uses : google-github-actions/setup-gcloud@v2
93+ with :
94+ project_id : ${{ secrets.GCP_PROJECT_ID }}
95+
96+ - name : Configure Docker for Artifact Registry
97+ run : |
98+ gcloud auth configure-docker us-east1-docker.pkg.dev --quiet
99+
100+ - name : Pull image from GHCR
101+ run : |
102+ IMAGE_ID=ghcr.io/${{ github.repository_owner }}/mcp-backend
103+ VERSION=${{ github.sha }}
104+ echo "IMAGE_ID=$IMAGE_ID" >> $GITHUB_ENV
105+ echo "VERSION=$VERSION" >> $GITHUB_ENV
106+ echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "$GITHUB_ACTOR" --password-stdin
107+ docker pull $IMAGE_ID:$VERSION
108+
109+ - name : Tag and push image to Artifact Registry
110+ run : |
111+ AR_IMAGE=us-east1-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/mcp-backend/mcp-backend
112+ docker tag ghcr.io/${{ github.repository_owner }}/mcp-backend:${{ github.sha }} $AR_IMAGE:${{ github.sha }}
113+ docker push $AR_IMAGE:${{ github.sha }}
114+ echo "AR_IMAGE=$AR_IMAGE" >> $GITHUB_ENV
115+
116+ - name : Deploy to Cloud Run
117+ run : |
118+ gcloud run deploy mcp-backend \
119+ --image $AR_IMAGE:${{ github.sha }} \
120+ --region ${{ secrets.GCP_REGION }} \
121+ --platform managed \
122+ --allow-unauthenticated \
123+ --port 3000
0 commit comments