Skip to content

Commit 73d94e6

Browse files
authored
Merge pull request #1150 from DataUSA/develop
Deploy
2 parents e13f60b + e83787f commit 73d94e6

31 files changed

+823
-664
lines changed
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
name: "Deploy to GCE development"
2+
3+
on:
4+
push:
5+
branches: [ "develop" ]
6+
7+
env:
8+
GCP_PROJECT_ID: ${{ vars.GCP_PROJECT_ID }}
9+
GCP_ARTIFACT_REGISTRY_NAME: ${{ vars.GCP_ARTIFACT_REGISTRY_NAME }}
10+
GCP_ARTIFACT_REGISTRY_LOCATION: ${{ vars.GCP_ARTIFACT_REGISTRY_LOCATION }}
11+
GCP_IMAGE_NAME: ${{ vars.GCP_IMAGE_NAME }}
12+
GCP_VM_IP: ${{ vars.GCP_VM_IP }}
13+
GCP_VM_USER: ${{ vars.GCP_VM_USER }}
14+
15+
CANON_API: ${{ vars.CANON_API }}
16+
CANON_CMS_CUBES: ${{ vars.CANON_CMS_CUBES }}
17+
CANON_CMS_ENABLE: ${{ vars.CANON_CMS_ENABLE }}
18+
CANON_CMS_FORCE_HTTPS: ${{ vars.CANON_CMS_FORCE_HTTPS }}
19+
CANON_CMS_GENERATOR_TIMEOUT: ${{ vars.CANON_CMS_GENERATOR_TIMEOUT }}
20+
CANON_CMS_LOGGING: ${{ vars.CANON_CMS_LOGGING }}
21+
CANON_CMS_MINIMUM_ROLE: ${{ vars.CANON_CMS_MINIMUM_ROLE }}
22+
CANON_CMS_REQUESTS_PER_SECOND: ${{ vars.CANON_CMS_REQUESTS_PER_SECOND }}
23+
CANON_CONST_CART: ${{ vars.CANON_CONST_CART }}
24+
CANON_CONST_CUBE: ${{ vars.CANON_CONST_CUBE }}
25+
CANON_CONST_TESSERACT: ${{ vars.CANON_CONST_TESSERACT }}
26+
CANON_DB_NAME: ${{ vars.CANON_DB_NAME }}
27+
CANON_DB_USER: ${{ vars.CANON_DB_USER }}
28+
CANON_GEOSERVICE_API: ${{ vars.CANON_GEOSERVICE_API }}
29+
CANON_GOOGLE_ANALYTICS: ${{ vars.CANON_GOOGLE_ANALYTICS }}
30+
CANON_LANGUAGES: ${{ vars.CANON_LANGUAGES }}
31+
CANON_LANGUAGE_DEFAULT: ${{ vars.CANON_LANGUAGE_DEFAULT }}
32+
CANON_LOGICLAYER_CUBE: ${{ vars.CANON_LOGICLAYER_CUBE }}
33+
CANON_LOGICLAYER_SLUGS: ${{ vars.CANON_LOGICLAYER_SLUGS }}
34+
CANON_LOGINS: ${{ vars.CANON_LOGINS }}
35+
GA_KEYFILE: ${{ vars.GA_KEYFILE }}
36+
37+
38+
jobs:
39+
build:
40+
environment: development-vm
41+
runs-on: ubuntu-latest
42+
43+
steps:
44+
- name: Checkout code
45+
uses: actions/checkout@v4
46+
47+
- name: Authenticate with Google Cloud
48+
uses: google-github-actions/auth@v2
49+
with:
50+
credentials_json: ${{ secrets.GCP_SA_KEY }}
51+
52+
- name: Build Docker Image
53+
run: |-
54+
gcloud builds submit \
55+
--quiet \
56+
--timeout=30m \
57+
--config=cloudbuild.yml \
58+
--substitutions=_GCP_PROJECT_ID=${{ env.GCP_PROJECT_ID }},_GCP_ARTIFACT_REGISTRY_NAME=${{ env.GCP_ARTIFACT_REGISTRY_NAME }},_GCP_ARTIFACT_REGISTRY_LOCATION=${{ env.GCP_ARTIFACT_REGISTRY_LOCATION }},_GCP_IMAGE_NAME=${{ env.GCP_IMAGE_NAME }},_GCP_IMAGE_TAG=${{ github.sha }},_GCP_IMAGE_ENVIRONMENT=${{ env.GCP_IMAGE_NAME }}
59+
60+
deploy:
61+
needs: build
62+
environment: development-vm
63+
runs-on: ubuntu-latest
64+
65+
steps:
66+
- name: Checkout code
67+
uses: actions/checkout@v4
68+
69+
- name: Authenticate with Google Cloud
70+
uses: google-github-actions/auth@v2
71+
with:
72+
credentials_json: ${{ secrets.GCP_SA_KEY }}
73+
74+
- name: Deploy to Compute Engine
75+
run: |
76+
SSH_DIR=~/.ssh
77+
mkdir -p $SSH_DIR
78+
echo "${{ secrets.GCP_SSH_PRIVATE_KEY }}" > $SSH_DIR/id_rsa
79+
chmod 600 $SSH_DIR/id_rsa
80+
ssh-keyscan -H ${{ env.GCP_VM_IP }} >> $SSH_DIR/known_hosts
81+
82+
# Define remote path
83+
REMOTE_PATH="/home/${{ env.GCP_VM_USER }}/${{ env.GCP_ARTIFACT_REGISTRY_NAME }}-${{ env.GCP_IMAGE_NAME }}"
84+
85+
# Create remote directory and transfer files in one SSH session
86+
echo "Creating remote path"
87+
ssh -i $SSH_DIR/id_rsa ${{ env.GCP_VM_USER }}@${{ env.GCP_VM_IP }} "mkdir -p $REMOTE_PATH"
88+
echo "Sending files"
89+
scp -i $SSH_DIR/id_rsa compose.yaml deploy_to_vm.sh ${{ env.GCP_VM_USER }}@${{ env.GCP_VM_IP }}:$REMOTE_PATH
90+
91+
ssh -i $SSH_DIR/id_rsa ${{ env.GCP_VM_USER }}@${{ env.GCP_VM_IP }} 'bash -s' << 'ENDSSH'
92+
93+
# Go to working directory
94+
echo "Going to working directory"
95+
cd "/home/${{ env.GCP_VM_USER }}/${{ env.GCP_ARTIFACT_REGISTRY_NAME }}-${{ env.GCP_IMAGE_NAME }}"
96+
97+
# Create .env.gcp file
98+
echo "Creating .env.gcp file"
99+
{
100+
echo "GCP_IMAGE_TAG=${{ github.sha }}"
101+
echo "GCP_PROJECT_ID=${{ env.GCP_PROJECT_ID }}"
102+
echo "GCP_IMAGE_NAME=${{ env.GCP_IMAGE_NAME }}"
103+
echo "GCP_ARTIFACT_REGISTRY_NAME=${{ env.GCP_ARTIFACT_REGISTRY_NAME }}"
104+
echo "GCP_ARTIFACT_REGISTRY_LOCATION=${{ env.GCP_ARTIFACT_REGISTRY_LOCATION }}"
105+
echo "GCP_VM_USER=${{ env.GCP_VM_USER }}"
106+
echo "CANON_DB_HOST=${{ secrets.CANON_DB_HOST}}"
107+
echo "CANON_DB_PW=${{ secrets.CANON_DB_PW}}"
108+
echo "CANON_HOTJAR=${{ secrets.CANON_HOTJAR}}"
109+
echo "CANON_API=${{ env.CANON_API }}"
110+
echo "CANON_CMS_CUBES=${{ env.CANON_CMS_CUBES }}"
111+
echo "CANON_CMS_ENABLE=${{ env.CANON_CMS_ENABLE }}"
112+
echo "CANON_CMS_FORCE_HTTPS=${{ env.CANON_CMS_FORCE_HTTPS }}"
113+
echo "CANON_CMS_GENERATOR_TIMEOUT=${{ env.CANON_CMS_GENERATOR_TIMEOUT }}"
114+
echo "CANON_CMS_LOGGING=${{ env.CANON_CMS_LOGGING }}"
115+
echo "CANON_CMS_MINIMUM_ROLE=${{ env.CANON_CMS_MINIMUM_ROLE }}"
116+
echo "CANON_CMS_REQUESTS_PER_SECOND=${{ env.CANON_CMS_REQUESTS_PER_SECOND }}"
117+
echo "CANON_CONST_CART=${{ env.CANON_CONST_CART }}"
118+
echo "CANON_CONST_CUBE=${{ env.CANON_CONST_CUBE }}"
119+
echo "CANON_CONST_TESSERACT=${{ env.CANON_CONST_TESSERACT }}"
120+
echo "CANON_DB_NAME=${{ env.CANON_DB_NAME }}"
121+
echo "CANON_DB_USER=${{ env.CANON_DB_USER }}"
122+
echo "CANON_GEOSERVICE_API=${{ env.CANON_GEOSERVICE_API }}"
123+
echo "CANON_GOOGLE_ANALYTICS=${{ env.CANON_GOOGLE_ANALYTICS }}"
124+
echo "CANON_LANGUAGES=${{ env.CANON_LANGUAGES }}"
125+
echo "CANON_LANGUAGE_DEFAULT=${{ env.CANON_LANGUAGE_DEFAULT }}"
126+
echo "CANON_LOGICLAYER_CUBE=${{ env.CANON_LOGICLAYER_CUBE }}"
127+
echo "CANON_LOGICLAYER_SLUGS=${{ env.CANON_LOGICLAYER_SLUGS }}"
128+
echo "CANON_LOGINS=${{ env.CANON_LOGINS }}"
129+
echo "GA_KEYFILE=${{ env.GA_KEYFILE }}"
130+
} > .env.gcp
131+
132+
echo "Adding Google Analytics credentials to ./google directory"
133+
mkdir -p ./google
134+
135+
cat << EOF > ./google/googleAnalyticsKey.json
136+
${{ secrets.GA_KEYFILE }}
137+
EOF
138+
139+
bash ./deploy_to_vm.sh
140+
141+
ENDSSH

.github/workflows/google-registry-gke-dev.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ name: "[GCP][DEV] Build NextJS to Registry and Deploy via Helm"
6161

6262
on:
6363
push:
64-
branches: [ "develop" ]
64+
branches: [ "disabled" ]
6565
paths:
6666
- .github/workflows/google-registry-gke-dev.yaml
6767
- helm/templates

0 commit comments

Comments
 (0)