CI/CD
Github Actions, AWS Code Deploy


Github Actions

Github Actions workflow
deploy.yml
AWS CodeDeploy
appsepc.yml
deploy.sh
Last updated
Was this helpful?
Github Actions, AWS Code Deploy



Last updated
Was this helpful?
Was this helpful?
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
name: Java CI with Gradle
env:
PROJECT_NAME: WEB_KookMoBan_PonJohmNaimann
on:
push:
branches:
- '*' # matches every branch that doesn't contain a '/'
- '*/*' # matches every branch containing a single '/'
- '**' # matches every branch
jobs:
deploy:
name: DEPLOY
runs-on: ubuntu-18.04
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Grant execute permission for gradlew
run: chmod +x gradlew
shell: bash
- name: Build with Gradle
run: ./gradlew build
shell: bash
- name: Make zip file
run: zip -qq -r ./$GITHUB_SHA.zip .
shell: bash
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
- name: Upload to S3
run: aws s3 cp --region ap-northeast-2 ./$GITHUB_SHA.zip s3://osam-s3/$PROJECT_NAME/$GITHUB_SHA.zip
- name: Code Deploy
run: aws deploy create-deployment --application-name OSAM_Hackathon --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name dev --s3-location bucket=osam-s3,bundleType=zip,key=$PROJECT_NAME/$GITHUB_SHA.zip
version: 0.0
os: linux
files:
- source: /
destination: /opt/OSAM_Hackathon
permissions:
- object: /opt/OSAM_Hackathon/
owner: ubuntu
group: ubuntu
mode: 755
hooks:
AfterInstall:
- location: deploy.sh
timeout: 60
runas: root#!/usr/bin/env bash
REPOSITORY=/opt/OSAM_Hackathon
cd $REPOSITORY
APP_NAME=OSAM_Hackathon
JAR_NAME=$(ls $REPOSITORY/build/libs/ | grep '.jar' | tail -n 1)
JAR_PATH=$REPOSITORY/build/libs/$JAR_NAME
CURRENT_PID=$(pgrep -f $APP_NAME)
if [ -z $CURRENT_PID ]
then
echo "> 종료할것 없음."
else
echo "> kill -9 $CURRENT_PID"
kill -15 $CURRENT_PID
sleep 5
fi
echo "> $JAR_PATH 배포"
nohup java -jar $JAR_PATH > /dev/null 2> /dev/null < /dev/null &