feature: 퀴즈 조회 api 구현 (#39) #16
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: build and deploy | |
on: | |
push: | |
branches: ['main'] | |
permissions: | |
contents: read | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
environment: main | |
steps: | |
- name: Checkout Github actions | |
uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Run chmod to make gradlew executable | |
run: chmod +x ./gradlew | |
- name: Build with Gradle | |
uses : gradle/gradle-build-action@v2 | |
with: | |
arguments: | | |
build | |
--scan | |
- name: Login to DockerHub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Docker Build & Push | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
push: true | |
tags: ${{ secrets.DOCKERHUB_USERNAME }}/dive_server:latest | |
- name: copy docker-compose -> EC2 server | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.DIVE_SERVER_IP }} | |
username: ubuntu | |
key: ${{ secrets.EC2_SSH_KEY }} | |
source: docker-compose.yml | |
target: /home/ubuntu/ | |
deploy: | |
runs-on: ubuntu-latest | |
environment: main | |
needs: build | |
steps: | |
- name: Docker compose | |
uses: appleboy/[email protected] | |
env: | |
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
with: | |
host: ${{ secrets.DIVE_SERVER_IP }} | |
username: ubuntu | |
key: ${{ secrets.EC2_SSH_KEY }} | |
envs: DOCKERHUB_USERNAME | |
script: | | |
echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin | |
sudo docker pull ${{ env.DOCKERHUB_USERNAME }}/dive_server:latest | |
sudo docker compose -f /home/ubuntu/docker-compose.yml up -d | |
sudo docker image prune -a -f |