Files
PhotonVision/.circleci/config.yml

82 lines
1.9 KiB
YAML

version: 2
jobs:
build_ui:
working_directory: ~/project/chameleon-client
docker:
- image: node:latest
steps:
- checkout:
path: ~/project
- run: npm install
- run: npm run build
- persist_to_workspace:
root: .
paths:
- dist
build_jar:
working_directory: ~/project/chameleon-server
docker:
- image: gradle:jdk12
steps:
- checkout:
path: ~/project
- attach_workspace:
at: /UI
- run: rm -rf src/main/resources/web/*
- run: mkdir -p src/main/resources/web/
- run: cp -r /UI/dist/. src/main/resources/web/
- run: gradle shadowJar
- store_artifacts:
path: build/libs
- persist_to_workspace:
root: ./build/libs
paths:
- .
format_diff_against_git:
working_directory: ~/project/chameleon-server
docker:
- image: gradle:jdk12
steps:
- checkout:
path: ~/project
- run: gradle spotlessApply
- run: git --no-pager diff --exit-code HEAD
deploy:
docker:
- image: cibuilds/github:0.10
steps:
- attach_workspace:
at: ./
- run:
name: Publish Release on GitHub"
command: |
VERSION=$(find . -name 'chameleon-vision-*.jar' | sed 's/.*chameleon-vision-//; s/.jar//' )
ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete ${VERSION} ./$(find . -name "chameleon-vision-*")
workflows:
version: 2
release:
jobs:
- format_diff_against_git
- build_ui
- build_jar:
requires:
- build_ui
- deploy:
requires:
- format_diff_against_git
- build_jar
filters:
branches:
only: master