summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.circleci/config.yml100
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