From 6067a7402f33d4bdc451ab15b04e37e6af3d026d Mon Sep 17 00:00:00 2001 From: lucero garcia Date: Fri, 3 Jan 2025 11:52:56 -0600 Subject: [PATCH 01/10] Add workflow for frontend --- .github/workflows/CI_frontend.yml | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/workflows/CI_frontend.yml diff --git a/.github/workflows/CI_frontend.yml b/.github/workflows/CI_frontend.yml new file mode 100644 index 0000000..6b3e493 --- /dev/null +++ b/.github/workflows/CI_frontend.yml @@ -0,0 +1,39 @@ +# worflow for building the front end + +name: "React frotend CI" # the name of the job when ran + +# events that will trigger this workflow to run +on: + push: + branches: [ "main", "develop"] + pull_request: + branches: [ "main", "develop"] + + +# run in parallel by default +# can be multiple jobs +jobs: + build: # first job + runs-on: ubuntu-latest # the "worker node" where it's going to be build + defaults: # default settings that will apply to all steps in the job + run: + working-directory: ./frontend + strategy: + matrix: + node-version: [22.x] # specify a version, will take the latest otherwise + steps: + - name: Check out code + uses: actions/checkout@v4.1.7 # action + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4.0.3 # action + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + cache-dependency-path: './frontend/package-lock.json' + + - name: Run npm clean install + run: npm ci + + # can have or not a name + - run: npm run build --if-present From 49d477a5d563a2670ccb4e4bcc13493a4b03fcf1 Mon Sep 17 00:00:00 2001 From: lucero garcia Date: Fri, 3 Jan 2025 11:56:59 -0600 Subject: [PATCH 02/10] Add paths --- .github/workflows/CI_frontend.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/CI_frontend.yml b/.github/workflows/CI_frontend.yml index 6b3e493..9be1261 100644 --- a/.github/workflows/CI_frontend.yml +++ b/.github/workflows/CI_frontend.yml @@ -6,8 +6,12 @@ name: "React frotend CI" # the name of the job when ran on: push: branches: [ "main", "develop"] + paths: # only trigger if changes in this paths + - 'frontend/**' pull_request: branches: [ "main", "develop"] + paths: + - 'frontend/**' # run in parallel by default From 689b89537af2297a6d37aa17fd59cd008e8c3870 Mon Sep 17 00:00:00 2001 From: lucero garcia Date: Fri, 3 Jan 2025 12:08:07 -0600 Subject: [PATCH 03/10] Add test job --- .github/workflows/CI_frontend.yml | 33 ++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/.github/workflows/CI_frontend.yml b/.github/workflows/CI_frontend.yml index 9be1261..744028a 100644 --- a/.github/workflows/CI_frontend.yml +++ b/.github/workflows/CI_frontend.yml @@ -12,27 +12,25 @@ on: branches: [ "main", "develop"] paths: - 'frontend/**' - +env: + node_version: 22.x +defaults: + run: + working-directory: ./frontend # run in parallel by default # can be multiple jobs jobs: build: # first job runs-on: ubuntu-latest # the "worker node" where it's going to be build - defaults: # default settings that will apply to all steps in the job - run: - working-directory: ./frontend - strategy: - matrix: - node-version: [22.x] # specify a version, will take the latest otherwise steps: - name: Check out code uses: actions/checkout@v4.1.7 # action - - name: Use Node.js ${{ matrix.node-version }} + - name: Use Node.js ${{ env.node_version }} uses: actions/setup-node@v4.0.3 # action with: - node-version: ${{ matrix.node-version }} + node-version: ${{ env.node_version }} cache: 'npm' cache-dependency-path: './frontend/package-lock.json' @@ -41,3 +39,20 @@ jobs: # can have or not a name - run: npm run build --if-present + + # test job + test: + needs: build + runs-on: ubuntu-latest # the "worker node" where it's going to be build + steps: + - name: Check out code + uses: actions/checkout@v4.1.7 # action + + - name: Use Node.js ${{ env.node_version }} + uses: actions/setup-node@v4.0.3 # action + with: + node-version: ${{ env.node_version }} + cache: 'npm' + cache-dependency-path: './frontend/package-lock.json' + - name: "Run test on frontend" + run: npm test \ No newline at end of file From f2067af070f563edde481cc9fd514ec57e15ef5e Mon Sep 17 00:00:00 2001 From: lucero garcia Date: Fri, 3 Jan 2025 12:09:18 -0600 Subject: [PATCH 04/10] Change for trigger workflow --- frontend/src/App.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/App.test.js b/frontend/src/App.test.js index 1f03afe..fbe1be8 100644 --- a/frontend/src/App.test.js +++ b/frontend/src/App.test.js @@ -1,7 +1,7 @@ import { render, screen } from '@testing-library/react'; import App from './App'; -test('renders learn react link', () => { +test('renders learn react link in app page', () => { render(); const linkElement = screen.getByText(/learn react/i); expect(linkElement).toBeInTheDocument(); From 1b3489ca48b6dc80856a8b5888877009da02326e Mon Sep 17 00:00:00 2001 From: lucero garcia Date: Fri, 3 Jan 2025 12:11:20 -0600 Subject: [PATCH 05/10] Install dependencies --- .github/workflows/CI_frontend.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/CI_frontend.yml b/.github/workflows/CI_frontend.yml index 744028a..14d0cbe 100644 --- a/.github/workflows/CI_frontend.yml +++ b/.github/workflows/CI_frontend.yml @@ -55,4 +55,5 @@ jobs: cache: 'npm' cache-dependency-path: './frontend/package-lock.json' - name: "Run test on frontend" - run: npm test \ No newline at end of file + run: npm ci + - run: npm test \ No newline at end of file From 8bd0e76603f678ab91f208f5dc7875682f128d04 Mon Sep 17 00:00:00 2001 From: lucero garcia Date: Fri, 3 Jan 2025 12:14:36 -0600 Subject: [PATCH 06/10] Add comment -- Working frontend CI --- .github/workflows/CI_frontend.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/CI_frontend.yml b/.github/workflows/CI_frontend.yml index 14d0cbe..43c1dd8 100644 --- a/.github/workflows/CI_frontend.yml +++ b/.github/workflows/CI_frontend.yml @@ -20,6 +20,7 @@ defaults: # run in parallel by default # can be multiple jobs +# cannot share machines between jobs so either steps or need to check out in each job jobs: build: # first job runs-on: ubuntu-latest # the "worker node" where it's going to be build From ac4ef9b81c6e51506c4eae862627eacde5c3a150 Mon Sep 17 00:00:00 2001 From: lucero garcia Date: Fri, 3 Jan 2025 12:23:25 -0600 Subject: [PATCH 07/10] Add workflows read me --- .github/workflows/Readme.MD | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .github/workflows/Readme.MD diff --git a/.github/workflows/Readme.MD b/.github/workflows/Readme.MD new file mode 100644 index 0000000..9372a7f --- /dev/null +++ b/.github/workflows/Readme.MD @@ -0,0 +1,5 @@ +# Actions used + +- [Java with gradle](https://docs.github.com/en/actions/use-cases-and-examples/building-and-testing/building-and-testing-java-with-gradle) + +- [Node](https://docs.github.com/en/actions/use-cases-and-examples/building-and-testing/building-and-testing-nodejs) \ No newline at end of file From f9756502e9c0a77e42796a97b471c97367c10645 Mon Sep 17 00:00:00 2001 From: lucero garcia Date: Fri, 3 Jan 2025 12:26:35 -0600 Subject: [PATCH 08/10] Add ci backend --- .github/workflows/CI_backend.yml | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/CI_backend.yml diff --git a/.github/workflows/CI_backend.yml b/.github/workflows/CI_backend.yml new file mode 100644 index 0000000..8e870c9 --- /dev/null +++ b/.github/workflows/CI_backend.yml @@ -0,0 +1,42 @@ +# worflow for building the front end + +name: "Java backend CI" # the name of the job when ran + +# events that will trigger this workflow to run +on: + push: + branches: [ "main", "develop"] + paths: # only trigger if changes in this paths + - 'backend/**' + pull_request: + branches: [ "main", "develop"] + paths: + - 'backend/**' + +env: + java_version: 17 + java_distribution: temurin +defaults: + run: + working-directory: ./backend +# run in parallel by default +# can be multiple jobs +# cannot share machines between jobs so either steps or need to check out in each job +jobs: + build: # first job + runs-on: ubuntu-latest # the "worker node" where it's going to be build + steps: + - name: Check out code + uses: actions/checkout@v4.1.7 # action + + - name: Set up jdk ${{ env.java_version }} + uses: actions/setup-java@v4 + with: + java-version: ${{ env.java_version }} + distribution: ${{ env.java_distribution }} + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 + + - name: Build with Gradle + run: ./gradlew build From f928e1c0ff3611dedab6660578e119ebffc446be Mon Sep 17 00:00:00 2001 From: lucero garcia Date: Fri, 3 Jan 2025 12:27:50 -0600 Subject: [PATCH 09/10] Add change to trigger backend workflow --- backend/HELP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/HELP.md b/backend/HELP.md index 97d9dcb..041a679 100644 --- a/backend/HELP.md +++ b/backend/HELP.md @@ -1,4 +1,4 @@ -# Getting Started +# Getting Started with Java and gradle ### Reference Documentation For further reference, please consider the following sections: From 404f3bddd5d57069087810b384e3b1d9101b1b41 Mon Sep 17 00:00:00 2001 From: lucero garcia Date: Fri, 3 Jan 2025 12:34:36 -0600 Subject: [PATCH 10/10] Change to controller --- .github/workflows/CI_backend.yml | 2 +- .../demo/containers/workshop/controllers/HelloController.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI_backend.yml b/.github/workflows/CI_backend.yml index 8e870c9..575dcd1 100644 --- a/.github/workflows/CI_backend.yml +++ b/.github/workflows/CI_backend.yml @@ -1,4 +1,4 @@ -# worflow for building the front end +# worflow for building the back end name: "Java backend CI" # the name of the job when ran diff --git a/backend/src/main/java/demo/containers/workshop/controllers/HelloController.java b/backend/src/main/java/demo/containers/workshop/controllers/HelloController.java index 770f8bf..e150717 100644 --- a/backend/src/main/java/demo/containers/workshop/controllers/HelloController.java +++ b/backend/src/main/java/demo/containers/workshop/controllers/HelloController.java @@ -8,7 +8,7 @@ public class HelloController { @GetMapping("/") public String index() { - return "Greetings from Spring Boot!"; + return "Greetings from Spring Boot!!"; } } \ No newline at end of file