-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
name: Java CI with Gradle | ||
|
||
# 동작 조건 설정 : main 브랜치에 push 혹은 pull request가 발생할 경우 동작한다. | ||
on: | ||
push: | ||
branches: [ "main" ] | ||
pull_request: | ||
branches: [ "main" ] | ||
|
||
env: | ||
SSH_KEY: | | ||
-----BEGIN OPENSSH PRIVATE KEY----- | ||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn | ||
NhAAAAAwEAAQAAAYEAu8kOHvDW0/Riv8ZAWgCpe4qtLaHuYIJfy7+7lv/kECCVAV2c6eVt | ||
26y2BcG4RW1BDM0bJkVBMdzn7ghoWZsiTiRNXGt9TddIK+AnZ5BS4SXHFz+S4QhzPnK+CQ | ||
ih7muVhEhnMXbG271laXWxnAQMJHoGfbZeaRAwPN3j108rsocd1IOMfYVEPx412RMgA7rt | ||
FKgPA4f5cHfau8fEZrOIzLEzo02UrI14vBM/SSIQLbAaj4Kod7wWwlNGO1K++QI66vZHIW | ||
Yyx987AEGWwLz5bzu3lbu0JFK2hjHvTJ39A3DJFOLndGJKKj6f/6bXHgM4hL01dVrbO8yN | ||
rFUlHj9hiYxcTL6KHguk77sXWXrsdb5mscQ6dLXBdtwoygDYxPzHeA+9WaY3FpjxrixWF/ | ||
kUkTEDHmDv7eX+XHuLLwPKv/xx23ttBjCq9lbI7ejwULFvr6IZu9XZunG4oOjNCbe5O+lr | ||
AzQ9NCX7VHsDUPIiJFKzWTUjhXETRcLmo7sTtAGRAAAFiI4+8LKOPvCyAAAAB3NzaC1yc2 | ||
EAAAGBALvJDh7w1tP0Yr/GQFoAqXuKrS2h7mCCX8u/u5b/5BAglQFdnOnlbdustgXBuEVt | ||
QQzNGyZFQTHc5+4IaFmbIk4kTVxrfU3XSCvgJ2eQUuElxxc/kuEIcz5yvgkIoe5rlYRIZz | ||
F2xtu9ZWl1sZwEDCR6Bn22XmkQMDzd49dPK7KHHdSDjH2FRD8eNdkTIAO67RSoDwOH+XB3 | ||
2rvHxGaziMyxM6NNlKyNeLwTP0kiEC2wGo+CqHe8FsJTRjtSvvkCOur2RyFmMsffOwBBls | ||
C8+W87t5W7tCRStoYx70yd/QNwyRTi53RiSio+n/+m1x4DOIS9NXVa2zvMjaxVJR4/YYmM | ||
XEy+ih4LpO+7F1l67HW+ZrHEOnS1wXbcKMoA2MT8x3gPvVmmNxaY8a4sVhf5FJExAx5g7+ | ||
3l/lx7iy8Dyr/8cdt7bQYwqvZWyO3o8FCxb6+iGbvV2bpxuKDozQm3uTvpawM0PTQl+1R7 | ||
A1DyIiRSs1k1I4VxE0XC5qO7E7QBkQAAAAMBAAEAAAGAaj2nxY2QnT4ImGM7iTASsxiUPd | ||
r9mJBqTkXdheKkTxN/+dPSsOniq4QdP0iITo8vXGS2VYKdDe7jMOKE1x1T3U3gjscpj16b | ||
MGeTI56dpU/QQbDwEmzLdqtIJKhDpTYs0zh7WZrPiwauV2oE4DXSANkgzwLciyhjgiwveW | ||
MLX+fd0pvSYjmBkQwwfu25ESMyeptSUzccwqqsj8zHqysr3FLs2hlMYgtwIUfqaB/jc1XM | ||
0SCk24kIf0zJ0UpRTWQapTZdV/NJ2fpnAEORZnaLbkqT2UerMJo9Dgmc6IdIJrGJgpq2t2 | ||
GoE6TyFMsu91CsvhgAf8X4DIu6fyTlTkQx6mwDtobQNmrz8CaCkJXVmoRXmEa2s+casB/M | ||
v7EuzfFmUZ9uPD0zrS59Nce3QPzdDUwjLdOk8YROfGj7XISmJ6KnXjDJ9jWdgvX5rC4zEg | ||
dm/EPSDmrba6Jgw9ijujmZETRF8dBXqPmp6AmhmQdIEaYlP4GnN9xGctX+Dtp/OOQZAAAA | ||
wDIWorxVXyaTrkDJTAsUOmpQ1gaikNp+6+yKp3kroJ13ns9TtHwNYXpuUmwHDCJveh1HIM | ||
/5Swo0jhHkgG3IVPcLfQb0uJkB17OLEFKR+WlDvXTS7Dx8/h0VZcXzAuR2jIiSOfwd5yyR | ||
T6EwjC7YLmLJ22SyFqarQwz9sk4a98WW6GYPjIz6jV1/nPFSF+By6+vdo6W9RF7W7KN/bg | ||
fpGsnuuDoJRMnZ7ydy1sP4VfQrh8Q0RfB+DffB+raNOSAFGwAAAMEA3OE7UckwIJhWXyot | ||
+cRRrfh+e1w7iwt2rp5U/QqrxU42OCoGaAei9KYJJRCTEBCAweRmZJpzWmbEI01/SO7J75 | ||
QKUKLQph39rLMe20CCht+bzBKWM4xYV7j7Xs4PgYeh4mPOwVAUqw2LdqyDggdrWcfAbi/D | ||
grdflhLLEbluwJfeneSo2blEy9HVo6pckXTlBa/K0yJlJcsFWlbptMyPgZtZoQ7chvsw4Q | ||
WNnmdgPR0iQcS14Ftfn4KLx5w8M/NPAAAAwQDZpLxlExqd240Ty+7folLoiNh/hnMrh867 | ||
n4Nfojng5pLHQwpEQ1kHd8SQAth0FHdIaeEWXlZhmXBBfbWUvB6XX9tu4f+4Aa/3sAghfG | ||
sQH0A9Umx2iKi+Z2Z626LI3MB74O5Or0GuLy6Q1duOeQAEWiL70RnS+UNl0iBdXOZb7vIL | ||
pEUq/eXkkV+zheeF4rV5JBKayS155CkB4CUf1CYTo17LZObDjkbQgVZ4qd/uQ5cZy1N+lu | ||
v0KD0cKVmHBR8AAAATcHN3bG92ZTM4QGdtYWlsLmNvbQ== | ||
-----END OPENSSH PRIVATE KEY----- | ||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
# Spring Boot 애플리케이션을 빌드하여 도커허브에 푸시하는 과정 | ||
build-docker-image: | ||
runs-on: ubuntu-latest | ||
steps: | ||
# 기본적인 체크아웃 | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
# 자바 버전 설정 | ||
- name: Set up JDK 11 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: '11' | ||
distribution: 'temurin' | ||
|
||
# gradlew에 실행 권한 부여 | ||
- name: Executable to /gradlew | ||
run: chmod +x ./gradlew | ||
|
||
# 프로젝트 빌드 | ||
- name: Project Build | ||
run: ./gradlew clean bootwar | ||
|
||
# 자바 Spring Boot 빌드 | ||
# - name: Build with Gradle | ||
# uses: gradle/gradle-build-action@bd5760595778326ba7f1441bcf7e88b49de61a25 # v2.6.0 | ||
# with: | ||
# arguments: clean build | ||
|
||
# 3. Docker 이미지 빌드 | ||
- name: docker image build | ||
run: docker build -t pswlove38/github-actions-demo . | ||
|
||
# 4. DockerHub 로그인 | ||
- name: docker login | ||
uses: docker/login-action@v2 | ||
with: | ||
username: pswlove38 | ||
password: a77981010! | ||
|
||
# 5. Docker Hub 이미지 푸시 | ||
- name: docker Hub push | ||
run: docker push pswlove38/github-actions-demo | ||
|
||
# 6. GCP에 SSH로 접속 | ||
- name: executing remote ssh commands using ssh key | ||
uses: appleboy/ssh-action@master | ||
with: | ||
host: 35.212.196.164 | ||
username: pswlove38 | ||
key: ${{ env.SSH_KEY }} | ||
port: 22 | ||
script: | | ||
sudo docker rm -f $(docker ps -qa) | ||
sudo docker pull pswlove38/github-actions-demo | ||
sudo docker pull pswlove38/change-nginx | ||
docker-compose up -d | ||
docker image prune -f |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
#Tue Nov 21 13:37:44 KST 2023 | ||
gradle.version=8.3 |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# java 11 기반 | ||
FROM openjdk:11 | ||
# WAR_FILE에 파일 경로 설정 | ||
ARG WAR_FILE=build/libs/*.war | ||
# 8080포트 노출 | ||
EXPOSE 8080 | ||
# WAR_FILE 경로의 파일을 컨테이너의 web.war로 이동 | ||
COPY ${WAR_FILE} web.war | ||
# 컨테이너에서 war 파일 실행 | ||
ENTRYPOINT ["java","-jar","/web.war"] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# Getting Started | ||
|
||
### Reference Documentation | ||
For further reference, please consider the following sections: | ||
|
||
* [Official Gradle documentation](https://docs.gradle.org) | ||
* [Spring Boot Gradle Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.7.16/gradle-plugin/reference/html/) | ||
* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.7.16/gradle-plugin/reference/html/#build-image) | ||
* [MyBatis Framework](https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/) | ||
* [Spring Web](https://docs.spring.io/spring-boot/docs/2.7.16/reference/htmlsingle/index.html#web) | ||
* [JDBC API](https://docs.spring.io/spring-boot/docs/2.7.16/reference/htmlsingle/index.html#data.sql) | ||
* [Thymeleaf](https://docs.spring.io/spring-boot/docs/2.7.16/reference/htmlsingle/index.html#web.servlet.spring-mvc.template-engines) | ||
* [Spring Boot DevTools](https://docs.spring.io/spring-boot/docs/2.7.16/reference/htmlsingle/index.html#using.devtools) | ||
* [Spring Configuration Processor](https://docs.spring.io/spring-boot/docs/2.7.16/reference/htmlsingle/index.html#appendix.configuration-metadata.annotation-processor) | ||
|
||
### Guides | ||
The following guides illustrate how to use some features concretely: | ||
|
||
* [MyBatis Quick Start](https://github.com/mybatis/spring-boot-starter/wiki/Quick-Start) | ||
* [Accessing data with MySQL](https://spring.io/guides/gs/accessing-data-mysql/) | ||
* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/) | ||
* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/) | ||
* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/) | ||
* [Accessing Relational Data using JDBC with Spring](https://spring.io/guides/gs/relational-data-access/) | ||
* [Managing Transactions](https://spring.io/guides/gs/managing-transactions/) | ||
* [Handling Form Submission](https://spring.io/guides/gs/handling-form-submission/) | ||
|
||
### Additional Links | ||
These additional references should also help you: | ||
|
||
* [Gradle Build Scans – insights for your project's build](https://scans.gradle.com#gradle) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. | ||
|
||
# dependencies | ||
/node_modules | ||
/.pnp | ||
.pnp.js | ||
|
||
# testing | ||
/coverage | ||
|
||
# production | ||
/build | ||
|
||
# misc | ||
.DS_Store | ||
.env.local | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local | ||
|
||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* |