scratch-l10n/.circleci/config.yml
Chris Garrity b835de92af Update circle-ci config to pull translations daily
Change the frequency of the job that pulls translations for the editor and www so that the staging server translations are updated more often, and we know earlier if there are translation problems.

Clarify that the time in the cron jobs is UTC, not local.
2020-10-21 09:51:53 -04:00

132 lines
3.8 KiB
YAML

version: 2.1
orbs:
node: circleci/node@2.1.0
slack: circleci/slack@3.4.2
defaults: &defaults
working_directory: ~/project
executor:
name: node/default
tag: 'lts'
jobs:
build-and-test:
<<: *defaults
steps:
- checkout
- node/install-packages #node orb cmd caches
- run: npm run test
- persist_to_workspace:
root: ~/project
paths: .
deploy-npm:
<<: *defaults
steps:
- attach_workspace:
at: ~/project
- add_ssh_keys:
fingerprints:
- "58:62:ab:1f:24:b9:39:5a:ee:8a:e7:28:b2:f2:61:a2"
- run: ssh-keyscan -H github.com >> ~/.ssh/known_hosts
- run:
name: "configure release version"
command: |
VPKG=$($(npm bin)/json -f package.json version)
echo "export VERSION=${VPKG/%?/}$(date +%Y%m%d%H%M%S)" >> $BASH_ENV
- run:
name: "publish"
command: |
npm --no-git-tag-version version $VERSION
npm set //registry.npmjs.org/:_authToken=$NPM_TOKEN
npm publish
- run:
name: "tag release"
command: |
git tag $VERSION
git push $CIRCLE_REPOSITORY_URL $VERSION
pull-translations:
<<: *defaults
steps:
- checkout
- node/install-packages
- run:
name: "pull editor and www translations"
command: |
npm run pull:editor
npm run pull:www
npm run test
- persist_to_workspace:
root: ~/project
paths: .
- slack/status:
fail_only: true
failure_message: ":explosion: Pull editor and www translations failed, for help see: https://github.com/LLK/scratch-l10n/wiki/Developer-Guide#weekly-editor-and-website-update"
only_for_branches: "master"
commit-translations:
<<: *defaults
steps:
- attach_workspace:
at: ~/project
- add_ssh_keys:
fingerprints:
- "58:62:ab:1f:24:b9:39:5a:ee:8a:e7:28:b2:f2:61:a2"
- run: ssh-keyscan -H github.com >> ~/.ssh/known_hosts
- run:
name: "commit translation updates"
command: |
git config --global user.email $(git log --pretty=format:"%ae" -n1)
git config --global user.name $(git log --pretty=format:"%an" -n1)
git add .
git commit -m "pull new editor translations from Transifex"
git push $CIRCLE_REPOSITORY_URL HEAD:master
sync-help:
<<: *defaults
steps:
- checkout
- node/install-packages
- run: npm run sync:help
- slack/status:
fail_only: true
failure_message: ":boom: Scratch Help update failed, for help see: https://github.com/LLK/scratch-l10n/wiki/Developer-Guide#daily-help-update"
only_for_branches: "master"
workflows:
version: 2
build-test-and-deploy:
jobs:
- build-and-test
- deploy-npm:
requires:
- build-and-test
filters:
branches:
only: master
manual-pull:
when:
equal: [ tx-pull-manual, << pipeline.git.branch >> ]
jobs:
- pull-translations
- commit-translations:
requires:
- pull-translations
filters:
branches:
only: tx-pull-manual
daily-tx-pull:
triggers:
- schedule: # daily at 3am UTC (10pm EST)
cron: "0 3 * * *"
filters:
branches:
only: master
jobs:
- pull-translations
- commit-translations:
requires:
- pull-translations # don't commit if there were errors
daily-help-update:
triggers:
- schedule: # daily at 5am UTC
cron: "0 5 * * *"
filters:
branches:
only: master
jobs:
- sync-help