Files
qqq-frontend-material-dashb…/.circleci/config.yml

131 lines
3.7 KiB
YAML

version: 2.1
orbs:
node: circleci/node@5.1.0
browser-tools: circleci/browser-tools@1.4.7
executors:
java17:
docker:
- image: 'cimg/openjdk:17.0.9'
commands:
install_java17:
steps:
- run:
name: Install Java 17
command: |
sudo apt-get update
sudo apt install -y openjdk-17-jdk
sudo rm /etc/alternatives/java
sudo ln -s /usr/lib/jvm/java-17-openjdk-amd64/bin/java /etc/alternatives/java
install_npm:
steps:
- checkout
- node/install:
node-version: '16.13'
- node/install-packages
mvn_verify:
steps:
- browser-tools/install-chrome
- browser-tools/install-chromedriver
- run:
name: install dockerize
command: wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz && sudo tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
environment:
DOCKERIZE_VERSION: v0.3.0
- run:
name: Install Browser dependencies
command: |
sudo apt update
sudo apt install -y libnss3-dev libgdk-pixbuf2.0-dev libgtk-3-dev libxss-dev
- restore_cache:
keys:
- v1-dependencies-{{ checksum "pom.xml" }}
- run:
name: Run react app and mvn verify
command: |
echo "HTTPS=true" >> ./.env
npm run build
export REACT_APP_PROXY_LOCALHOST_PORT=8001; export PORT=3001; npm run start &
dockerize -wait tcp://localhost:3001 -timeout 3m
export QQQ_SELENIUM_HEADLESS=true; mvn -s .circleci/mvn-settings.xml verify
- run:
name: Save test results
command: |
mkdir -p ~/test-results/junit/
find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} ~/test-results/junit/ \;
when: always
- store_test_results:
path: ~/test-results
- save_cache:
paths:
- ~/.m2
key: v1-dependencies-{{ checksum "pom.xml" }}
- store_artifacts:
path: /tmp/QSeleniumScreenshots
mvn_deploy:
steps:
- checkout
- run:
name: Adjust pom version
command: |
.circleci/adjust-pom-version.sh
- restore_cache:
keys:
- v1-dependencies-{{ checksum "pom.xml" }}
- run:
name: Run NPM Build
command: |
npm run build
- run:
name: Build Maven Jar and Deploy
command: |
rm -rf src/main/resources/material-dashboard
mkdir -p src/main/resources/material-dashboard
cp -r build/* src/main/resources/material-dashboard
mvn -s .circleci/mvn-settings.xml deploy -DskipTests
- save_cache:
paths:
- ~/.m2
key: v1-dependencies-{{ checksum "pom.xml" }}
jobs:
mvn_test:
executor: java17
steps:
- install_npm
- mvn_verify
mvn_deploy:
executor: java17
steps:
- install_npm
- mvn_verify
- mvn_deploy
workflows:
test:
jobs:
- mvn_test:
context: [ qqq-maven-registry-credentials, kingsrook-slack, build-qqq-sample-app ]
filters:
branches:
ignore: /(main|integration.*)/
tags:
ignore: /(version|snapshot)-.*/
deploy:
jobs:
- mvn_deploy:
context: [ qqq-maven-registry-credentials, kingsrook-slack, build-qqq-sample-app ]
filters:
branches:
only: /(main|integration.*)/
tags:
only: /(version|snapshot)-.*/