scratch-desktop/.circleci/config.yml
2020-07-24 17:07:21 -07:00

76 lines
2.6 KiB
YAML

version: 2.1
workflows:
macos:
jobs:
- build_for_macos:
context: scratch-desktop-and-link
windows:
jobs:
- build_for_windows:
context: scratch-desktop-and-link
orbs:
windows: circleci/windows@2.2.0
jobs:
build_for_macos:
macos:
xcode: 11.1.0 # last version for which CircleCI uses macOS 10.14.x
steps:
- checkout
- shared_build_steps:
npmCacheDir: ~/.npm
- run:
name: Move macOS build products to artifacts directory
command: |
mkdir -p Artifacts/
mv dist/{Scratch*.dmg,mas/Scratch*.pkg} Artifacts/
- store_artifacts:
path: Artifacts/
build_for_windows:
executor:
name: windows/default
shell: bash
steps:
- run:
# work around https://github.com/appveyor/ci/issues/2420 which seems to affect CircleCI too
# see also https://circleci.com/docs/2.0/env-vars/#using-parameters-and-bash-environment
name: Work around git-sh-setup issue
command: |
echo 'Adding libexec/git-core to PATH...'
echo 'For more details see https://github.com/appveyor/ci/issues/2420'
echo 'export PATH="$PATH:/c/Program Files/Git/mingw64/libexec/git-core"' >> $BASH_ENV
- checkout
- shared_build_steps:
npmCacheDir: "C:/Users/circleci/AppData/Roaming/npm-cache"
- run:
name: Move Windows build products to artifacts directory
command: |
mkdir -p Artifacts/
mv dist/{Scratch*.appx,Scratch*.exe} Artifacts/
- store_artifacts:
path: Artifacts/
commands:
shared_build_steps:
description: The build steps which are the same on all platforms. Does not include 'checkout'
parameters:
npmCacheDir:
type: string
description: NPM cache directory (`npm config cache get`) - usually either ~/.npm or %AppData%/npm-cache
steps:
- restore_cache:
keys:
- npm-cache-{{ arch }}-{{ checksum "package-lock.json" }}
- run:
name: Install node_modules
# --prefer-offline "will make npm skip any conditional requests (304 checks) for stale cache data, and only
# hit the network if something is missing from the cache"
command: npm ci --prefer-offline
- save_cache:
paths:
- << parameters.npmCacheDir >>
key: npm-cache-{{ arch }}-{{ checksum "package-lock.json" }}
- run:
name: Test
command: npm run test
- run:
name: Build
command: npm run dist