-
-
Notifications
You must be signed in to change notification settings - Fork 0
47 lines (38 loc) · 1.69 KB
/
deploy.yml
File metadata and controls
47 lines (38 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
name: Deploy to Production
on:
push:
branches:
- main
env:
INSTANCE_MEMORY: ${{ secrets.INSTANCE_MEMORY }}
ARTIFACTS_NAME: ${{ secrets.ARTIFACTS_NAME }}
GCP_PROJECT: ${{ secrets.GCP_PROJECT }}
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Google Cloud Auth
uses: google-github-actions/auth@v2
with:
credentials_json: '${{ secrets.GCP_SA_KEY }}'
- name: Build with Gradle
run: ./gradlew build jib --stacktrace
- name: Deploy to Google Cloud Run
run: |
gcloud run deploy ${{ secrets.GCP_SERVICE }} \
--image "us-central1-docker.pkg.dev/${{ secrets.GCP_PROJECT }}/${{ secrets.ARTIFACTS_NAME }}/countries-api:latest" \
--platform managed \
--region ${{ secrets.GCP_REGION }} \
--max-instances ${{ secrets.INSTANCE_MAX }} \
--memory ${{ secrets.INSTANCE_MEMORY }}Mi \
--concurrency ${{ secrets.CONCURRENCY_MAX }} \
--set-env-vars SPRING_DATA_MONGODB_DATABASE=${{ secrets.SPRING_DATA_MONGODB_DATABASE }},SPRING_DATA_MONGODB_USERNAME=${{ secrets.SPRING_DATA_MONGODB_USERNAME }},SPRING_DATA_MONGODB_PASSWORD=${{secrets.SPRING_DATA_MONGODB_PASSWORD }},SPRING_DATA_MONGODB_URI=${{ secrets.SPRING_DATA_MONGODB_URI }},INSTANCE_MEMORY=${{ secrets.INSTANCE_MEMORY }},ARTIFACTS_NAME=${{ secrets.ARTIFACTS_NAME }},GCP_PROJECT=${{ secrets.GCP_PROJECT }}