-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
240 additions
and
108 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
name: Coduo Backend Test Server CD | ||
|
||
on: | ||
push: | ||
branches: [ "BE/test" ] | ||
|
||
jobs: | ||
build: | ||
environment: test | ||
runs-on: ubuntu-latest | ||
defaults: | ||
run: | ||
working-directory: ./backend | ||
steps: | ||
- name: checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: '17' | ||
distribution: 'corretto' | ||
|
||
- name: Setup Gradle | ||
uses: gradle/actions/setup-gradle@v3 | ||
with: | ||
cache-write-only: true | ||
|
||
- name: Grant Execute Permission For Gradlew | ||
run: chmod +x gradlew | ||
|
||
- name: Build with Gradle | ||
run: ./gradlew bootJar | ||
|
||
- name: Login to Docker Hub | ||
uses: docker/login-action@v2 | ||
with: | ||
username: ${{ secrets.DOCKER_HUB_ID }} | ||
password: ${{ secrets.DOCKER_HUB_PASSWORD }} | ||
|
||
- name: Image build and push | ||
run: | | ||
docker build --build-arg PROFILE=test --build-arg DEPENDENCY=build/dependency -t ${{ secrets.DOCKER_REPO_NAME }}/coduo_springboot-app:test-latest --platform linux/arm64 . | ||
docker push ${{ secrets.DOCKER_REPO_NAME }}/coduo_springboot-app:test-latest | ||
- name: Upload docker-compose yaml script to artifact | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: docker-compose | ||
path: ${{ github.workspace }}/backend/be_docker-compose.test.yml | ||
|
||
deploy: | ||
environment: test | ||
runs-on: coduo_ec2-dev | ||
needs: build | ||
defaults: | ||
run: | ||
working-directory: ./backend | ||
steps: | ||
- name: Set docker-compose YAML script to runner | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: docker-compose | ||
path: ${{ github.workspace }}/backend | ||
|
||
- name: Extract secrets as .be_env file | ||
run: | | ||
cat <<EOF > .be_env | ||
# Docker Hub info from Github Secrets | ||
DOCKER_REPO_NAME=${{ secrets.DOCKER_REPO_NAME }} | ||
# DB Configuration secrets info from Github Secrets | ||
MYSQL_DB_NAME=${{ secrets.MYSQL_DB_NAME }} | ||
MYSQL_TIME_ZONE=${{ secrets.MYSQL_TIME_ZONE }} | ||
DB_BINDING_PORT=${{ secrets.DB_BINDING_PORT }} | ||
DB_URL=${{ secrets.DB_URL }} | ||
DB_USERNAME=${{ secrets.DB_USERNAME }} | ||
DB_PASSWORD=${{ secrets.DB_PASSWORD }} | ||
DDL_AUTO=${{ secrets.DDL_AUTO }} | ||
# Server App | ||
SERVER_BINDING_PORT=${{ secrets.SERVER_BINDING_PORT }} | ||
EOF | ||
- name: Stop and remove existing containers | ||
run: | | ||
sudo docker compose -f be_docker-compose.test.yml down --rmi all | ||
- name: Deploy docker container | ||
run: | | ||
sudo docker compose --env-file .be_env -f be_docker-compose.test.yml up -d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
name: Coduo Backend Test Server CI | ||
|
||
on: | ||
pull_request: | ||
branches: [ "BE/test" ] | ||
|
||
jobs: | ||
build-and-test: | ||
runs-on: ubuntu-latest | ||
defaults: | ||
run: | ||
working-directory: ./backend | ||
steps: | ||
- name: checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: '17' | ||
distribution: 'corretto' | ||
|
||
- name: Setup Gradle | ||
uses: gradle/actions/setup-gradle@v3 | ||
with: | ||
cache-write-only: true | ||
|
||
- name: Set up Test MySQL | ||
uses: mirromutth/[email protected] | ||
with: | ||
host port: ${{ secrets.TEST_DB_PORT }} | ||
container port: ${{ secrets.TEST_DB_PORT }} | ||
mysql database: ${{ secrets.TEST_DB_NAME }} | ||
mysql root password: ${{ secrets.TEST_DB_PASSWORD }} | ||
|
||
- name: Make test application.yml | ||
run: | | ||
rm -rf ./src/main/resources/application.yml | ||
touch ./src/main/resources/application.yml | ||
echo ${{ secrets.BE_TEST_YML }} | base64 --decode > ./src/main/resources/application.yml | ||
shell: bash | ||
|
||
- name: Grant Execute Permission For Gradlew | ||
run: chmod +x gradlew | ||
|
||
- name: Build with Gradle | ||
run: ./gradlew bootJar | ||
|
||
- name: Running Test Code | ||
run: ./gradlew --info test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,8 @@ | ||
FROM amazoncorretto:17 | ||
|
||
ARG JAR_FILE=build/libs/coduo-0.0.1-SNAPSHOT.jar | ||
COPY ${JAR_FILE} /coduo-app.jar | ||
ENTRYPOINT ["java", "-jar", "/coduo-app.jar"] | ||
|
||
ARG PROFILE | ||
ENV PROFILE_ENV=${PROFILE} | ||
ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=${PROFILE_ENV}", "/coduo-app.jar"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
services: | ||
mysql: | ||
container_name: coduo_mysql | ||
image: mysql:8.0 | ||
restart: unless-stopped | ||
ports: | ||
- ${DB_BINDING_PORT} | ||
environment: | ||
MYSQL_DATABASE: ${MYSQL_DB_NAME} | ||
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} | ||
TZ: ${MYSQL_TIME_ZONE} | ||
volumes: | ||
- ./docker-data/db/mysql/conf.d:/etc/mysql/conf.d | ||
- ./docker-data/db/mysql/data:/var/lib/mysql | ||
- ./docker-data/db/mysql/init:/docker_entrypoint-initdb.d | ||
command: | ||
- '--character-set-server=utf8mb4' | ||
- '--collation-server=utf8mb4_0900_ai_ci' | ||
networks: | ||
- coduo_net | ||
|
||
springboot: | ||
container_name: coduo_springboot-app | ||
image: ${DOCKER_REPO_NAME}/springboot-app | ||
platform: linux/arm64 | ||
ports: | ||
- ${SERVER_BINDING_PORT} | ||
environment: | ||
SPRING_DATASOURCE_URL: ${DB_URL} | ||
SPRING_DATASOURCE_USERNAME: ${DB_USERNAME} | ||
SPRING_DATASOURCE_PASSWORD: ${DB_PASSWORD} | ||
SPRING_JPA_HIBERNATE_DDL-AUTO: ${DDL_AUTO} | ||
restart: on-failure | ||
networks: | ||
- coduo_net | ||
depends_on: | ||
- mysql | ||
|
||
networks: | ||
coduo_net: | ||
external: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
spring: | ||
config: | ||
activate: | ||
on-profile: local | ||
|
||
datasource: | ||
url: jdbc:h2:mem:database | ||
|
||
jpa: | ||
database: h2 | ||
database-platform: org.hibernate.dialect.H2Dialect | ||
properties: | ||
hibernate: | ||
storage_engine: innodb | ||
format_sql: true | ||
use_sql_comments: true | ||
hibernate: | ||
ddl-auto: create | ||
open-in-view: false | ||
show_sql: true | ||
|
||
h2: | ||
console: | ||
enabled: true | ||
|
||
springdoc: | ||
swagger-ui: | ||
persist-authorization: true | ||
default-models-expand-depth: -1 | ||
path: /api-docs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
spring: | ||
config: | ||
activate: | ||
on-profile: test | ||
|
||
datasource: | ||
driver-class-name: com.mysql.cj.jdbc.Driver | ||
url: ${DB_URL} | ||
username: ${DB_USERNAME} | ||
password: ${DB_PASSWORD} | ||
|
||
jpa: | ||
database: mysql | ||
hibernate: | ||
ddl-auto: ${DDL_AUTO} | ||
show-sql: true | ||
database-platform: org.hibernate.dialect.MySQLDialect | ||
|
||
springdoc: | ||
swagger-ui: | ||
persist-authorization: true | ||
default-models-expand-depth: -1 | ||
path: /api-docs |