bergamot-translator/.circleci/config.yml
Abhishek Aggarwal 6ccd4c68e8
Create github release via CircleCI only for mozilla fork (#349)
* Create github release via circleci only for mozilla fork

 - The extension uses mozilla fork for translator artifacts
   -- Hence create github release via circleci only when
      running in mozilla fork

* Small refactoring in ci script
2022-02-17 18:32:57 +01:00

135 lines
4.2 KiB
YAML

version: 2.1
jobs:
build-with-wormhole:
docker:
- image: 'emscripten/emsdk:2.0.9'
resource_class: medium
working_directory: ~/checkout
steps:
- checkout
- run:
name: Build WASM WORMHOLE
command: |
bash build-wasm.sh WORMHOLE
- run:
name: Check artifacts
working_directory: build-wasm
command: |
ARTIFACT_BASE="bergamot-translator-worker"
ARTIFACT_SUFFIX="with-wormhole"
ARTIFACT_FINAL=$ARTIFACT_BASE-$ARTIFACT_SUFFIX
if [[ -f "$ARTIFACT_BASE.js" && -f "$ARTIFACT_BASE.wasm" ]]; then
echo "Artifacts Successfully Generated"
mkdir ../artifacts
cp $ARTIFACT_BASE.wasm ../artifacts/$ARTIFACT_FINAL.wasm
cp $ARTIFACT_BASE.js ../artifacts/$ARTIFACT_FINAL.js
cd ../artifacts
shasum -a 256 $ARTIFACT_FINAL.wasm $ARTIFACT_FINAL.js >> sha256-filesize-$ARTIFACT_SUFFIX
ls -lsa $ARTIFACT_FINAL.wasm $ARTIFACT_FINAL.js >> sha256-filesize-$ARTIFACT_SUFFIX
cp ../BERGAMOT_VERSION .
else
echo "Failure: Artifacts Not Present"
exit 1
fi
- persist_to_workspace:
root: .
paths:
- artifacts/*
- store_artifacts:
path: "artifacts"
destination: "wasm-wormhole"
build-without-wormhole:
docker:
- image: 'emscripten/emsdk:2.0.9'
resource_class: medium
working_directory: ~/checkout
steps:
- checkout
- run:
name: Build WASM
command: |
bash build-wasm.sh
- run:
name: Check artifacts
working_directory: build-wasm
command: |
ARTIFACT_BASE="bergamot-translator-worker"
ARTIFACT_SUFFIX="without-wormhole"
ARTIFACT_FINAL=$ARTIFACT_BASE-$ARTIFACT_SUFFIX
if [[ -f "$ARTIFACT_BASE.js" && -f "$ARTIFACT_BASE.wasm" ]]; then
echo "Artifacts Successfully Generated"
mkdir ../artifacts
cp $ARTIFACT_BASE.wasm ../artifacts/$ARTIFACT_FINAL.wasm
cp $ARTIFACT_BASE.js ../artifacts/$ARTIFACT_FINAL.js
cd ../artifacts
shasum -a 256 $ARTIFACT_FINAL.wasm $ARTIFACT_FINAL.js >> sha256-filesize-$ARTIFACT_SUFFIX
ls -lsa $ARTIFACT_FINAL.wasm $ARTIFACT_FINAL.js >> sha256-filesize-$ARTIFACT_SUFFIX
else
echo "Failure: Artifacts Not Present"
exit 1
fi
- persist_to_workspace:
root: .
paths:
- artifacts/*
- store_artifacts:
path: "artifacts"
destination: "wasm-without-wormhole"
publish_to_github:
docker:
- image: cibuilds/github:0.10
steps:
- attach_workspace:
# Must be absolute path or relative path from working_directory
at: ./
- when:
condition:
equal: [ 'https://github.com/mozilla/bergamot-translator', << pipeline.project.git_url >> ]
steps:
- run:
name: "Publish Release on GitHub"
command: |
export TAG_VERSION=$(cat ./artifacts/BERGAMOT_VERSION)
cat ./artifacts/sha256-filesize-without-wormhole ./artifacts/sha256-filesize-with-wormhole >> ./artifacts/sha256-filesize
rm ./artifacts/sha256-filesize-without-wormhole ./artifacts/sha256-filesize-with-wormhole ./artifacts/BERGAMOT_VERSION
ghr -t ${GHTOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete ${TAG_VERSION} ./artifacts/
workflows:
build:
jobs:
- build-with-wormhole:
filters:
tags:
only: /^v.*/
- build-without-wormhole:
filters:
tags:
only: /^v.*/
- publish_to_github:
filters:
tags:
only: /^v.*/
branches:
ignore: /.*/
requires:
- build-without-wormhole
- build-with-wormhole