@@ -2,6 +2,16 @@ name: Production Deploy
22
33on :
44 workflow_dispatch :
5+ inputs :
6+ service :
7+ description : Service to deploy
8+ required : true
9+ type : choice
10+ default : frontend
11+ options :
12+ - frontend
13+ - package-downloads-worker
14+ - search-volume-worker
515
616env :
717 CLOUD_ENV : lf-oracle-production
2131 steps :
2232 - name : Checkout code
2333 uses : actions/checkout@v4
34+ with :
35+ submodules : recursive
36+
37+ - name : Set service config
38+ id : config
39+ run : |
40+ case "${{ inputs.service }}" in
41+ frontend)
42+ echo "dockerfile=frontend/Dockerfile" >> $GITHUB_OUTPUT
43+ echo "image_name=insights-app" >> $GITHUB_OUTPUT
44+ echo "k8s_deployment=insights-app-dpl" >> $GITHUB_OUTPUT
45+ echo "k8s_container=frontend" >> $GITHUB_OUTPUT
46+ ;;
47+ package-downloads-worker)
48+ echo "dockerfile=workers/temporal/package_downloads_worker/Dockerfile" >> $GITHUB_OUTPUT
49+ echo "image_name=package-downloads-worker" >> $GITHUB_OUTPUT
50+ echo "k8s_deployment=package-downloads-worker-dpl" >> $GITHUB_OUTPUT
51+ echo "k8s_container=package-downloads-worker" >> $GITHUB_OUTPUT
52+ ;;
53+ search-volume-worker)
54+ echo "dockerfile=workers/temporal/search_volume_worker/Dockerfile" >> $GITHUB_OUTPUT
55+ echo "image_name=insights-search-volume-worker" >> $GITHUB_OUTPUT
56+ echo "k8s_deployment=search-volume-worker-dpl" >> $GITHUB_OUTPUT
57+ echo "k8s_container=search-volume-worker" >> $GITHUB_OUTPUT
58+ ;;
59+ *)
60+ echo "::error::Unknown service: ${{ inputs.service }}"
61+ exit 1
62+ ;;
63+ esac
2464
2565 - name : Setup OCI CLI and Kubectl
2666 run : |
@@ -64,17 +104,21 @@ jobs:
64104 id : build-docker-image
65105 with :
66106 app-env : production
67- env :
68- NUXT_REDIS_URL : ${{ env.NUXT_REDIS_URL }}
107+ dockerfile : ${{ steps.config.outputs.dockerfile }}
108+ image-name : ${{ steps.config.outputs.image_name }}
109+ build-args : ' '
69110
70111 - name : Update Deployment Image
71112 run : |
72- kubectl set image deployment/insights-app-dpl frontend=${{ steps.build-docker-image.outputs.image }} -n insights
73- kubectl rollout status deployment/insights-app-dpl -n insights --timeout=300s
113+ kubectl set image deployment/${{ steps.config.outputs.k8s_deployment }} \
114+ ${{ steps.config.outputs.k8s_container }}=${{ steps.build-docker-image.outputs.image }} \
115+ -n insights
116+ kubectl rollout status deployment/${{ steps.config.outputs.k8s_deployment }} -n insights --timeout=300s
74117
75118 - name : Flush Redis cache
119+ if : inputs.service == 'frontend'
76120 run : |
77121 REDIS_URL=$(kubectl get configmap insights-config-map -n insights -o jsonpath="{.data.NUXT_REDIS_URL}")
78122 PASSWORD=$(echo "$REDIS_URL" | sed -n 's|.*://:\([^@]*\)@.*|\1|p')
79123 kubectl exec -i redis-client -n insights -- \
80- redis-cli -h redis-svc -a "$PASSWORD" FLUSHALL
124+ redis-cli -h redis-svc -a "$PASSWORD" FLUSHALL
0 commit comments