Skip to content

chore: update generated API client #28

chore: update generated API client

chore: update generated API client #28

Workflow file for this run

name: Deploy For Dev - Image based
on:
push:
branches: [develop] # Trigger workflow on git push to main branch
workflow_dispatch: # Allow manual invocation of the workflow
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
persist-credentials: false
- name: Configure AWS credentials
id: aws-credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.DEV_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.DEV_AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-1
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
- name: Build, tag, and push image to Amazon ECR
id: build-image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: ibyeolnote/prod
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG -f docker/prod-dockerfile .
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"
- name: Deploy to EC2
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: ibyeolnote/prod
EC2_SSH_KEY: ${{ secrets.EC2_SSH_KEY }}
IMAGE_TAG: ${{ github.sha }}
EC2_PUBLIC_IP: ${{ secrets.DEV_EC2_PUBLIC_IP }} # Add your EC2 public IP in secrets
run: |
echo "$EC2_SSH_KEY" > ec2_ssh_key.pem
chmod 600 ec2_ssh_key.pem
ssh -i ec2_ssh_key.pem -o StrictHostKeyChecking=no ubuntu@$EC2_PUBLIC_IP "
aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin $ECR_REGISTRY
docker pull $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
docker stop ibyeolnote-container || true
docker rm ibyeolnote-container || true
docker run -d -p 80:3000 --name ibyeolnote-container $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
docker image prune -a -f
"
# APP Runner로 전환 시
# - name: Deploy to App Runner
# id: deploy-apprunner
# uses: awslabs/amazon-app-runner-deploy@main
# env:
# SERVER_PORT: ${{ secrets.DEV_SERVER_PORT }}
# DATABASE_TYPE: ${{ secrets.DEV_DATABASE_TYPE }}
# DATABASE_HOST: ${{ secrets.DEV_DATABASE_HOST }}
# DATABASE_PORT: ${{ secrets.DEV_DATABASE_PORT }}
# DATABASE_USERNAME: ${{ secrets.DEV_DATABASE_USERNAME }}
# DATABASE_PASSWORD: ${{ secrets.DEV_DATABASE_PASSWORD }}
# DATABASE_NAME: ${{ secrets.DEV_DATABASE_NAME }}
# DATABASE_SYNC: ${{ secrets.DEV_DATABASE_SYNC }}
# DATABASE_CRT: ${{ secrets.DEV_DATABASE_CRT }}
# S3_BUCKET_NAME: ${{ secrets.DEV_S3_BUCKET_NAME}}
# JWT_ACCESS_SECRET: ${{ secrets.JWT_ACCESS_SECRET }}
# JWT_ACCESS_EXPIRES: ${{ secrets.JWT_ACCESS_EXPIRES }}
# JWT_REFRESH_SECRET: ${{ secrets.JWT_REFRESH_SECRET }}
# JWT_REFRESH_EXPIRES: ${{ secrets.JWT_REFRESH_EXPIRES }}
# REDIS_HOST: ${{ secrets.DEV_REDIS_HOST }}
# with:
# service: dev-ibyeolnote-api-server
# image: ${{ steps.build-image.outputs.image }}
# access-role-arn: ${{ secrets.DEV_ROLE_ARN }}
# runtime: NODEJS_20
# region: ap-northeast-1
# cpu: 1
# memory: 2
# port: 3000
# copy-env-vars: |
# SERVER_PORT
# DATABASE_TYPE
# DATABASE_HOST
# DATABASE_PORT
# DATABASE_USERNAME
# DATABASE_PASSWORD
# DATABASE_NAME
# DATABASE_SYNC
# DATABASE_CRT
# S3_BUCKET_NAME
# JWT_ACCESS_SECRET
# JWT_ACCESS_EXPIRES
# JWT_REFRESH_SECRET
# JWT_REFRESH_EXPIRES
# ALIGO_API_KEY
# ALIGO_USER_ID
# ALIGO_SENDER
# REDIS_HOST
# wait-for-service-stability: true
# - name: App Runner output
# run: echo "App runner output ${{ steps.deploy-apprunner.outputs.service-id }}"