diff options
-rw-r--r-- | .circleci/config.yml | 100 |
1 files changed, 1 insertions, 99 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index eca472ceb..7183001b9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -61,61 +61,12 @@ defaults: 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 /app/scripts/entrypoint.pl checksetup_gen_files --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 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 - build: working_directory: /app docker: @@ -132,30 +83,9 @@ jobs: --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 - 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" + exit 0 test_sanity: parallelism: 2 @@ -165,19 +95,14 @@ jobs: 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 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 @@ -188,14 +113,10 @@ jobs: 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 @@ -206,14 +127,10 @@ jobs: 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 @@ -235,45 +152,30 @@ jobs: - 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 /app/scripts/entrypoint.pl checksetup_gen_files /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 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 |