Skip to content

Merge pull request #236 from TEAMMatchDev/Api-Release #17

Merge pull request #236 from TEAMMatchDev/Api-Release

Merge pull request #236 from TEAMMatchDev/Api-Release #17

name: Match batch Server CI/CD
on:
push:
branches: [batch]
workflow_dispatch: # 수동 실행 옵션 (생략)
jobs:
build:
runs-on: ubuntu-latest # action 스크립트가 작동될 OS
steps: # 작업 단계
- name: Checkout source code # 단계별 이름, 구분자로 소스를 가져옴
uses: actions/checkout@v2
- name: Setup JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
- name: Set Environment - Common Prod Yml
uses: microsoft/variable-substitution@v1
with:
files: ./Match-Common/src/main/resources/application-common.yml
env:
oauth.kakao.base-url: ${{ secrets.KAKAO_PROD_BASE_URL }}
oauth.kakao.client-id: ${{ secrets.KAKAO_CLIENT }}
oauth.kakao.client-secret: ${{ secrets.KAKAO_SECRET }}
oauth.kakao.redirect-url: ${{ secrets.KAKAO_PROD_REDIRECT }}
oauth.kakao.app-id: ${{ secrets.KAKAO_APP_ID }}
oauth.kakao.admin-key: ${{ secrets.KAKAO_ADMIN_KEY }}
jwt.secret: ${{ secrets.JWT_SECRET_KEY }}
jwt.refresh: ${{ secrets.JWT_REFRESH_KEY }}
oauth.naver.secret: ${{ secrets.NAVER_SECRET }}
oauth.naver.client: ${{ secrets.NAVER_CLIENT }}
oauth.naver.redirect-url: ${{ secrets.NAVER_PROD_REDIRECT}}
sms.secret: ${{ secrets.SMS_SECRET_KEY }}
sms.api: ${{ secrets.SMS_API_KEY }}
sms.sender: ${{ secrets.SMS_SENDER }}
nice.secret: ${{ secrets.NICE_PROD_SECRET_KEY}}
nice.client: ${{ secrets.NICE_PROD_CLIENT_KEY }}
nice.url: ${{ secrets.NICE_PROD_URL}}
aws.access-key: ${{ secrets.AWS_S3_ACCESS_KEY }}
aws.secret-key: ${{ secrets.AWS_S3_SECRET_KEY }}
aws.s3.bucket: ${{ secrets.AWS_S3_BUCKET }}
aws.s3.bucket-url: ${{ secrets.AWS_S3_BASE_URL }}
discord.webhook.error: ${{ secrets.DISCORD_WEBHOOK_ERROR}}
discord.webhook.alert: ${{ secrets.DISCORD_WEBHOOK_ALERT }}
web.return.url: ${{ secrets.PROD_RETURN_URL }}
match.aligo.url: ${ secrets.MATCH_ALIGO_URL }}
server.host: ${{ secrets.PROD_SERVER_HOST}}
spring.password: ${{ secrets.APP_PASSWORD}}
aligo.username: ${{ secrets.ALIGO_USERNAME }}
aligo.key: ${{ secrets.ALIGO_KEY }}
portone.code: ${{ secrets.PORTONE_CODE }}
portone.key: ${{ secrets.PORTONE_KEY }}
portone.secret: ${{ secrets.PORTONE_SECRET }}
portone.billmid: ${{ secrets.PROD_PORTONE_BILL_MID}}
private.aes.key: ${{ secrets.AES_PRIVATE_KEY }}
apple.bundle.id: ${{ secrets.APPLE_BUNDLE_ID }}
apple.team.id: ${{ secrets.APPLE_TEAM_ID }}
aligo.sender-key: ${{ secrets.KAKAO_SENDER_KEY }}
- name: Set Environment Domain - Domain Prod Yml
uses: microsoft/variable-substitution@v1
with:
files: ./Match-Domain/src/main/resources/application-domain-prod.yml
env:
spring.datasource.master.hikari.jdbc-url: ${{ secrets.PROD_DB_URL_HOST }}
spring.datasource.master.hikari.username: ${{ secrets.AWS_DB_USER_NAME }}
spring.datasource.master.hikari.password: ${{ secrets.AWS_DB_PASSWORD }}
spring.datasource.slave.hikari.jdbc-url: ${{ secrets.PROD_SLAVE_URL_HOST }}
spring.datasource.slave.hikari.username: ${{ secrets.AWS_DB_USER_NAME }}
spring.datasource.slave.hikari.password: ${{ secrets.AWS_DB_PASSWORD }}
spring.redis.host : ${{ secrets.REDIS_PROD_HOST }}
- name: create-fcm-json
id: create-fcm-json
uses: jsdaniell/[email protected]
with:
name: "serviceAccountKey.json"
json: ${{ secrets.FCM_JSON }}
dir: "Match-Common/src/main/resources/"
- name: Create Auth Key File
run: |
echo "${{ secrets.AUTH_KEY }}" > ./Match-Common/src/main/resources/AuthKey_74JQ8SGRU2.p8
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
shell: bash
- name: Docker Login
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build with Gradle
run: ./gradlew Match-Batch:bootJar
shell: bash
- name: Get current time
uses: 1466587594/get-current-time@v2
id: current-time
with:
format: YYYYMMDDTHHmm
utcOffset: "+09:00"
- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
context: .
file: Dockerfile
push: true
tags: ${{ secrets.DOCKER_REPO }}/match_batch_image:latest
- name: trigger jenkins job.
uses: appleboy/jenkins-action@master
with:
url: ${{ secrets.WEBHOOK_URL }}
user: "matchadmin"
token: ${{ secrets.JENKINS_API_TOKEN }}
job: "match-batch"