Merge pull request #264 from project-mos/feat/#263 #170
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ๐ Deploy workflow on test environment | |
| on: | |
| push: | |
| branches: [ 'release/**', 'release' ] | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| # ์ฝ๋ ๋ณต์ฌ | |
| - name: check out the repo | |
| uses: actions/checkout@v4 | |
| - name: Create .env file | |
| run: | | |
| echo "CORS_ALLOWED_ORIGINS=${{secrets.CORS_ALLOWED_ORIGINS}}" >> .env | |
| echo "KAKAO_CLIENT_ID=${{secrets.KAKAO_CLIENT_ID}}" >> .env | |
| echo "KAKAO_CLIENT_SECRET=${{secrets.KAKAO_CLIENT_SECRET}}" >> .env | |
| echo "KAKAO_REDIRECT_URI=${{secrets.KAKAO_REDIRECT_URI}}" >> .env | |
| echo "GOOGLE_CLIENT_ID=${{secrets.GOOGLE_CLIENT_ID}}" >> .env | |
| echo "GOOGLE_CLIENT_SECRET=${{secrets.GOOGLE_CLIENT_SECRET}}" >> .env | |
| echo "GOOGLE_REDIRECT_URI=${{secrets.GOOGLE_REDIRECT_URI}}" >> .env | |
| echo "NAVER_CLIENT_ID=${{secrets.NAVER_CLIENT_ID}}" >> .env | |
| echo "NAVER_CLIENT_SECRET=${{secrets.NAVER_CLIENT_SECRET}}" >> .env | |
| echo "NAVER_REDIRECT_URI=${{secrets.NAVER_REDIRECT_URI}}" >> .env | |
| echo "JWT_SECRET=${{secrets.JWT_SECRET}}" >> .env | |
| echo "JWT_ACCESS_EXPIRATION=${{secrets.JWT_ACCESS_EXPIRATION}}" >> .env | |
| echo "JWT_ACCESS_HEADER_NAME=${{secrets.JWT_ACCESS_HEADER_NAME}}" >> .env | |
| echo "JWT_ACCESS_COOKIE_NAME=${{secrets.JWT_ACCESS_COOKIE_NAME}}" >> .env | |
| echo "JWT_REFRESH_EXPIRATION=${{secrets.JWT_REFRESH_EXPIRATION}}" >> .env | |
| echo "JWT_REFRESH_HEADER_NAME=${{secrets.JWT_REFRESH_HEADER_NAME}}" >> .env | |
| echo "JWT_REFRESH_COOKIE_NAME=${{secrets.JWT_REFRESH_COOKIE_NAME}}" >> .env | |
| echo "DATASOURCE_URL=${{secrets.DATASOURCE_RELEASE_URL}}" >> .env | |
| echo "GENERATE_DDL=${{secrets.GENERATE_DDL}}" >> .env | |
| echo "DATABASE_USERNAME=${{secrets.DATABASE_USERNAME}}" >> .env | |
| echo "DATABASE_PASSWORD=${{secrets.DATABASE_PASSWORD}}" >> .env | |
| echo "DATABASE_DRIVER_CLASS_NAME=${{secrets.DATASOURCE_DRIVER_CLASS_NAME}}" >> .env | |
| echo "DDL_AUTO=${{secrets.DDL_AUTH}}" >> .env | |
| echo "REDIS_HOST=${{secrets.REDIS_RELEASE_HOST}}" >> .env | |
| echo "REDIS_PORT=${{secrets.REDIS_PORT}}" >> .env | |
| echo "REDIS_PRIVATE_CHAT_CHANNEL=${{secrets.REDIS_PRIVATE_CHAT_CHANNEL}}" >> .env | |
| echo "REDIS_STUDY_CHAT_CHANNEL=${{secrets.REDIS_PRIVATE_CHAT_CHANNEL}}" >> .env | |
| echo "REDIS_PRIVATE_CHAT_ROOM_INFO_CHANNEL=${{secrets.REDIS_PRIVATE_CHAT_ROOM_INFO_CHANNEL}}" >> .env | |
| echo "REDIS_STUDY_CHAT_ROOM_INFO_CHANNEL=${{secrets.REDIS_STUDY_CHAT_ROOM_INFO_CHANNEL}}" >> .env | |
| echo "AWS_ACCESS_KEY=${{secrets.AWS_ACCESS_KEY_ID}}" >> .env | |
| echo "AWS_SECRET_KEY=${{secrets.AWS_SECRET_ACCESS_KEY}}" >> .env | |
| echo "AWS_S3_BUCKET=${{secrets.AWS_S3_BUCKET}}" >> .env | |
| echo "FIREBASE_SERVICE_ACCOUNT_KEY_PATH=${{secrets.FIREBASE_SERVICE_ACCOUNT_KEY_PATH}}" >> .env | |
| - name: Create firebase directory | |
| run: mkdir -p src/main/resources/firebase | |
| # create serviceAccountKey.json | |
| - name: create serviceAccountKey.json | |
| id: create-json | |
| uses: jsdaniell/create-json@v1.2.2 | |
| with: | |
| name: "serviceAccountKey.json" | |
| json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_JSON }} | |
| dir: 'src/main/resources/firebase' | |
| # Gradle ํ ์คํธ ์คํ (ํ ์คํธ๊ฐ ์คํจํ๋ฉด ์ํฌํ๋ก์ฐ๊ฐ ์ค๋จ๋จ) | |
| - name: Run tests | |
| run: ./gradlew test --no-daemon | |
| # ๋์ปค ๋ก๊ทธ์ธ | |
| - name: Log in to Docker Hub | |
| uses: docker/login-action@v2 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| # Docker ์ด๋ฏธ์ง ๋น๋ | |
| - name: Build Docker image | |
| run: | | |
| docker build -t ${{ secrets.DOCKER_USERNAME }}/mos:${{ github.sha }} . | |
| docker tag ${{ secrets.DOCKER_USERNAME }}/mos:${{ github.sha }} ${{ secrets.DOCKER_USERNAME }}/mos:latest | |
| docker push ${{ secrets.DOCKER_USERNAME }}/mos:${{ github.sha }} | |
| docker push ${{ secrets.DOCKER_USERNAME }}/mos:latest | |
| # AWS ์๊ฒฉ ์ฆ๋ช | |
| - name: Configure AWS credentials | |
| uses: aws-actions/configure-aws-credentials@v2 | |
| with: | |
| aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| aws-region: ap-northeast-2 | |
| # ๋ฐฐํฌ ์์ | |
| - name: ๐ Deploy to EC2 with CodeDeploy | |
| run: | | |
| aws deploy create-deployment \ | |
| --application-name mos-deployer \ | |
| --deployment-config-name CodeDeployDefault.AllAtOnce \ | |
| --deployment-group-name mos-release \ | |
| --github-location repository=${{ github.repository }},commitId=${{ github.sha }} |