From 436bdf66ec25f9d2fa47f40705e89d1ba1ac767f Mon Sep 17 00:00:00 2001 From: jaemin <sonjm3518@dsm.hs.kr> Date: Sat, 28 Jan 2023 14:51:45 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=E2=9A=B0=EF=B8=8F=20::=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20=ED=81=B4=EB=9E=98=EC=8A=A4=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/CD.yml | 53 ---------------------------------------- 1 file changed, 53 deletions(-) delete mode 100644 .github/workflows/CD.yml diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml deleted file mode 100644 index 17af657..0000000 --- a/.github/workflows/CD.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: CD - -on: - push: - branches: - - main - - "hotfix/**" - - "feature/**" - - "release/**" - -jobs: - build: - environment: prod - runs-on: ubuntu-latest - strategy: - matrix: - java-version: [ 11 ] - outputs: - version: ${{ steps.get_version.outputs.BRANCH_NAME }} - steps: - - uses: actions/checkout@v2 - - - name: Set up Java - uses: actions/setup-java@v2 - with: - java-version: ${{ matrix.java-version }} - distribution: 'zulu' - - - name: Gradle Build - uses: gradle/gradle-build-action@v2 - with: - arguments: | - build - --no-daemon - - name: Login to Github Container Registry - uses: docker/login-action@v1 - with: - registry: ghcr.io - username: ${{ secrets.GHCR_USER }} - password: ${{ secrets.GHCR_TOKEN }} - - - name: Get branch name - run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr /# -)" >> $GITHUB_ENV - - - name: Build and push to Github Container Registry - uses: docker/build-push-action@v2 - with: - context: . - file: ./Dockerfile - push: true - tags: | - ghcr.io/team-xquare/v1-service-dms:latest - ghcr.io/team-xquare/v1-service-dms:${{ env.BRANCH_NAME }} \ No newline at end of file From 80c16175e8b6012047d719a00b6b08265d6b84ec Mon Sep 17 00:00:00 2001 From: jaemin <sonjm3518@dsm.hs.kr> Date: Sat, 28 Jan 2023 14:51:55 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=93=91=20::=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/CI.yaml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/CI.yaml diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml new file mode 100644 index 0000000..2ce447a --- /dev/null +++ b/.github/workflows/CI.yaml @@ -0,0 +1,29 @@ +name: v1-service-dms - CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: SetUp JDK 17 + uses: actions/setup-java@v2 + with: + java-version: "17" + distribution: 'adopt' + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Gradle Test + uses: gradle/gradle-build-action@v2 + with: + arguments: test \ No newline at end of file From 4f00f9501a4e843ff60a39e5fd97153c360f9ca2 Mon Sep 17 00:00:00 2001 From: jaemin <sonjm3518@dsm.hs.kr> Date: Sat, 28 Jan 2023 15:18:54 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20::=20java=20version=20?= =?UTF-8?q?11=20=E2=86=92=2017?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/prod-build.yaml | 99 ++++++++++++++++--------------- .github/workflows/stag-build.yaml | 91 ++++++++++++++-------------- 2 files changed, 96 insertions(+), 94 deletions(-) diff --git a/.github/workflows/prod-build.yaml b/.github/workflows/prod-build.yaml index 773c896..bd1e783 100644 --- a/.github/workflows/prod-build.yaml +++ b/.github/workflows/prod-build.yaml @@ -1,4 +1,4 @@ -name: Build for Production +name: v1-service-dms - CD(prod) on: push: tags: @@ -10,60 +10,63 @@ env: jobs: build: + environment: prod runs-on: ubuntu-latest strategy: matrix: - java-version: [ 11 ] - - steps: - - name: Check Out The Repository - uses: actions/checkout@v3 - - - name: Set up Java - uses: actions/setup-java@v2 - with: - java-version: ${{ matrix.java-version }} - distribution: 'zulu' + java-version: [ 17 ] + outputs: + version: ${{ steps.get_version.outputs.BRANCH_NAME }} - - name: Get the version - id: get_version - run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3) + steps: + - name: Check Out The Repository + uses: actions/checkout@v3 - - name: Gradle Build - uses: gradle/gradle-build-action@v2 - with: - arguments: | - build - --no-daemon + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java-version }} + distribution: 'zulu' - - name: Login to ECR - id: ecr - uses: elgohr/ecr-login-action@master - with: - access_key: ${{ secrets.AWS_ACCESS_KEY }} - secret_access_key: ${{ secrets.AWS_SECRET_KEY }} - region: ${{ secrets.AWS_REGION }} + - name: Get the version + id: get_version + run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3) - - name: Publish to Registry - uses: elgohr/Publish-Docker-Github-Action@v5 - with: - name: ${{env.SERVICE_NAME}}-${{env.SERVICE_TYPE}} - username: ${{ steps.ecr.outputs.username }} - password: ${{ steps.ecr.outputs.password }} - registry: ${{ steps.ecr.outputs.registry }} - tags: ${{ steps.get_version.outputs.VERSION }} - buildargs: | - PROFILE=prod - CLOUD_CONFIG_USERNAME=${{ secrets.CLOUD_CONFIG_USERNAME }} - CLOUD_CONFIG_PASSWORD=${{ secrets.CLOUD_CONFIG_PASSWORD }} + - name: Gradle Build + uses: gradle/gradle-build-action@v2 + with: + arguments: | + build + --no-daemon + - name: Login to ECR + id: ecr + uses: elgohr/ecr-login-action@master + with: + access_key: ${{ secrets.AWS_ACCESS_KEY }} + secret_access_key: ${{ secrets.AWS_SECRET_KEY }} + region: ${{ secrets.AWS_REGION }} - - name: Repository Dispatch - uses: peter-evans/repository-dispatch@v1 - with: - token: ${{ secrets.GITOPS_DEPLOY_PRODUCTION_TOKEN }} - repository: team-xquare/xquare-gitops-repo-production - event-type: update_image - client-payload: '{"ref": "${{ github.ref }}", + - name: Publish to Registry + uses: elgohr/Publish-Docker-Github-Action@v5 + with: + name: ${{env.SERVICE_NAME}}-${{env.SERVICE_TYPE}} + username: ${{ steps.ecr.outputs.username }} + password: ${{ steps.ecr.outputs.password }} + registry: ${{ steps.ecr.outputs.registry }} + tags: ${{ steps.get_version.outputs.VERSION }} + buildargs: | + PROFILE=prod + CLOUD_CONFIG_USERNAME=${{ secrets.CLOUD_CONFIG_USERNAME }} + CLOUD_CONFIG_PASSWORD=${{ secrets.CLOUD_CONFIG_PASSWORD }} + - name: Repository Dispatch + uses: peter-evans/repository-dispatch@v1 + with: + token: ${{ secrets.GITOPS_DEPLOY_PRODUCTION_TOKEN }} + repository: team-xquare/xquare-gitops-repo-production + event-type: update_image + client-payload: '{ + "ref": "${{ github.ref }}", "version": "${{ steps.get_version.outputs.VERSION }}", "service_name": "${{env.SERVICE_NAME}}", - "service_type": "${{env.SERVICE_TYPE}}"}' + "service_type": "${{env.SERVICE_TYPE}}" + }' \ No newline at end of file diff --git a/.github/workflows/stag-build.yaml b/.github/workflows/stag-build.yaml index e8b265e..d7909c9 100644 --- a/.github/workflows/stag-build.yaml +++ b/.github/workflows/stag-build.yaml @@ -1,4 +1,4 @@ -name: Build for Stage +name: v1-service-dms - CD(stag) on: push: branches: @@ -10,58 +10,57 @@ env: jobs: build: + environment: stag runs-on: ubuntu-latest strategy: matrix: - java-version: [ 11 ] + java-version: [ 17 ] outputs: - version: ${{ steps.get_version.outputs.BRANCH_NAME }} - - steps: - - name: Check Out The Repository - uses: actions/checkout@v3 - - - name: Set up Java - uses: actions/setup-java@v2 - with: - java-version: ${{ matrix.java-version }} - distribution: 'zulu' + version: ${{ steps.get_version.outputs.BRANCH_NAME }} - - name: Gradle Build - uses: gradle/gradle-build-action@v2 - with: - arguments: | - build - --no-daemon + steps: + - name: Check Out The Repository + uses: actions/checkout@v3 - - name: Login to ECR - id: ecr - uses: elgohr/ecr-login-action@master - with: - access_key: ${{ secrets.AWS_ACCESS_KEY }} - secret_access_key: ${{ secrets.AWS_SECRET_KEY }} - region: ${{ secrets.AWS_REGION }} + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java-version }} + distribution: 'zulu' - - name: Publish to Registry - uses: elgohr/Publish-Docker-Github-Action@v5 - with: - name: ${{env.SERVICE_NAME}}-${{env.SERVICE_TYPE}} - username: ${{ steps.ecr.outputs.username }} - password: ${{ steps.ecr.outputs.password }} - registry: ${{ steps.ecr.outputs.registry }} - tags: ${{ github.sha }} - buildargs: | - PROFILE=stag - CLOUD_CONFIG_USERNAME=${{ secrets.CLOUD_CONFIG_USERNAME }} - CLOUD_CONFIG_PASSWORD=${{ secrets.CLOUD_CONFIG_PASSWORD }} + - name: Gradle Build + uses: gradle/gradle-build-action@v2 + with: + arguments: | + build + --no-daemon + - name: Login to ECR + id: ecr + uses: elgohr/ecr-login-action@master + with: + access_key: ${{ secrets.AWS_ACCESS_KEY }} + secret_access_key: ${{ secrets.AWS_SECRET_KEY }} + region: ${{ secrets.AWS_REGION }} - - name: Repository Dispatch - uses: peter-evans/repository-dispatch@v1 - with: - token: ${{ secrets.GITOPS_DEPLOY_STAGE_TOKEN }} - repository: team-xquare/xquare-gitops-repo-staging - event-type: update_image - client-payload: '{"ref": "${{ github.ref }}", + - name: Publish to Registry + uses: elgohr/Publish-Docker-Github-Action@v5 + with: + name: ${{env.SERVICE_NAME}}-${{env.SERVICE_TYPE}} + username: ${{ steps.ecr.outputs.username }} + password: ${{ steps.ecr.outputs.password }} + registry: ${{ steps.ecr.outputs.registry }} + tags: ${{ github.sha }} + buildargs: | + PROFILE=stag + CLOUD_CONFIG_USERNAME=${{ secrets.CLOUD_CONFIG_USERNAME }} + CLOUD_CONFIG_PASSWORD=${{ secrets.CLOUD_CONFIG_PASSWORD }} + - name: Repository Dispatch + uses: peter-evans/repository-dispatch@v1 + with: + token: ${{ secrets.GITOPS_DEPLOY_STAGE_TOKEN }} + repository: team-xquare/xquare-gitops-repo-staging + event-type: update_image + client-payload: '{"ref": "${{ github.ref }}", "version": "${{ github.sha }}", "service_name": "${{env.SERVICE_NAME}}", - "service_type": "${{env.SERVICE_TYPE}}" }' + "service_type": "${{env.SERVICE_TYPE}}" }' \ No newline at end of file From 2699391e6d7ab6c8481d5a8e84c6974b7af8810c Mon Sep 17 00:00:00 2001 From: jaemin <sonjm3518@dsm.hs.kr> Date: Sat, 28 Jan 2023 15:34:05 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20::=20cloud=20config=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.yml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 2ca38e5..22f36ab 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,3 +1,8 @@ +server: + shutdown: graceful + servlet: + context-path: /dms + spring: application: name: v1-dms-service @@ -10,17 +15,18 @@ spring: username: ${CLOUD_CONFIG_USERNAME} password: ${CLOUD_CONFIG_PASSWORD} + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: ${db.url} + username: ${db.username} + password: ${db.password} + jpa: database: mysql database-platform: org.hibernate.dialect.MySQL5InnoDBDialect hibernate: - ddl-auto: none - - datasource: - url: ${db.url} - driver-class-name: com.mysql.cj.jdbc.Driver - password: ${db.password} - username: ${db.username} + ddl-auto: validate + open-in-view: false jackson: property-naming-strategy: SNAKE_CASE @@ -28,11 +34,6 @@ spring: lifecycle: timeout-per-shutdown-phase: 20s -server: - servlet: - context-path: /dms - shutdown: graceful - auth: id: ${xquare.admin.id} pw: ${xquare.admin.pw} From abe9e0bce67a13437e8c1cdaf645595417e3133a Mon Sep 17 00:00:00 2001 From: jaemin <sonjm3518@dsm.hs.kr> Date: Sat, 28 Jan 2023 15:34:26 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20::=20hasAnyAuthority?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xquare/dms/global/security/SecurityConfig.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/app/xquare/dms/global/security/SecurityConfig.java b/src/main/java/app/xquare/dms/global/security/SecurityConfig.java index 0e8f72e..4319d38 100644 --- a/src/main/java/app/xquare/dms/global/security/SecurityConfig.java +++ b/src/main/java/app/xquare/dms/global/security/SecurityConfig.java @@ -28,13 +28,13 @@ protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() - .antMatchers(HttpMethod.GET, "/dms/notices").hasRole(DORMITORY) - .antMatchers(HttpMethod.POST, "/dms/notices/{notice-id}").hasRole(DORMITORY) - .antMatchers(HttpMethod.PUT, "/dms/notices/{notice-id}").hasRole(DORMITORY) - .antMatchers(HttpMethod.DELETE, "/dms/notices/{notice-id}").hasRole(DORMITORY) + .antMatchers(HttpMethod.GET, "/dms/notices").hasAnyRole(DORMITORY) + .antMatchers(HttpMethod.POST, "/dms/notices/{notice-id}").hasAnyRole(DORMITORY) + .antMatchers(HttpMethod.PUT, "/dms/notices/{notice-id}").hasAnyRole(DORMITORY) + .antMatchers(HttpMethod.DELETE, "/dms/notices/{notice-id}").hasAnyRole(DORMITORY) - .antMatchers(HttpMethod.GET, "/dms/stay").hasRole(DORMITORY) - .antMatchers(HttpMethod.GET, "/dms/excel/stay").hasRole(DORMITORY) + .antMatchers(HttpMethod.GET, "/dms/stay").hasAnyRole(DORMITORY) + .antMatchers(HttpMethod.GET, "/dms/excel/stay").hasAnyRole(DORMITORY) .anyRequest().authenticated(); http