Skip to content

Commit

Permalink
ci/cd: loadbalancer-server 환경이 blue인지 판단하는 워크플로우 작성
Browse files Browse the repository at this point in the history
  • Loading branch information
Curry4182 committed Mar 20, 2024
1 parent 20723b1 commit 1923b75
Showing 1 changed file with 15 additions and 57 deletions.
72 changes: 15 additions & 57 deletions .github/workflows/CICD.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,62 +13,20 @@ permissions:
contents: read

jobs:
build-docker-image:
if: github.event.pull_request.merged
runs-on: ubuntu-latest
set-variable:
runs-on: [self-hosted, loadbalancer-server] # Self-hosted, 'loadbalancer-server' 라벨을 가진 서버에서 실행
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: Set YML
run: |
mkdir -p lime-api/src/main/resources
echo "${{ secrets.APPLICATION_YML }}" | base64 --decode > lime-api/src/main/resources/application.yml
echo "${{ secrets.APPLICATION_API_YML }}" | base64 --decode > lime-api/src/main/resources/application-api.yml
find lime-api/src
mkdir -p lime-domain/src/main/resources
echo "${{ secrets.APPLICATION_DOMAIN_YML }}" | base64 --decode > lime-domain/src/main/resources/application-domain.yml
find lime-domain/src
mkdir -p lime-infrastructure/src/main/resources
echo "${{ secrets.APPLICATION_INFRA_YML }}" | base64 --decode > lime-infrastructure/src/main/resources/application-infra.yml
find lime-infrastructure/src
- name: Build with Gradle
uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1
with:
arguments: clean bootJar

- name: docker image build
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/lime-image .

- name: docker login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: docker Hub push
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/lime-image

run-docker-image-on-server:
if: github.event.pull_request.merged
needs: build-docker-image
runs-on: [ self-hosted, lime-was-server ]

steps:
- name: docker pull
run: sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/lime-image

- name: docker stop container
run: sudo docker stop $(sudo docker ps -q) 2>/dev/null || true

- name: docker run new container
run: sudo docker run --name lime-image --rm -d -p 8080:8080 ${{ secrets.DOCKERHUB_USERNAME }}/lime-image

- name: delete old docker image
run: sudo docker system prune -f
- name: Checkout code
uses: actions/checkout@v2

- name: Check Blue Environment
id: check-blue
run: |
IS_BLUE_ENV=$(sh /usr/local/bin/scripts/is_blue_env.sh)
echo "IS_BLUE_ENV=$IS_BLUE_ENV" >> $GITHUB_ENV
shell: bash

- name: Print Environment
run: |
echo "IS_BLUE_ENV is ${{ env.IS_BLUE_ENV }}"

0 comments on commit 1923b75

Please sign in to comment.