-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #164 from CEOS-Developers/dev
os 마이그레이션 배포환경 적용
- Loading branch information
Showing
4 changed files
with
265 additions
and
128 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,94 +16,153 @@ jobs: | |
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Make application-secret.yml without env | ||
run: | | ||
touch ./src/main/resources/application-secret.yml | ||
echo "${{ secrets.APPLICATION_SECRET_DEV }}" > ./src/main/resources/application-secret.yml | ||
# JDK version 설정 | ||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: '17' | ||
distribution: 'temurin' | ||
|
||
# 그래들 캐싱 | ||
- 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- | ||
- name: Make application-secret.yml without env | ||
run: | | ||
touch ./src/main/resources/application-secret.yml | ||
echo "${{ secrets.APPLICATION_SECRET_DEV }}" > ./src/main/resources/application-secret.yml | ||
env: | ||
PROPERTIES_DEV: ${{ secrets.APPLICATION_SECRET_DEV }} | ||
|
||
- name: Make env | ||
run: | | ||
touch .env | ||
echo "${{ secrets.ENV_DEV }}" > .env | ||
env: | ||
PROPERTIES_DEV: ${{ secrets.ENV_DEV }} | ||
|
||
# Gradle build | ||
## gradle build | ||
- name: Build with Gradle | ||
run: ./gradlew build -x test :spotlessApply | ||
|
||
- name: Docker meta | ||
id: docker_meta | ||
uses: crazy-max/ghaction-docker-meta@v1 | ||
with: | ||
images: ceos/ceos-server-dev | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v1 | ||
run: ./gradlew bootJar | ||
|
||
- name: Login to DockerHub | ||
uses: docker/login-action@v1 | ||
uses: docker/login-action@v3 | ||
with: | ||
username: ${{ secrets.DOCKER_USERNAME }} | ||
password: ${{ secrets.DOCKER_PASSWORD }} | ||
|
||
- name: Docker build & push | ||
uses: docker/build-push-action@v2 | ||
- name: Docker app build & push | ||
uses: docker/build-push-action@v5 | ||
with: | ||
context: . | ||
file: ./Dockerfile | ||
platforms: linux/amd64 | ||
push: true | ||
tags: ${{ secrets.DOCKER_USERNAME }}/ceos-backend-dev | ||
|
||
- name: create remote directory | ||
uses: appleboy/ssh-action@master | ||
- name: Docker nginx build & push | ||
uses: docker/build-push-action@v5 | ||
with: | ||
host: ${{ secrets.EC2_HOST_DEV }} | ||
username: ubuntu | ||
key: ${{ secrets.EC2_KEY_DEV }} | ||
script: mkdir -p ~/srv/ubuntu/ceos_web_dev | ||
|
||
- name: copy source via ssh key | ||
uses: burnett01/[email protected] | ||
with: | ||
switches: -avzr --delete | ||
remote_path: ~/srv/ubuntu/ | ||
remote_host: ${{ secrets.EC2_HOST_DEV }} | ||
remote_user: ubuntu | ||
remote_key: ${{ secrets.EC2_KEY_DEV }} | ||
context: . | ||
file: ./config/nginx/Dockerfile | ||
platforms: linux/amd64 | ||
push: true | ||
tags: ${{ secrets.DOCKER_USERNAME }}/ceos-nginx-dev | ||
|
||
# ssh 접근 후 docker 이미지 pull 및 컨테이너 재시작 | ||
- name: executing remote ssh commands using password | ||
uses: appleboy/ssh-action@master | ||
with: | ||
host: ${{ secrets.EC2_HOST_DEV }} | ||
username: ubuntu | ||
username: ec2-user # ubuntu 에서 변경 | ||
key: ${{ secrets.EC2_KEY_DEV }} | ||
script: | | ||
sh ~/srv/ubuntu/config/scripts/deploy.sh | ||
sudo docker stop $(sudo docker ps -a -q) | ||
sudo docker rm $(sudo docker ps -a -q) | ||
sudo docker rmi $(sudo docker images -q) | ||
sudo docker-compose -f ~/srv/ubuntu/docker-compose.dev.yml pull | ||
sudo docker-compose -f ~/srv/ubuntu/docker-compose.dev.yml up --build -d | ||
cd /home/ec2-user/ceos | ||
sudo touch .env | ||
echo "${{ secrets.ENV_DEV }}" | sudo tee .env > /dev/null | ||
sudo curl -o docker-compose.dev.yml https://raw.githubusercontent.com/CEOS-Developers/CEOS-BE/dev/docker-compose.dev.yml | ||
sudo chmod 666 /var/run/docker.sock | ||
sudo docker rm -f $(docker ps -qa) | ||
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ceos-backend-dev | ||
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ceos-nginx-dev | ||
docker-compose -f docker-compose.dev.yml --env-file ./.env up -d | ||
docker image prune -f | ||
# 주석 처리함 (레거시 코드) | ||
# | ||
# # 그래들 캐싱 | ||
# - 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- | ||
# | ||
# - name: Make application-secret.yml without env | ||
# run: | | ||
# touch ./src/main/resources/application-secret.yml | ||
# echo "${{ secrets.APPLICATION_SECRET_DEV }}" > ./src/main/resources/application-secret.yml | ||
# env: | ||
# PROPERTIES_DEV: ${{ secrets.APPLICATION_SECRET_DEV }} | ||
# | ||
# - name: Make env | ||
# run: | | ||
# touch .env | ||
# echo "${{ secrets.ENV_DEV }}" > .env | ||
# env: | ||
# PROPERTIES_DEV: ${{ secrets.ENV_DEV }} | ||
# | ||
# # Gradle build | ||
# - name: Build with Gradle | ||
# run: ./gradlew build -x test :spotlessApply | ||
# | ||
# - name: Docker meta | ||
# id: docker_meta | ||
# uses: crazy-max/ghaction-docker-meta@v1 | ||
# with: | ||
# images: | ||
# | ||
# - name: Set up Docker Buildx | ||
# uses: docker/setup-buildx-action@v1 | ||
# | ||
# - name: Login to DockerHub | ||
# uses: docker/login-action@v1 | ||
# with: | ||
# username: ${{ secrets.DOCKER_USERNAME }} | ||
# password: ${{ secrets.DOCKER_PASSWORD }} | ||
# | ||
# - name: Docker build & push | ||
# uses: docker/build-push-action@v2 | ||
# with: | ||
# context: . | ||
# file: ./Dockerfile | ||
# platforms: linux/amd64 | ||
# push: true | ||
# tags: ${{ secrets.DOCKER_USERNAME }}/ceos-backend-dev | ||
# | ||
# - name: create remote directory | ||
# uses: appleboy/ssh-action@master | ||
# with: | ||
# host: ${{ secrets.EC2_HOST_DEV }} | ||
# username: ubuntu | ||
# key: ${{ secrets.EC2_KEY_DEV }} | ||
# script: mkdir -p ~/srv/ubuntu/ceos_web_dev | ||
# | ||
# - name: copy source via ssh key | ||
# uses: burnett01/[email protected] | ||
# with: | ||
# switches: -avzr --delete | ||
# remote_path: ~/srv/ubuntu/ | ||
# remote_host: ${{ secrets.EC2_HOST_DEV }} | ||
# remote_user: ubuntu | ||
# remote_key: ${{ secrets.EC2_KEY_DEV }} | ||
# | ||
# - name: executing remote ssh commands using password | ||
# uses: appleboy/ssh-action@master | ||
# with: | ||
# host: ${{ secrets.EC2_HOST_DEV }} | ||
# username: ubuntu | ||
# key: ${{ secrets.EC2_KEY_DEV }} | ||
# script: | | ||
# sh ~/srv/ubuntu/config/scripts/deploy.sh | ||
# sudo docker stop $(sudo docker ps -a -q) | ||
# sudo docker rm $(sudo docker ps -a -q) | ||
# sudo docker rmi $(sudo docker images -q) | ||
# sudo docker-compose -f ~/srv/ubuntu/docker-compose.dev.yml pull | ||
# sudo docker-compose -f ~/srv/ubuntu/docker-compose.dev.yml up --build -d |
Oops, something went wrong.