Skip to content

inspire12 run Deployment #20

inspire12 run Deployment

inspire12 run Deployment #20

name: GitHub Actions Deployment
run-name: ${{ github.actor }} run Deployment
on:
push:
branches: develop
pull_request:
branches: develop
jobs:
build:
runs-on: ubuntu:latest
steps:
- uses: actions/checkout@v2
- name: set up jdk 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
- name: Build with Maven
run: mvn -B package --file pom.xml -DskipTests=true
- name: Get Current Time
uses: 1466587594/get-current-time@v2
id: current-time
with:
format: YYYY-MM-DDTHH:mm:ss
utcOffset: "+09:00" # 기준이 UTC이기 때문에 한국시간인 KST를 맞추기 위해 +9시간 추가
- name: Print Current Time
run: echo "Current Time=${{steps.current-time.outputs.formattedTime}}" # current-time 에서 지정한 포맷대로 현재 시간 출력
shell: bash
- name: Cache Maven packages
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: inspire12/inspire12-api:latest
- name: Image digest
run: echo $
deploy:
needs: build
name: Deploy
runs-on: [ self-hosted, label-development ]
steps:
- name: Login to ghcr
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.CR_PAT }}
- name: Docker run
run: |
docker ps -q --filter "name=cat" | grep -q . && docker stop cat && docker rm -fv cat
docker run -d -p 8000:8000 --name cicd --restart always ${{ env.DOCKER_IMAGE }}:${{ env.VERSION }}