Skip to content

chore: 빌드 태스크 수정 #29

chore: 빌드 태스크 수정

chore: 빌드 태스크 수정 #29

Workflow file for this run

name: ec2-pipeline.yml
on:
push:
branches: [ main ]
env:
APP_NAME : right
BUILD_NAME : right
permissions:
contents: read
jobs:
ec2-deploy:
runs-on: ubuntu-latest
services:
mongo:
image: mongo:latest
ports:
- 27017:27017
options: --health-cmd="mongosh --eval 'db.adminCommand(\"ping\")'" --health-interval=10s --health-timeout=5s --health-retries=5
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Set up secret.yml
env:
APPLICATION_SECRET_CONTENT: ${{ secrets.APPLICATION_SECRET }}
run: |
cd ./src/main/resources
touch ./application-secret.yml
echo "$APPLICATION_SECRET_CONTENT" > ./application-secret.yml
ls -a .
- name: firebase_service_key.json 구성
run: |
cd ./src/main/resources
cat > ./firebase_service_key.json << 'EOF'
${{ secrets.FCM_KEY }}
EOF
ls -a .
- name: Grant execute permission for Gradle
run: chmod +x ./gradlew
- name: Run asciidoc mv static/html
run: |
mkdir -p build/generated-snippets
./gradlew asciidoctor -x test
- name: PR and PUSH Test Verification
run: ./gradlew build -x test
- name: Docker push image
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker build --platform linux/amd64 -t app .
docker tag app ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }}:latest
docker push ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }}:latest
- name: AWS deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_KEY }}
script: |
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }}:latest
sudo docker stop right || true
sudo docker rm right || true
sudo docker run -v /home/${{ secrets.EC2_USER }}/elk/logs:/logs -d --log-driver=syslog -p 443:8080 --name right --network right-network -e spring.profiles.active=release -e TZ=Asia/Seoul ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }}:latest
sudo docker container prune -f
sudo docker image prune -f
sudo docker images ${{ secrets.DOCKER_USERNAME }}/${{ env.APP_NAME }} -q | awk 'NR>1' | xargs -r sudo docker rmi -f