Running frontend tests and creating test doc artifact #14
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
name: CI/CD Pipeline | |
on: | |
push: | |
branches: | |
- master | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up JDK 1.11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.11 | |
- name: Build Resource Server with Maven | |
run: mvn -B package --file resource_server/pom.xml | |
- name: Build Authorization Server With Maven | |
run: mvn -B package --file authorization_server/pom.xml | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '18.20.2' | |
- name: Install dependencies | |
run: | | |
cd client | |
npm install | |
- name: Build Frontend with Angular | |
run: | | |
cd client | |
export NODE_OPTIONS=--openssl-legacy-provider | |
npm run build --prod | |
- name: Upload Resource Server Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: resource-server-artifact | |
path: resource_server/target/*.jar | |
- name: Upload Authorization Server Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: authorization-server-artifact | |
path: authorization_server/target/*.jar | |
- name: Upload Frontend Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: frontend-artifact | |
path: client/dist/* | |
test: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up JDK 1.11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.11 | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '18.20.2' | |
- name: Install dependencies | |
run: | | |
cd client | |
npm install | |
- name: Run Linter | |
run: | | |
cd client | |
npm run lint || true | |
- name: Run Tests | |
run: npm run test -- --no-watch --no-progress --browsers=ChromeHeadlessCI | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v2 | |
with: | |
name: test-results | |
path: ./coverage | |
- name: Download Resource Server Artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: resource-server-artifact | |
path: resource_server/target | |
- name: Download Authorization Server Artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: authorization-server-artifact | |
path: authorization_server/target | |
- name: Run Tests for Resource Server | |
run: mvn -B test --file resource_server/pom.xml | |
- name: Run Tests for Authorization Server | |
run: mvn -B test --file authorization_server/pom.xml | |
deploy: | |
runs-on: ubuntu-latest | |
needs: test | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Download Resource Server Artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: resource-server-artifact | |
path: resource_server/target | |
- name: Download Authorization Server Artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: authorization-server-artifact | |
path: authorization_server/target | |
- name: Download Frontend Artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: frontend-artifact | |
path: client/dist | |
- name: Build Docker images | |
run: | | |
docker build -t resource_server resource_server/ | |
docker build -t authorization_server authorization_server/ | |
docker build -t client client/ | |
- name: Login to DockerHub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} |