summaryrefslogtreecommitdiffstats
path: root/.circleci
diff options
context:
space:
mode:
Diffstat (limited to '.circleci')
-rw-r--r--.circleci/config.yml103
1 files changed, 4 insertions, 99 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 1283d573b..f5b35833a 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -7,7 +7,7 @@ version: 2
defaults:
bmo_slim_image: &bmo_slim_image
- image: mozillabteam/bmo-slim:20180330.1
+ image: bugzilla/harmony-slim:20180318.1
user: app
mysql_image: &mysql_image
@@ -66,64 +66,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
- perl checksetup.pl --no-database --default-localconfig
+ /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 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:
@@ -149,22 +97,7 @@ jobs:
- *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"
+ exit 0
test_sanity:
parallelism: 1
@@ -174,19 +107,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
@@ -198,14 +126,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
@@ -217,14 +141,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
@@ -247,16 +167,12 @@ 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
- perl checksetup.pl --no-database
+ /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
- *store_log
@@ -264,29 +180,18 @@ 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