diff options
Diffstat (limited to '.circleci/config.yml')
-rw-r--r-- | .circleci/config.yml | 289 |
1 files changed, 0 insertions, 289 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 225ed9470..000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,289 +0,0 @@ -# References: -# 1. https://circleci.com/blog/how-to-build-a-docker-image-on-circleci-2-0/ -# 2. https://circleci.com/docs/2.0/building-docker-images/ -# - -version: 2 - -defaults: - bmo_slim_image: &bmo_slim_image - image: mozillabteam/bmo-slim:20180801.1 - user: app - - mysql_image: &mysql_image - image: mozillabteam/bmo-mysql:5.6 - - store_log: &store_log - store_artifacts: - path: /app/bugzilla.log - destination: bugzilla.log - - main_filters: &main_filters - branches: - ignore: - - /^(?:release|test)-20\d\d\d\d\d\d\.\d+/ - - /\// - - production - - bmo_env: &bmo_env - PORT: 8000 - LOGGING_PORT: 5880 - LOCALCONFIG_ENV: 1 - LOG4PERL_CONFIG_FILE: log4perl-test.conf - BMO_db_user: bugs - BMO_db_host: 127.0.0.1 - BMO_db_pass: bugs - BMO_db_name: bugs - BMO_memcached_servers: localhost:11211 - BMO_memcached_namespace: "bugzilla:" - BMO_urlbase: AUTOMATIC - - mysql_env: &mysql_env - MYSQL_DATABASE: bugs - MYSQL_USER: bugs - MYSQL_PASSWORD: bugs - MYSQL_ALLOW_EMPTY_PASSWORD: 1 - - docker_oldtests: &docker_oldtests - - <<: *bmo_slim_image - environment: - <<: *bmo_env - BZ_QA_CONF_FILE: /app/.circleci/selenium_test.conf - BZ_QA_ANSWERS_FILE: /app/.circleci/checksetup_answers.legacy.txt - BZ_QA_LEGACY_MODE: 1 - - <<: *mysql_image - environment: *mysql_env - - image: selenium/standalone-firefox:2.53.1 - - image: memcached:latest - - default_qa_setup: &default_qa_setup - run: - name: default qa setup - command: | - [[ -f build_info/only_version_changed.txt ]] && exit 0 - mv /opt/bmo/local /app/local - perl -MSys::Hostname -i -pE 's/bmo.test/hostname() . ":$ENV{PORT}"/ges' $BZ_QA_CONF_FILE - perl checksetup.pl --no-database --default-localconfig - mkdir artifacts - -jobs: - build_info: - parallelism: 1 - working_directory: /app - docker: - - <<: *bmo_slim_image - environment: - <<: *bmo_env - steps: - - checkout - - run: - name: build push data - command: | - mv /opt/bmo/local /app/local - perl Makefile.PL - perl -I/app -I/app/local/lib/perl5 -MBugzilla -e 1 - perl checksetup.pl --no-database --no-templates --no-permissions - perl scripts/build-bmo-push-data.pl - - run: - name: only publish if tag exists - command: | - tag="$(cat build_info/tag.txt)" - git fetch --tags - if git tag | fgrep -q "$tag"; then - echo "tag $tag exists!" - else - echo "tag $tag does not exist" - echo yes > build_info/publish.txt - fi - - run: - name: check if only version changed - command: | - if git diff 'HEAD~..HEAD' --name-only | grep -qv '^Bugzilla.pm'; then - echo "more files than just Bugzilla.pm changed." - exit 0 - fi - if git diff 'HEAD~..HEAD' |grep '^[+-][^+-]' | grep -qv '^[+-]our $VERSION'; then - echo "Something other than the version number changed." - exit 0 - fi - if [[ "$CIRCLE_BRANCH" == "master" ]]; then - echo "Can't cut corners on the master branch" - exit 0 - fi - echo yes > build_info/only_version_changed.txt - - persist_to_workspace: - root: /app/build_info - paths: ["*.txt"] - - store_artifacts: - path: /app/build_info - - *store_log - - build: - working_directory: /app - docker: - - image: docker:17.06.1-ce - steps: - - setup_remote_docker - - run: - name: install git and ssh - command: apk update && apk add git openssh-client - - checkout - - run: | - docker build \ - --build-arg CI="$CI" \ - --build-arg CIRCLE_SHA1="$CIRCLE_SHA1" \ - --build-arg CIRCLE_BUILD_URL="$CIRCLE_BUILD_URL" \ - -t bmo . - - attach_workspace: - at: /app/build_info - - run: "docker run --name bmo --entrypoint true bmo" - - run: "docker cp bmo:/app/version.json build_info/version.json" - - store_artifacts: - path: /app/build_info - - *store_log - - deploy: - command: | - TAG="$(cat /app/build_info/tag.txt)" - [[ "$CIRCLE_BRANCH" == "master" ]] || exit 0 - [[ -n "$DOCKERHUB_REPO" && -n "$DOCKER_USER" && -n "$DOCKER_PASS" ]] || exit 0 - [[ -n "$GITHUB_PERSONAL_TOKEN" ]] || exit 0 - docker login -u "$DOCKER_USER" -p "$DOCKER_PASS" - if [[ -n "$TAG" && -f build_info/publish.txt ]]; then - git config credential.helper "cache --timeout 120" - git config user.email "$GITHUB_EMAIL" - git config user.name "$GITHUB_NAME" - git tag $TAG - git push https://${GITHUB_PERSONAL_TOKEN}:x-oauth-basic@github.com/$GITHUB_REPO.git $TAG - docker tag bmo "$DOCKERHUB_REPO:$TAG" - docker push "$DOCKERHUB_REPO:$TAG" - fi - docker tag bmo "$DOCKERHUB_REPO:latest" - docker push "$DOCKERHUB_REPO:latest" - - test_sanity: - parallelism: 1 - working_directory: /app - docker: - - <<: *bmo_slim_image - environment: *bmo_env - steps: - - checkout - - attach_workspace: - at: /app/build_info - - run: | - [[ -f build_info/only_version_changed.txt ]] && exit 0 - mv /opt/bmo/local /app/local - mkdir artifacts - - run: | - [[ -f build_info/only_version_changed.txt ]] && exit 0 - perl -I/app -I/app/local/lib/perl5 -c -E 'use Bugzilla; BEGIN { Bugzilla->extensions }' - - run: | - [[ -f build_info/only_version_changed.txt ]] && exit 0 - perl Makefile.PL - - run: - name: run sanity tests - command: | - [[ -f build_info/only_version_changed.txt ]] && exit 0 - /app/scripts/entrypoint.pl prove -qf $(circleci tests glob 't/*.t' | circleci tests split) | tee artifacts/$CIRCLE_JOB.txt - - store_artifacts: - path: /app/artifacts - - *store_log - - test_webservices: - parallelism: 1 - working_directory: /app - docker: *docker_oldtests - steps: - - checkout - - attach_workspace: - at: /app/build_info - - *default_qa_setup - - run: | - [[ -f build_info/only_version_changed.txt ]] && exit 0 - /app/scripts/entrypoint.pl load_test_data - - run: | - [[ -f build_info/only_version_changed.txt ]] && exit 0 - /app/scripts/entrypoint.pl test_webservices | tee artifacts/$CIRCLE_JOB.txt - - store_artifacts: - path: /app/artifacts - - *store_log - - test_selenium: - parallelism: 1 - working_directory: /app - docker: *docker_oldtests - steps: - - checkout - - attach_workspace: - at: /app/build_info - - *default_qa_setup - - run: | - [[ -f build_info/only_version_changed.txt ]] && exit 0 - /app/scripts/entrypoint.pl load_test_data --legacy - - run: | - [[ -f build_info/only_version_changed.txt ]] && exit 0 - /app/scripts/entrypoint.pl test_selenium | tee artifacts/$CIRCLE_JOB.txt - - store_artifacts: - path: /app/artifacts - - *store_log - - test_bmo: - parallelism: 1 - working_directory: /app - docker: - - <<: *bmo_slim_image - environment: - <<: *bmo_env - BZ_QA_ANSWERS_FILE: /app/.circleci/checksetup_answers.txt - TWD_HOST: localhost - TWD_PORT: 4444 - TWD_BROWSER: firefox - - <<: *mysql_image - environment: *mysql_env - - image: memcached:latest - - image: selenium/standalone-firefox:2.53.1 - steps: - - checkout - - attach_workspace: - at: /app/build_info - - run: | - [[ -f build_info/only_version_changed.txt ]] && exit 0 - mv /opt/bmo/local /app/local - perl checksetup.pl --no-database - /app/scripts/entrypoint.pl load_test_data - mkdir artifacts - - run: | - [[ -f build_info/only_version_changed.txt ]] && exit 0 - /app/scripts/entrypoint.pl test_bmo -q -f t/bmo/*.t - - *store_log - -workflows: - version: 2 - main: - jobs: - - build_info: - filters: *main_filters - - build: - filters: *main_filters - requires: - - build_info - - test_sanity - - test_bmo - - test_webservices - - test_selenium - - test_sanity: - filters: *main_filters - requires: - - build_info - - test_bmo: - filters: *main_filters - requires: - - build_info - - test_webservices: - filters: *main_filters - requires: - - build_info - - test_selenium: - filters: *main_filters - requires: - - build_info |