Merge pull request #30 from Stumeet/dev ✨ [STMT-146] S3를 활용한 사용자 프로필 … #15
This file contains 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
# github repository actions 페이지에 나타날 이름 | |
name: CI/CD using github actions & docker | |
# event trigger | |
on: | |
push: | |
branches: [ "main" ] | |
permissions: | |
contents: read | |
jobs: | |
CI-CD: | |
runs-on: ubuntu-latest | |
steps: | |
# JDK setting | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'temurin' | |
- name: Set environment variables | |
run: | | |
cd ./src/main/resources | |
touch ./application-secret.properties | |
echo "${{ secrets.ENV }}" > ./application-secret.properties | |
# gradle caching - 빌드 시간 향상 | |
- name: Gradle Caching | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
# docker login | |
- name: Login to Docker Hub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
# build gradle | |
- name: Build gradlew | |
run: | | |
chmod +x gradlew | |
./gradlew jib \ | |
-Djib.from.auth.username=${{ secrets.DOCKER_USERNAME }} \ | |
-Djib.from.auth.password=${{ secrets.DOCKER_PASSWORD }} \ | |
-Dspring.profiles.active=prod | |
## deploy to production | |
- name: Deploy to prod | |
uses: appleboy/ssh-action@master | |
id: deploy-prod | |
if: contains(github.ref, 'main') | |
with: | |
host: ${{ secrets.AWS_PUBLIC_IP }} | |
username: ${{ secrets.AWS_USER }} | |
key: ${{ secrets.AWS_PRIVATE_KEY }} | |
port: ${{ secrets.AWS_SSH_PORT }} | |
script: | | |
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/server | |
sudo docker stop stumeet-server | |
docker container prune -f | |
sudo docker-compose up -d --no-deps --force-recreate stumeet-server | |
sudo docker image prune -f |