50 lines
No EOL
2.1 KiB
YAML
50 lines
No EOL
2.1 KiB
YAML
version: 2
|
|
jobs:
|
|
build:
|
|
docker:
|
|
- image: circleci/node:latest
|
|
working_directory: ~/app
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Install npm deployment app
|
|
command: sudo npm install -g github-release-cli @babel/runtime
|
|
- run:
|
|
name: Check if this is a new release
|
|
command: |
|
|
set +e
|
|
github-release list --owner $CIRCLE_PROJECT_USERNAME --repo $CIRCLE_PROJECT_REPONAME | grep "tag_name=\"v${PACKAGE_VERSION}\""
|
|
retVal=$?
|
|
if [ $retVal -eq 0 ]; then
|
|
echo "Release already exists. Quitting early"
|
|
circleci step halt
|
|
fi
|
|
- run:
|
|
name: Get current git commit message
|
|
command: |
|
|
echo "export COMMIT_MESSAGE=\"$(git log --format=oneline -n 1 $CIRCLE_SHA1)\"" >> $BASH_ENV
|
|
source $BASH_ENV
|
|
- deploy:
|
|
name: Create a release
|
|
command: |
|
|
PACKAGE_VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[", ]//g')
|
|
echo "Packaging to ${CIRCLE_PROJECT_REPONAME}_build-sc.zip"
|
|
zip "${CIRCLE_PROJECT_REPONAME}_build-sc-core.zip" runner.mjs package.json service/* core/**/* core/*
|
|
zip "${CIRCLE_PROJECT_REPONAME}_app.zip" runner.mjs package.json service/* core/**/* core/* service/* config.json install.bat npminstall.bat README.md start.bat stop.bat uninstall.bat
|
|
echo "Creating release '${PACKAGE_VERSION}'"
|
|
github-release upload \
|
|
--commitish $CIRCLE_SHA1 \
|
|
--token $GITHUB_TOKEN \
|
|
--owner $CIRCLE_PROJECT_USERNAME \
|
|
--repo $CIRCLE_PROJECT_REPONAME \
|
|
--tag "v${PACKAGE_VERSION}" \
|
|
--release-name "v${PACKAGE_VERSION}" \
|
|
--body "Automatic CircleCI Build of v${PACKAGE_VERSION} from ${CIRCLE_SHA1}: ${COMMIT_MESSAGE}" \
|
|
"${CIRCLE_PROJECT_REPONAME}_build-sc-core.zip" "${CIRCLE_PROJECT_REPONAME}_app.zip"
|
|
|
|
workflows:
|
|
version: 2
|
|
build_deploy:
|
|
jobs:
|
|
- build:
|
|
context: github-thething |