From 66c8153d72fe314f496680784a7aeb62850217e1 Mon Sep 17 00:00:00 2001 From: Brad Ison Date: Thu, 2 Feb 2017 17:11:12 -0500 Subject: [PATCH] Add Concourse CI configs --- .dockerignore | 1 + ci/pipelines/pull-requests.yaml | 178 ++++++++++++++++++++++++++++++++ ci/tasks/karma.yaml | 14 +++ ci/tasks/mysql.yaml | 23 +++++ ci/tasks/postgres.yaml | 24 +++++ ci/tasks/registry.yaml | 16 +++ ci/tasks/unit.yaml | 16 +++ 7 files changed, 272 insertions(+) create mode 100644 ci/pipelines/pull-requests.yaml create mode 100644 ci/tasks/karma.yaml create mode 100644 ci/tasks/mysql.yaml create mode 100644 ci/tasks/postgres.yaml create mode 100644 ci/tasks/registry.yaml create mode 100644 ci/tasks/unit.yaml diff --git a/.dockerignore b/.dockerignore index ceca66501..96c885b15 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,4 @@ +./ci/ conf/stack screenshots tools diff --git a/ci/pipelines/pull-requests.yaml b/ci/pipelines/pull-requests.yaml new file mode 100644 index 000000000..712deb486 --- /dev/null +++ b/ci/pipelines/pull-requests.yaml @@ -0,0 +1,178 @@ +resource_types: + - name: pull-request + type: docker-image + source: + repository: quay.io/quay/pr-resource + username: {{quay-robot-username}} + password: {{quay-robot-password}} + +resources: + - name: build-image + type: docker-image + source: + repository: quay.io/quay/quay-build-image + username: {{quay-robot-username}} + password: {{quay-robot-password}} + + - name: quay-pull-request + type: pull-request + source: + access_token: {{quay-github-token}} + private_key: {{quay-git-private-key}} + repo: coreos-inc/quay + uri: git@github.com:coreos-inc/quay.git + base: master + disable_forks: true + +jobs: + - name: karma + max_in_flight: 4 + plan: + - get: quay-pull-request + trigger: true + version: every + + - get: build-image + + - put: quay-pull-request + params: + path: quay-pull-request + context: karma + status: pending + + - task: karma + image: build-image + file: quay-pull-request/ci/tasks/karma.yaml + on_success: + put: quay-pull-request + params: + path: quay-pull-request + context: karma + status: success + on_failure: + put: quay-pull-request + params: + path: quay-pull-request + context: karma + status: failure + + - name: unit + max_in_flight: 4 + plan: + - get: quay-pull-request + trigger: true + version: every + + - get: build-image + + - put: quay-pull-request + params: + path: quay-pull-request + context: unit + status: pending + + - task: unit + image: build-image + file: quay-pull-request/ci/tasks/unit.yaml + on_success: + put: quay-pull-request + params: + path: quay-pull-request + context: unit + status: success + on_failure: + put: quay-pull-request + params: + path: quay-pull-request + context: unit + status: failure + + - name: registry + plan: + - get: quay-pull-request + trigger: true + version: every + + - get: build-image + + - put: quay-pull-request + params: + path: quay-pull-request + context: registry + status: pending + + - task: registry + image: build-image + file: quay-pull-request/ci/tasks/registry.yaml + on_success: + put: quay-pull-request + params: + path: quay-pull-request + context: registry + status: success + on_failure: + put: quay-pull-request + params: + path: quay-pull-request + context: registry + status: failure + + - name: mysql + plan: + - get: quay-pull-request + trigger: true + version: every + + - get: build-image + + - put: quay-pull-request + params: + path: quay-pull-request + context: mysql + status: pending + + - task: mysql + image: build-image + file: quay-pull-request/ci/tasks/mysql.yaml + on_success: + put: quay-pull-request + params: + path: quay-pull-request + context: mysql + status: success + on_failure: + put: quay-pull-request + params: + path: quay-pull-request + context: mysql + status: failure + + - name: postgres + plan: + - get: quay-pull-request + trigger: true + version: every + + - get: build-image + + - put: quay-pull-request + params: + path: quay-pull-request + context: postgres + status: pending + + - task: postgres + image: build-image + file: quay-pull-request/ci/tasks/postgres.yaml + on_success: + put: quay-pull-request + params: + path: quay-pull-request + context: postgres + status: success + on_failure: + put: quay-pull-request + params: + path: quay-pull-request + context: postgres + status: failure diff --git a/ci/tasks/karma.yaml b/ci/tasks/karma.yaml new file mode 100644 index 000000000..b7f336028 --- /dev/null +++ b/ci/tasks/karma.yaml @@ -0,0 +1,14 @@ +--- +platform: linux +inputs: + - name: quay-pull-request +run: + path: /bin/sh + args: + - -c + - | + set -eux + cd quay-pull-request + npm install + npm link typescript + npm test diff --git a/ci/tasks/mysql.yaml b/ci/tasks/mysql.yaml new file mode 100644 index 000000000..a4746d3dd --- /dev/null +++ b/ci/tasks/mysql.yaml @@ -0,0 +1,23 @@ +--- +platform: linux +inputs: + - name: quay-pull-request +run: + path: /bin/sh + args: + - -c + - | + set -eux + export TEST=true + export TEST_DATABASE_URI='mysql+pymysql://quay@127.0.0.1/genschema' + export SKIP_DB_SCHEMA=true + pip install --quiet -r quay-pull-request/requirements.txt + pip install --quiet -r quay-pull-request/requirements-tests.txt + service mysql start + mysqladmin create genschema + mysql -e "CREATE USER 'quay'@'127.0.0.1' IDENTIFIED BY '';" + mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'quay'@'127.0.0.1';" + cd quay-pull-request + PYTHONPATH="." alembic upgrade head + PYTHONPATH="." python -m unittest discover -f + service mysql stop diff --git a/ci/tasks/postgres.yaml b/ci/tasks/postgres.yaml new file mode 100644 index 000000000..ef33d46a0 --- /dev/null +++ b/ci/tasks/postgres.yaml @@ -0,0 +1,24 @@ +--- +platform: linux +inputs: + - name: quay-pull-request +run: + path: /bin/sh + args: + - -c + - | + set -eux + export TEST=true + export TEST_DATABASE_URI='postgresql://quay:quay@127.0.0.1/quaytest' + export SKIP_DB_SCHEMA=true + pip install --quiet -r quay-pull-request/requirements.txt + pip install --quiet -r quay-pull-request/requirements-tests.txt + service postgresql start + su postgres -c "createuser --echo --superuser --no-password quay" + su postgres -c "psql -c \"ALTER USER quay WITH PASSWORD 'quay';\"" + su postgres -c "psql -c 'CREATE DATABASE quaytest;'" + su postgres -c "psql -c 'GRANT ALL PRIVILEGES ON DATABASE quaytest TO quay';" + cd quay-pull-request + PYTHONPATH="." alembic upgrade head + PYTHONPATH="." python -m unittest discover -f + service postgresql stop diff --git a/ci/tasks/registry.yaml b/ci/tasks/registry.yaml new file mode 100644 index 000000000..e27ba3cea --- /dev/null +++ b/ci/tasks/registry.yaml @@ -0,0 +1,16 @@ +--- +platform: linux +inputs: + - name: quay-pull-request +run: + path: /bin/sh + args: + - -c + - | + set -eux + export TEST=true + pip install --quiet -r quay-pull-request/requirements.txt + pip install --quiet -r quay-pull-request/requirements-tests.txt + cd quay-pull-request + PYTHONPATH="." py.test --timeout=7200 --verbose \ + --show-count -x test/registry_tests.py diff --git a/ci/tasks/unit.yaml b/ci/tasks/unit.yaml new file mode 100644 index 000000000..57ff37c5b --- /dev/null +++ b/ci/tasks/unit.yaml @@ -0,0 +1,16 @@ +--- +platform: linux +inputs: + - name: quay-pull-request +run: + path: /bin/sh + args: + - -c + - | + set -eux + export TEST=true + pip install --quiet -r quay-pull-request/requirements.txt + pip install --quiet -r quay-pull-request/requirements-tests.txt + cd quay-pull-request + PYTHONPATH="." py.test --timeout=7200 --verbose \ + --show-count -x .