This repository has been archived by the owner on Oct 20, 2024. It is now read-only.
chore: test login μμ (#139) #74
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: Java CI with Gradle | |
# λμ 쑰건 μ€μ : main λΈλμΉμ push νΉμ pull requestκ° λ°μν κ²½μ° λμνλ€. | |
on: | |
push: | |
branches: [ "main" ] | |
permissions: | |
contents: read | |
jobs: | |
# Spring Boot μ ν리μΌμ΄μ μ λΉλνμ¬ λ컀νλΈμ νΈμνλ κ³Όμ | |
build-docker-image: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
# 1. Java 17 μΈν | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
## create application-database.yaml | |
- name: create application.properties file | |
run: | | |
mkdir ./src/main/resources | |
touch ./src/main/resources/application.yml | |
echo "${{ secrets.APPLICATION_YML }}" >> src/main/resources/application.yml | |
## create firebase-service-key.json | |
- name: create firebase_service_key.json file | |
run: | | |
mkdir ./src/main/resources/firebase | |
touch ./src/main/resources/firebase/firebase_service_key.json | |
echo "${{ secrets.FIREBASE_SERVICE_KEY }}" > src/main/resources/firebase/firebase_service_key.json | |
- name: Grant execute permission for gradlew | |
run: chmod +x ./gradlew | |
shell: bash | |
# 2. Spring Boot μ ν리μΌμ΄μ λΉλ | |
- name: Build with Gradle | |
uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 | |
with: | |
arguments: clean bootJar | |
# 3. Docker μ΄λ―Έμ§ λΉλ | |
- name: docker image build | |
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aidiary . | |
# 4. DockerHub λ‘κ·ΈμΈ | |
- name: docker login | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
# 5. Docker Hub μ΄λ―Έμ§ νΈμ | |
- name: docker Hub push | |
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/aidiary | |
run-docker-image-on-ec2: | |
needs: build-docker-image | |
runs-on: self-hosted | |
steps: | |
# 1. μ΅μ μ΄λ―Έμ§λ₯Ό νλ°μ΅λλ€ | |
- name: docker pull | |
run: sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/aidiary | |
# 2. κΈ°μ‘΄μ 컨ν μ΄λλ₯Ό μ€μ§μν΅λλ€ | |
- name: docker stop container | |
run: sudo docker stop $(sudo docker ps -q) 2>/dev/null || true | |
# 3. μ΅μ μ΄λ―Έμ§λ₯Ό 컨ν μ΄λννμ¬ μ€νμν΅λλ€ | |
- name: docker run new container | |
run: sudo docker run --name aidiary --rm -d -p 8080:8080 ${{ secrets.DOCKERHUB_USERNAME }}/aidiary | |
# 4. λ―Έμ¬μ© μ΄λ―Έμ§λ₯Ό μ 리ν©λλ€ | |
- name: delete old docker image | |
run: sudo docker system prune -f |