1+ name : Deploy Prometheus to Amazon ECS
2+
3+ on :
4+ push :
5+ branches : ["release", "develop"]
6+ paths :
7+ - " config/dev/application-prometheus-dev.yml"
8+ - " config/prod/application-prometheus-prod.yml"
9+ - " prometheus/**"
10+
11+ jobs :
12+ deploy-prometheus :
13+ runs-on : ubuntu-latest
14+ steps :
15+ - name : Checkout
16+ uses : actions/checkout@v3
17+ with :
18+ token : ${{ secrets.ACTION_TOKEN }}
19+ submodules : true
20+
21+ - name : Configure AWS credentials
22+ uses : aws-actions/configure-aws-credentials@v2
23+ with :
24+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
25+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
26+ aws-region : ap-northeast-2
27+
28+ - name : Login to Amazon ECR
29+ id : login-ecr
30+ uses : aws-actions/amazon-ecr-login@v1
31+
32+ - name : Set Environment Variables
33+ run : |
34+ if [ "${{ github.ref }}" == "refs/heads/develop" ]; then
35+ echo "ENV=dev" >> $GITHUB_ENV
36+ echo "ECR_REPO=${{ secrets.ECR_REPO_PROMETHEUS_DEV }}" >> $GITHUB_ENV
37+ echo "CONFIG_FILE=config/dev/application-prometheus-dev.yml" >> $GITHUB_ENV
38+ echo "SERVICE_NAME=${{ secrets.ECS_SERVICE_PROMETHEUS_DEV }}" >> $GITHUB_ENV
39+ else
40+ echo "ENV=prod" >> $GITHUB_ENV
41+ echo "ECR_REPO=${{ secrets.ECR_REPO_PROMETHEUS_PROD }}" >> $GITHUB_ENV
42+ echo "CONFIG_FILE=config/prod/application-prometheus-prod.yml" >> $GITHUB_ENV
43+ echo "SERVICE_NAME=${{ secrets.ECS_SERVICE_PROMETHEUS_PROD }}" >> $GITHUB_ENV
44+ fi
45+
46+ - name : Build and Push Prometheus Image
47+ env :
48+ ECR_REGISTRY : ${{ steps.login-ecr.outputs.registry }}
49+ run : |
50+ cp ${{ env.CONFIG_FILE }} ./prometheus.yml
51+ IMAGE_TAG=${{ github.sha }}
52+ docker build -t $ECR_REGISTRY/${{ env.ECR_REPO }}:$IMAGE_TAG \
53+ -t $ECR_REGISTRY/${{ env.ECR_REPO }}:${{ env.ENV }} .
54+ docker push $ECR_REGISTRY/${{ env.ECR_REPO }}:$IMAGE_TAG
55+ docker push $ECR_REGISTRY/${{ env.ECR_REPO }}:${{ env.ENV }}
56+
57+ - name : Update ECS Prometheus Service
58+ run : |
59+ aws ecs update-service --cluster ${{ secrets.ECS_CLUSTER_NAME }} \
60+ --service ${{ env.SERVICE_NAME }} \
61+ --force-new-deployment
0 commit comments