mirror of
https://github.com/Kingsrook/qqq-frontend-material-dashboard.git
synced 2025-07-17 12:50:43 +00:00
131 lines
3.7 KiB
YAML
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|dev|integration.*)/
|
|
tags:
|
|
ignore: /(version|snapshot)-.*/
|
|
deploy:
|
|
jobs:
|
|
- mvn_deploy:
|
|
context: [ qqq-maven-registry-credentials, kingsrook-slack, build-qqq-sample-app ]
|
|
filters:
|
|
branches:
|
|
only: /(main|dev|integration.*)/
|
|
tags:
|
|
only: /(version|snapshot)-.*/
|
|
|