tts-openai / .circleci /config.yml
imseldrith's picture
Upload folder using huggingface_hub
f32a529 verified
raw
history blame
4.37 kB
version: 2.1
parameters:
# This parameter is used to trigger the main workflow
image_name:
type: string
default: text_to_speech_open_api
package_version:
type: string
default: "2.1.31"
dependency_image_name:
type: string
default: text_to_speech_open_api_dependency
dependency_version:
type: string
default: "2.1.7"
build_dependency:
type: boolean
default: true
executors:
node:
docker:
- image: cimg/python:3.8.6
jobs:
sonar-scan:
machine:
image: ubuntu-2004:202201-02
working_directory: ~/text-to-speech-open-api/
steps:
- checkout:
path: ~/text-to-speech-open-api
- run:
name: Branch
command: echo $CIRCLE_BRANCH
- run:
name: Sonar Scan
command: docker run --rm -e SONAR_HOST_URL="https://sonarcloud.io" -e SONAR_TOKEN=$SONAR_TOKEN -v $PWD:/usr/src sonarsource/sonar-scanner-cli -Dsonar.branch.name=$CIRCLE_BRANCH
test-suite:
executor: node
working_directory: ~/text-to-speech-open-api/
steps:
- checkout:
path: ~/text-to-speech-open-api/
- run:
name: Setup Testing Environment
command: |
python --version ;pip --version ; pwd ; ls
pip install --upgrade pip
pip install pytest grpcio grpcio-tools pytest-grpc coverage pydantic
python --version ; pip --version ; pwd ; ls
- run:
name: Run Tests
command: |
python --version ; pip --version ; pwd ; ls
pwd ; coverage run -m unittest discover tests
pytest
coverage report --fail-under 20 src/*/*.py
coverage html # open htmlcov/index.html in a browser
- store_artifacts:
path: htmlcov
build_and_deploy_api_image:
machine:
image: ubuntu-2004:202101-01
resource_class: large
working_directory: ~/text-to-speech-open-api/
steps:
- checkout:
path: ~/text-to-speech-open-api
- run:
name: Setup Google credentials
command: |
echo ${GOOGLE_AUTH} > ${HOME}/gcp-key.json
pip install google_compute_engine
gcloud auth activate-service-account --key-file ${HOME}/gcp-key.json
gcloud --quiet config set project ${GCP_PROJECT}
- run:
name: Build dependencies image
command: |
echo "Build dependencies..."
if << pipeline.parameters.build_dependency >> ; then
docker build --rm=false -t gcr.io/${GCP_PROJECT}/<< pipeline.parameters.dependency_image_name >>:<< pipeline.parameters.dependency_version >> dependencies/
gcloud docker -- push gcr.io/${GCP_PROJECT}/<< pipeline.parameters.dependency_image_name >>:<< pipeline.parameters.dependency_version >>
fi
# - when:
# condition:
# equal: [ true, << pipeline.paramaters.build_dependency >> ]
# steps:
# - run: |
# docker build --rm=false -t gcr.io/${GCP_PROJECT}/<< pipeline.parameters.dependency_image_name >>:<< pipeline.parameters.dependency_version >> dependencies/
# gcloud docker -- push gcr.io/${GCP_PROJECT}/<< pipeline.parameters.dependency_image_name >>:<< pipeline.parameters.dependency_version >>
- run:
name: Build docker image
command: |
echo "Build api image..."
docker build --rm=false -t gcr.io/${GCP_PROJECT}/<< pipeline.parameters.image_name >>:<< pipeline.parameters.package_version >> .
- run:
name: deploy image to registry
command: |
echo "Deploy api image to registry..."
gcloud docker -- push gcr.io/${GCP_PROJECT}/<< pipeline.parameters.image_name >>:<< pipeline.parameters.package_version >>
- run:
name: Remove account details
command: |
rm ${HOME}/gcp-key.json ; ls
workflows:
version: 2
main_workflow:
jobs:
- sonar-scan:
name: sonar-scan
- test-suite:
name: test-suite
- approve_to_publish:
name: approve-build-and-deploy
type: approval
requires:
- test-suite
- build_and_deploy_api_image:
name: build_and_deploy_api_image
requires:
- approve-build-and-deploy