[Feat] github action 적용해보기 #1
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
name: Deploy Development Server # 깃헙 레포지토리의 액션 탭에 노출되는 workflow의 이름으로 옵셔널한 값 | |
## develop 브랜치에 push가 되면 실행됩니다 | |
on: | |
push: | |
branches: [ "yoonsseo" ] | |
permissions: | |
contents: read | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
# 우리의 branch를 현재 비어있는 ubuntu에 내려받도록 함 | |
- name: checkout | |
uses: actions/checkout@v3 | |
## java 다운받기 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
## gradle build | |
- name: Build with Gradle | |
run: ./gradlew bootJar | |
## 웹 이미지 빌드 및 도커허브에 push | |
- name: web docker build and push | |
run: | | |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
docker build -t my-repo/my-web-image . | |
docker push my-repo/my-web-image | |
docker build -f dockerfile-nginx -t my-repo/my-nginx-image . | |
docker push my-repo/my-nginx-image | |
- name: executing remote ssh commands using password | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.HOST }} | |
username: ubuntu | |
key: ${{ secrets.KEY }} | |
script: | | |
## 여러분이 원하는 경로로 이동합니다. | |
cd /home/ubuntu/ | |
## .env 파일을 생성합니다. | |
sudo touch .env | |
echo "${{ secrets.ENV_VARS }}" | sudo tee .env > /dev/null | |
## docker-compose.yaml 파일을 생성합니다. | |
sudo touch docker-compose.yaml | |
echo "${{ vars.DOCKER_COMPOSE }}" | sudo tee docker-compose.yaml > /dev/null | |
## docker-compose를 실행합니다. | |
sudo chmod 666 /var/run/docker.sock | |
sudo docker rm -f $(docker ps -qa) | |
sudo docker pull my-repo/my-web-image | |
sudo docker pull my-repo/my-nginx-image | |
docker-compose -f docker-compose.yaml --env-file ./.env up -d | |
docker image prune -f |