55 - release
66 paths :
77 - " src/backend/**"
8+ - " src/go/**"
89 workflow_dispatch :
910
1011jobs :
@@ -102,7 +103,7 @@ jobs:
102103 key : ${{ secrets.EC2_SSH_KEY }}
103104 script : |
104105 aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin ${{ secrets.ECR_REGISTRY }}
105- docker pull ${{ secrets. ECR_REGISTRY }} /loa-life:backend-api-latest
106+ docker pull $ECR_REGISTRY/loa-life:backend-api-latest
106107
107108 docker stop backend-service || true
108109 docker rm backend-service || true
@@ -123,7 +124,7 @@ jobs:
123124 -e AUTH_SUCCESS_URL="${{ secrets.AUTH_SUCCESS_URL }}" \
124125 -e CLIENT_ENDPOINT="${{ secrets.CLIENT_ENDPOINT }}" \
125126 --restart always \
126- ${{ secrets. ECR_REGISTRY }} /loa-life:backend-api-latest
127+ $ECR_REGISTRY/loa-life:backend-api-latest
127128
128129 - name : Run Database Migrations
129130 uses : appleboy/ssh-action@master
@@ -133,3 +134,91 @@ jobs:
133134 key : ${{ secrets.EC2_SSH_KEY }}
134135 script : |
135136 docker exec backend-service npx prisma migrate deploy --schema=/app/prisma/schema.prisma
137+
138+ deploy-market-item-stat-scraper :
139+ name : Build and Deploy Market Item Stat Scraper
140+ runs-on : ubuntu-latest
141+ steps :
142+ - name : Checkout code
143+ uses : actions/checkout@v3
144+
145+ - name : Configure AWS credentials for ECR
146+ uses : aws-actions/configure-aws-credentials@v1
147+ with :
148+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
149+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
150+ aws-region : ap-northeast-2
151+
152+ - name : Login to Amazon ECR
153+ id : login-ecr
154+ uses : aws-actions/amazon-ecr-login@v1
155+
156+ - name : Build and Push Docker image
157+ env :
158+ ECR_REGISTRY : ${{ secrets.ECR_REGISTRY }}
159+ IMAGE_TAG : ${{ github.sha }}
160+ run : |
161+ docker build -t $ECR_REGISTRY/loa-life:market-item-stat-scraper-$IMAGE_TAG -f src/go/apps/market-item-stat-scraper/Dockerfile .
162+ docker push $ECR_REGISTRY/loa-life:market-item-stat-scraper-$IMAGE_TAG
163+ docker tag $ECR_REGISTRY/loa-life:market-item-stat-scraper-$IMAGE_TAG $ECR_REGISTRY/loa-life:market-item-stat-scraper-latest
164+ docker push $ECR_REGISTRY/loa-life:market-item-stat-scraper-latest
165+
166+ - name : Install AWS CLI on EC2
167+ uses : appleboy/ssh-action@master
168+ with :
169+ host : ${{ secrets.MISS_EC2_HOST }}
170+ username : ubuntu
171+ key : ${{ secrets.MISS_EC2_SSH_KEY }}
172+ script : |
173+ if ! command -v aws &> /dev/null; then
174+ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
175+ sudo apt install -y unzip
176+ unzip awscliv2.zip
177+ sudo ./aws/install
178+ rm -rf aws awscliv2.zip
179+ fi
180+
181+ if ! command -v docker &> /dev/null; then
182+ sudo apt-get update
183+ sudo apt-get install -y ca-certificates curl gnupg
184+ sudo install -m 0755 -d /etc/apt/keyrings
185+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
186+ sudo chmod a+r /etc/apt/keyrings/docker.gpg
187+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
188+ sudo apt-get update
189+ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
190+ sudo usermod -aG docker ubuntu
191+ fi
192+
193+ # Configure AWS CLI
194+ mkdir -p ~/.aws
195+ cat > ~/.aws/credentials << EOF
196+ [default]
197+ aws_access_key_id = ${{ secrets.AWS_ACCESS_KEY_ID }}
198+ aws_secret_access_key = ${{ secrets.AWS_SECRET_ACCESS_KEY }}
199+ EOF
200+
201+ cat > ~/.aws/config << EOF
202+ [default]
203+ region = ap-northeast-2
204+ output = json
205+ EOF
206+
207+ - name : Deploy to EC2
208+ uses : appleboy/ssh-action@master
209+ with :
210+ host : ${{ secrets.MISS_EC2_HOST }}
211+ username : ubuntu
212+ key : ${{ secrets.MISS_EC2_SSH_KEY }}
213+ script : |
214+ aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin ${{ secrets.ECR_REGISTRY }}
215+ docker pull ${{ secrets.ECR_REGISTRY }}/loa-life:market-item-stat-scraper-latest
216+
217+ docker stop market-item-stat-scraper || true
218+ docker rm market-item-stat-scraper || true
219+
220+ docker run -d \
221+ --name market-item-stat-scraper \
222+ -e DATABASE_URL="${{ secrets.DATABASE_URL }}" \
223+ --restart always \
224+ ${{ secrets.ECR_REGISTRY }}/loa-life:market-item-stat-scraper-latest
0 commit comments