Skip to content

Impr: fixing run front end tests #30

Impr: fixing run front end tests

Impr: fixing run front end tests #30

Workflow file for this run

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: '14.x'
- name: Install dependencies
run: |
cd client
npm install
npm install -g @angular/cli@10
- name: Install Chrome
run: sudo apt-get install -y chromium-browser
- name: Run Linter
run: |
cd client
npm run lint || true
- 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 Client Server Artifact
uses: actions/download-artifact@v3
with:
name: frontend-artifact
path: client/dist
- 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
- name: Run Tests
run: |
cd client
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
deploy:
runs-on: ubuntu-latest
needs: test
env:
DOCKER_REPOSITORY: ${{ secrets.DOCKER_USERNAME }}/desofs2024_m1b_6
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: Create Docker tags
run: |
docker tag resource_server $DOCKER_REPOSITORY:resource_server_latest
docker tag authorization_server $DOCKER_REPOSITORY:authorization_server_latest
docker tag client $DOCKER_REPOSITORY:client_latest
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Push Docker images
run: |
docker push $DOCKER_REPOSITORY:resource_server_latest
docker push $DOCKER_REPOSITORY:authorization_server_latest
docker push $DOCKER_REPOSITORY:client_latest