Skip to content

Commit

Permalink
feat: workflow 볡ꡬ
Browse files Browse the repository at this point in the history
  • Loading branch information
3Juhwan committed Oct 7, 2024
1 parent 410c306 commit 3ec378f
Show file tree
Hide file tree
Showing 3 changed files with 193 additions and 0 deletions.
72 changes: 72 additions & 0 deletions .github/workflows/backend-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: backend-push

on:
push:
branches: [ "be-dev" ]

jobs:
build:
runs-on: ubuntu-latest

defaults:
run:
shell: bash
working-directory: ./server

permissions:
contents: read

steps:
- name: CheckOut
uses: actions/checkout@v4
with:
token: ${{secrets.CONFIG_SUBMODULE_TOKEN}}
submodules: true

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Test with Gradle Wrapper
run: ./gradlew clean build

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v3

- name: Build and push
run: |
docker buildx build --platform linux/arm64 -t \
${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_DEV }} --push .
deploy:
needs: build
runs-on: [ self-hosted, backend-dev ]
steps:
- name: Docker remove
run: |
CONTAINER_IDS=$(sudo docker ps -qa)
if [ -n "$CONTAINER_IDS" ]; then
sudo docker rm -f $CONTAINER_IDS
else
echo "No running containers found."
fi
- name: Docker Image pull
run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_DEV }}

- name: Docker run
run: sudo docker run -d -p 8080:8080 -e SPRING_PROFILES_ACTIVE=dev -v log-volume:/app/logs --name haengdong-backend ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_DEV }}
77 changes: 77 additions & 0 deletions .github/workflows/backend-prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: backend-push

on:
push:
branches: [ "main" ]
paths:
- 'server/**'

jobs:
build:
runs-on: ubuntu-latest

defaults:
run:
shell: bash
working-directory: ./server

permissions:
contents: read

steps:
- name: CheckOut
uses: actions/checkout@v4
with:
token: ${{secrets.CONFIG_SUBMODULE_TOKEN}}
submodules: true

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Test with Gradle Wrapper
run: ./gradlew clean build

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v3

- name: Build and push
run: |
docker buildx build --platform linux/arm64 -t \
${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_PROD }} --push .
deploy:
needs: build
strategy:
matrix:
runner: [ prod-1, prod-2 ]
runs-on: [ self-hosted, ${{ matrix.runner }} ]
steps:
- name: Docker remove
run: |
CONTAINER_IDS=$(sudo docker ps -qa)
if [ -n "$CONTAINER_IDS" ]; then
sudo docker rm -f $CONTAINER_IDS
else
echo "No running containers found."
fi
- name: Docker Image pull
run: sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_PROD }}

- name: Docker run
run: sudo docker run -d -p 8080:8080 -e SPRING_PROFILES_ACTIVE=prod -v log-volume:/app/logs --name haengdong-backend ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_IMAGE_BE_PROD }}
44 changes: 44 additions & 0 deletions .github/workflows/backend-pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: backend-pull-request

on:
pull_request:
branches: [ "main", "be-dev" ]

jobs:
build:
runs-on: [ ubuntu-latest ]

defaults:
run:
working-directory: ./server

steps:
- name: CheckOut
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Test with Gradle Wrapper
run: ./gradlew clean build

- name: publish unit test results
uses: EnricoMi/publish-unit-test-result-action@v2
if: always()
with:
files: server/build/test-results/test/TEST-*.xml

- name: add comments to a pull request
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: server/build/test-results/test/TEST-*.xml

0 comments on commit 3ec378f

Please sign in to comment.