Skip to content

Commit

Permalink
Merge pull request #6 from marinesnow34/main
Browse files Browse the repository at this point in the history
Config: workflow 작성
  • Loading branch information
marinesnow34 authored Nov 3, 2023
2 parents 9b11b6b + 3881514 commit b6f9be6
Show file tree
Hide file tree
Showing 4 changed files with 226 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/workflows/main_merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#추후에 메인서버 배포시에는 작성 예정
77 changes: 77 additions & 0 deletions .github/workflows/main_pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
ame: Main Server Pull-request

on:
pull_request:
branches: [ "main" ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check branch
run: |
echo "Head branch is: ${{ github.head_ref }}"
echo "Base branch is: ${{ github.base_ref }}"
if [[ "${{ github.head_ref }}" != "test" ]]; then
echo "test 브랜치가 아님"
exit 1
fi
- name: Checkout source code. # Repo checkout
uses: actions/checkout@v3

- name: Set application.properties from secrets
run: |
echo "${{ secrets.MAIN_APPLICATION_PROPERTIES }}" > src/main/resources/application.properties
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'corretto'

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

- name: Build with Gradle
run: ./gradlew clean build

after:
runs-on: ubuntu-latest
needs: build
if: always()
permissions:
contents: read
pull-requests: write
steps:
- name: Comment on failure and close PR
if: needs.build.result == 'failure'
uses: actions/github-script@v6
with:
github-token: ${{ github.token }}
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '빌드 실패'
});
github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
state: 'closed'
});
- name: Auto approve pull request
if: needs.build.result == 'success'
uses: actions/github-script@v6
with:
github-token: ${{ github.token }}
script: |
github.rest.pulls.createReview({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
event: 'APPROVE'
});
79 changes: 79 additions & 0 deletions .github/workflows/test_merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Test Server Merge
on:
push:
branches: [ "test" ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout source code. # Repo checkout
uses: actions/checkout@v3

- name: Set application.properties from secrets
run: |
echo "${{ secrets.TEST_APPLICATION_PROPERTIES }}" > src/main/resources/application.properties
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'corretto'

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

- name: Build with Gradle
run: ./gradlew clean build

- name: file copy
uses: actions/upload-artifact@v3
with:
name: build
path: build
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: file download
uses: actions/download-artifact@v3
with:
name: build
path: build
- name: Upload to Cloudflare
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CF_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: us-east-1
BUCKET_NAME: ${{ secrets.CF_BUCKET_NAME }}
ENDPOINT_URL: ${{ secrets.CF_ENDPOINT_URL }}
run: |
aws s3 sync build/libs/*SNAPSHOT.jar s3://$BUCKET_NAME/java/test_main.jar \
--endpoint-url $ENDPOINT_URL --delete --exact-timestamps
- name: SSH and deploy
uses: appleboy/[email protected]
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.PORT }}
timeout: 40s # 30초 기본
script: |
aws s3 sync s3://readyvery-dev-server/java/test_main.jar ./docker/java/test/test_main.jar \
--endpoint-url https://29c6e4b55b1ddb8d2b6e69df21141caa.r2.cloudflarestorage.com \
--delete --exact-timestamps
docker-compose build java-test
docker-compose up -d java-test
- name: Discordbot alert # 디스코드 알림
uses: sarisia/[email protected]
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
content: ${{ (github.actor == 'marinesnow34' && '<@392607023495118862>') ||
(github.actor == '1223v' && '<@368775981667844098>') ||
(github.actor == 'imi21123' && '<@999337351799128115>') ||
(github.actor == 'marina-yhm' && '<@946431150614794240>') ||
(github.actor == 'hhhhyelim' && '<@1076887091427946496>') }}
if: always()
69 changes: 69 additions & 0 deletions .github/workflows/test_pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Test Server Pull-request # Workflow 이름

on:
pull_request:
branches: [ "test" ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout source code. # Repo checkout
uses: actions/checkout@v3

- name: Set application.properties from secrets
run: |
echo "${{ secrets.TEST_APPLICATION_PROPERTIES }}" > src/main/resources/application.properties
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'corretto'

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

- name: Build with Gradle
run: ./gradlew clean build

after:
runs-on: ubuntu-latest
needs: build
if: always()
permissions:
contents: read
pull-requests: write
steps:
- name: Comment on failure and close PR
if: needs.build.result == 'failure'
uses: actions/github-script@v6
with:
github-token: ${{ github.token }}
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '빌드 실패'
});
github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
state: 'closed'
});
- name: Auto approve pull request
if: needs.build.result == 'success'
uses: actions/github-script@v6
with:
github-token: ${{ github.token }}
script: |
github.rest.pulls.createReview({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
event: 'APPROVE'
});

0 comments on commit b6f9be6

Please sign in to comment.