Compare commits
2 Commits
developmen
...
w/test-eve
Author | SHA1 | Date |
---|---|---|
Salim | 3d29160e5d | |
Salim | be388da2ec |
|
@ -4,7 +4,7 @@ MAINTAINER Giorgio Regni <gr@scality.com>
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
# Keep the .git directory in order to properly report version
|
# Keep the .git directory in order to properly report version
|
||||||
COPY . /usr/src/app
|
COPY ./package.json .
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y jq python git build-essential --no-install-recommends \
|
&& apt-get install -y jq python git build-essential --no-install-recommends \
|
||||||
|
@ -15,6 +15,8 @@ RUN apt-get update \
|
||||||
&& rm -rf ~/.node-gyp \
|
&& rm -rf ~/.node-gyp \
|
||||||
&& rm -rf /tmp/npm-*
|
&& rm -rf /tmp/npm-*
|
||||||
|
|
||||||
|
COPY ./ ./
|
||||||
|
|
||||||
VOLUME ["/usr/src/app/localData","/usr/src/app/localMetadata"]
|
VOLUME ["/usr/src/app/localData","/usr/src/app/localMetadata"]
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/src/app/docker-entrypoint.sh"]
|
ENTRYPOINT ["/usr/src/app/docker-entrypoint.sh"]
|
||||||
|
|
|
@ -0,0 +1,102 @@
|
||||||
|
---
|
||||||
|
version: 0.2
|
||||||
|
|
||||||
|
branches:
|
||||||
|
feature/*, improvement/*, bugfix/*, w/*, q/*, hotfix/*:
|
||||||
|
stage: pre-merge
|
||||||
|
development/*:
|
||||||
|
stage: post-merge
|
||||||
|
|
||||||
|
models:
|
||||||
|
- Git: &clone
|
||||||
|
name: Pull repo
|
||||||
|
repourl: '%(prop:git_reference)s'
|
||||||
|
shallow: True
|
||||||
|
retryFetch: True
|
||||||
|
haltOnFailure: True
|
||||||
|
# Machine Setup
|
||||||
|
- ShellCommandWthSecrets: &credentials
|
||||||
|
name: Setup Credentials
|
||||||
|
command: bash eve/workers/build/credentials.bash
|
||||||
|
haltOnFailure: True
|
||||||
|
- ShellCommandWithSecrets: &npm-install
|
||||||
|
name: install modules
|
||||||
|
command: npm install
|
||||||
|
haltOnFailure: True
|
||||||
|
stages:
|
||||||
|
pre-merge:
|
||||||
|
worker:
|
||||||
|
type: local
|
||||||
|
steps:
|
||||||
|
- SetProperty:
|
||||||
|
property: artifacts_name
|
||||||
|
value: "scality-s3-%(prop:buildnumber)s"
|
||||||
|
haltOnFailure: True
|
||||||
|
|
||||||
|
- TriggerStages:
|
||||||
|
name: Launch all workers
|
||||||
|
stage_names:
|
||||||
|
- linting-coverage
|
||||||
|
- mongo-ft-tests
|
||||||
|
waitForFinish: True
|
||||||
|
haltOnFailure: True
|
||||||
|
|
||||||
|
linting-coverage:
|
||||||
|
worker:
|
||||||
|
type: docker
|
||||||
|
path: eve/workers/build
|
||||||
|
volumes: &default_volumes
|
||||||
|
- '/home/eve/workspace'
|
||||||
|
steps:
|
||||||
|
- Git: *clone
|
||||||
|
- ShellCommand: *npm-install
|
||||||
|
- ShellCommand:
|
||||||
|
name: Linting
|
||||||
|
command: |
|
||||||
|
npm run --silent lint -- --max-warnings 0
|
||||||
|
npm run --silent lint_md
|
||||||
|
flake8 $(git ls-files "*.py")
|
||||||
|
yamllint $(git ls-files "*.yml")
|
||||||
|
- ShellCommand:
|
||||||
|
name: Unit Coverage
|
||||||
|
command: |
|
||||||
|
mkdir -p $CIRCLE_TEST_REPORTS/unit
|
||||||
|
npm run unit_coverage
|
||||||
|
npm run unit_coverage_legacy_location
|
||||||
|
haltOnFailure: True
|
||||||
|
env:
|
||||||
|
CIRCLE_TEST_REPORTS: /tmp
|
||||||
|
|
||||||
|
mongo-ft-tests:
|
||||||
|
worker:
|
||||||
|
type: kube_pod
|
||||||
|
path: eve/workers/pod.yaml
|
||||||
|
images:
|
||||||
|
aggressor: eve/workers/build
|
||||||
|
s3: "."
|
||||||
|
vars: &mongo-vars
|
||||||
|
S3BACKEND: "mem"
|
||||||
|
S3DATA: ""
|
||||||
|
MPU_TESTING: "yes"
|
||||||
|
S3METADATA: mongodb
|
||||||
|
CI_PROXY: "false"
|
||||||
|
steps:
|
||||||
|
- Git: *clone
|
||||||
|
- ShellCommandWithSecrets: *credentials
|
||||||
|
- ShellCommand: *npm-install
|
||||||
|
- ShellCommandWithSecrets:
|
||||||
|
command: |
|
||||||
|
. /root/.aws/exports &> /dev/null
|
||||||
|
bash wait_for_local_port.bash 8000 40
|
||||||
|
npm run ft_test
|
||||||
|
env:
|
||||||
|
<<: *mongo-vars
|
||||||
|
|
||||||
|
post-merge:
|
||||||
|
worker:
|
||||||
|
type: local
|
||||||
|
steps:
|
||||||
|
- Git: *clone
|
||||||
|
- ShellCommand:
|
||||||
|
name: Nightly Build
|
||||||
|
command: docker build -t zenko/cloudserver:nightly .
|
|
@ -0,0 +1,52 @@
|
||||||
|
FROM ubuntu:xenial
|
||||||
|
|
||||||
|
#
|
||||||
|
# Install packages needed by the buildchain
|
||||||
|
#
|
||||||
|
ENV LANG C.UTF-8
|
||||||
|
COPY ./s3_packages.list ./buildbot_worker_packages.list /tmp/
|
||||||
|
RUN apt-get update \
|
||||||
|
&& cat /tmp/*packages.list | xargs apt-get install -y \
|
||||||
|
&& wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz \
|
||||||
|
&& tar -C /usr/local --strip-components 1 -xvf node-v6.9.5-linux-x64.tar.xz \
|
||||||
|
&& pip install pip==9.0.1 \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
&& rm -f /tmp/packages.list
|
||||||
|
|
||||||
|
#
|
||||||
|
# Add user eve
|
||||||
|
#
|
||||||
|
|
||||||
|
RUN adduser -u 1042 --home /home/eve --disabled-password --gecos "" eve \
|
||||||
|
&& adduser eve sudo \
|
||||||
|
&& sed -ri 's/(%sudo.*)ALL$/\1NOPASSWD:ALL/' /etc/sudoers
|
||||||
|
#
|
||||||
|
# Install Dependencies
|
||||||
|
#
|
||||||
|
|
||||||
|
# Install RVM and gems
|
||||||
|
ENV RUBY_VERSION="2.4.1"
|
||||||
|
COPY ./gems.list /tmp/
|
||||||
|
RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
|
||||||
|
&& curl -sSL https://get.rvm.io | bash -s stable --ruby=$RUBY_VERSION \
|
||||||
|
&& usermod -a -G rvm eve
|
||||||
|
RUN /bin/bash -l -c "\
|
||||||
|
source /usr/local/rvm/scripts/rvm \
|
||||||
|
&& cat /tmp/gems.list | xargs gem install \
|
||||||
|
&& rm /tmp/gems.list"
|
||||||
|
|
||||||
|
# Install Pip packages
|
||||||
|
COPY ./pip_packages.list /tmp/
|
||||||
|
RUN cat /tmp/pip_packages.list | xargs pip install \
|
||||||
|
&& rm -f /tmp/pip_packages.list \
|
||||||
|
&& mkdir /home/eve/.aws \
|
||||||
|
&& chown eve /home/eve/.aws
|
||||||
|
|
||||||
|
#
|
||||||
|
# Run buildbot-worker on startup
|
||||||
|
#
|
||||||
|
|
||||||
|
ARG BUILDBOT_VERSION
|
||||||
|
RUN pip install buildbot-worker==$BUILDBOT_VERSION
|
||||||
|
|
||||||
|
CMD ["/bin/bash", "-l", "-c", "buildbot-worker create-worker . $BUILDMASTER:$BUILDMASTER_PORT $WORKERNAME $WORKERPASS && buildbot-worker start --nodaemon"]
|
|
@ -0,0 +1,12 @@
|
||||||
|
ca-certificates
|
||||||
|
git
|
||||||
|
gnupg
|
||||||
|
libffi-dev
|
||||||
|
libssl-dev
|
||||||
|
python-pip
|
||||||
|
python2.7
|
||||||
|
python2.7-dev
|
||||||
|
software-properties-common
|
||||||
|
sudo
|
||||||
|
tcl
|
||||||
|
wget
|
|
@ -0,0 +1,41 @@
|
||||||
|
#!/bin/bash -x
|
||||||
|
set -x #echo on
|
||||||
|
set -e #exit at the first error
|
||||||
|
|
||||||
|
mkdir -p ~/.aws
|
||||||
|
cat >>/root/.aws/exports <<EOF
|
||||||
|
export AWS_ACCESS_KEY_ID=
|
||||||
|
export AWS_SECRET_ACCESS_KEY=
|
||||||
|
export GOOGLE_SERVICE_EMAIL="$GCP_BACKEND_SERVICE_EMAIL"
|
||||||
|
export GOOGLE_SERVICE_KEY="$GCP_BACKEND_SERVICE_KEY"
|
||||||
|
export azurebackend2_AZURE_STORAGE_ACCESS_KEY="$AZURE_BACKEND_ACCESS_KEY_2"
|
||||||
|
export azurebackend2_AZURE_STORAGE_ACCOUNT_NAME="$AZURE_BACKEND_ACCOUNT_NAME_2"
|
||||||
|
export azurebackend2_AZURE_STORAGE_ENDPOINT="$AZURE_BACKEND_ENDPOINT_2"
|
||||||
|
export azurebackend_AZURE_STORAGE_ACCESS_KEY="$AZURE_BACKEND_ACCESS_KEY"
|
||||||
|
export azurebackend_AZURE_STORAGE_ACCOUNT_NAME="$AZURE_BACKEND_ACCOUNT_NAME"
|
||||||
|
export azurebackend_AZURE_STORAGE_ENDPOINT="$AZURE_BACKEND_ENDPOINT"
|
||||||
|
export azurebackendmismatch_AZURE_STORAGE_ACCESS_KEY="$AZURE_BACKEND_ACCESS_KEY"
|
||||||
|
export azurebackendmismatch_AZURE_STORAGE_ACCOUNT_NAME="$AZURE_BACKEND_ACCOUNT_NAME"
|
||||||
|
export azurebackendmismatch_AZURE_STORAGE_ENDPOINT="$AZURE_BACKEND_ENDPOINT"
|
||||||
|
export azurenonexistcontainer_AZURE_STORAGE_ACCESS_KEY="$AZURE_BACKEND_ACCESS_KEY"
|
||||||
|
export azurenonexistcontainer_AZURE_STORAGE_ACCOUNT_NAME="$AZURE_BACKEND_ACCOUNT_NAME"
|
||||||
|
export azurenonexistcontainer_AZURE_STORAGE_ENDPOINT="$AZURE_BACKEND_ENDPOINT"
|
||||||
|
export azuretest_AZURE_BLOB_ENDPOINT="$AZURE_BACKEND_ENDPOINT"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
source /root/.aws/exports &> /dev/null
|
||||||
|
cat >>/root/.aws/credentials <<EOF
|
||||||
|
[default]
|
||||||
|
aws_access_key_id = $AWS_S3_BACKEND_ACCESS_KEY
|
||||||
|
aws_secret_access_key = $AWS_S3_BACKEND_SECRET_KEY
|
||||||
|
[default_2]
|
||||||
|
aws_access_key_id = $AWS_S3_BACKEND_ACCESS_KEY_2
|
||||||
|
aws_secret_access_key = $AWS_S3_BACKEND_SECRET_KEY_2
|
||||||
|
[google]
|
||||||
|
aws_access_key_id = $AWS_GCP_BACKEND_ACCESS_KEY
|
||||||
|
aws_secret_access_key = $AWS_GCP_BACKEND_SECRET_KEY
|
||||||
|
[google_2]
|
||||||
|
aws_access_key_id = $AWS_GCP_BACKEND_ACCESS_KEY_2
|
||||||
|
aws_secret_access_key = $AWS_GCP_BACKEND_SECRET_KEY_2
|
||||||
|
EOF
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
fog-aws:1.3.0
|
||||||
|
json
|
||||||
|
mime-types:3.1
|
||||||
|
rspec:3.5
|
|
@ -0,0 +1,3 @@
|
||||||
|
flake8
|
||||||
|
s3cmd==1.6.1
|
||||||
|
yamllint
|
|
@ -0,0 +1,7 @@
|
||||||
|
curl
|
||||||
|
default-jdk
|
||||||
|
libdigest-hmac-perl
|
||||||
|
lsof
|
||||||
|
maven
|
||||||
|
netcat
|
||||||
|
redis-server
|
|
@ -0,0 +1,163 @@
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: "proxy-ci-test-pod"
|
||||||
|
spec:
|
||||||
|
activeDeadlineSeconds: 3600
|
||||||
|
restartPolicy: Never
|
||||||
|
terminationGracePeriodSeconds: 10
|
||||||
|
hostAliases:
|
||||||
|
- ip: "127.0.0.1"
|
||||||
|
hostnames:
|
||||||
|
- "bucketwebsitetester.s3-website-us-east-1.amazonaws.com"
|
||||||
|
containers:
|
||||||
|
- name: aggressor
|
||||||
|
image: {{ images.aggressor }}
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 512Mi
|
||||||
|
limits:
|
||||||
|
cpu: "1"
|
||||||
|
memory: 2Gi
|
||||||
|
volumeMounts:
|
||||||
|
- name: creds
|
||||||
|
readOnly: false
|
||||||
|
mountPath: /root/.aws
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -lc
|
||||||
|
- |
|
||||||
|
buildbot-worker create-worker . $BUILDMASTER:$BUILDMASTER_PORT $WORKERNAME $WORKERPASS
|
||||||
|
buildbot-worker start --nodaemon
|
||||||
|
env:
|
||||||
|
- name: CI
|
||||||
|
value: "true"
|
||||||
|
- name: ENABLE_LOCAL_CACHE
|
||||||
|
value: "true"
|
||||||
|
- name: S3BACKEND
|
||||||
|
value: "{{ vars.S3BACKEND }}"
|
||||||
|
- name: MPU_TESTING
|
||||||
|
value: "{{ vars.MPU_TESTING }}"
|
||||||
|
- name: S3DATA
|
||||||
|
value: "{{ vars.S3DATA }}"
|
||||||
|
- name: CI_PROXY
|
||||||
|
value: "{{ vars.CI_PROXY }}"
|
||||||
|
- name: REPORT_TOKEN
|
||||||
|
value: "report-token-1"
|
||||||
|
- name: REMOTE_MANAGEMENT_DISABLE
|
||||||
|
value: "1"
|
||||||
|
- name: s3
|
||||||
|
image: {{ images.s3 }}
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 512Mi
|
||||||
|
limits:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 1Gi
|
||||||
|
volumeMounts:
|
||||||
|
- name: creds
|
||||||
|
readOnly: false
|
||||||
|
mountPath: /root/.aws
|
||||||
|
- name: certs
|
||||||
|
readOnly: true
|
||||||
|
mountPath: /tmp
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -ec
|
||||||
|
- |
|
||||||
|
# wait for exports to be created
|
||||||
|
sleep 10
|
||||||
|
source /root/.aws/exports || exit 1
|
||||||
|
/usr/src/app/docker-entrypoint.sh npm start
|
||||||
|
env:
|
||||||
|
{% if vars.S3DATA == "multiple" -%}
|
||||||
|
- name: S3_LOCATION_FILE
|
||||||
|
value: "/usr/src/app/tests/locationConfig/locationConfigTests.json"
|
||||||
|
{%- endif %}
|
||||||
|
- name: CI
|
||||||
|
value: "true"
|
||||||
|
- name: CI_PROXY
|
||||||
|
value: "{{ vars.CI_PROXY }}"
|
||||||
|
- name: ENABLE_LOCAL_CACHE
|
||||||
|
value: "true"
|
||||||
|
- name: S3BACKEND
|
||||||
|
value: "{{ vars.S3BACKEND }}"
|
||||||
|
- name: S3DATA
|
||||||
|
value: "{{ vars.S3DATA }}"
|
||||||
|
- name: S3METADATA
|
||||||
|
value: "{{ vars.S3METADATA }}"
|
||||||
|
- name: MONGODB_HOSTS
|
||||||
|
value: "localhost:27018"
|
||||||
|
- name: MONGODB_RS
|
||||||
|
value: "rs0"
|
||||||
|
- name: MPU_TESTING
|
||||||
|
value: "{{ vars.MPU_TESTING }}"
|
||||||
|
- name: REDIS_HOST
|
||||||
|
value: "localhost"
|
||||||
|
- name: REDIS_PORT
|
||||||
|
value: "6379"
|
||||||
|
- name: REPORT_TOKEN
|
||||||
|
value: "report-token-1"
|
||||||
|
- name: REMOTE_MANAGEMENT_DISABLE
|
||||||
|
value: "1"
|
||||||
|
- name: HEALTHCHECKS_ALLOWFROM
|
||||||
|
value: "0.0.0.0/0"
|
||||||
|
{% if vars.S3METADATA == "mongodb" -%}
|
||||||
|
- name: mongo
|
||||||
|
image: scality/ci-mongo:3.4
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
limits:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 512Mi
|
||||||
|
{%- endif %}
|
||||||
|
- name: redis
|
||||||
|
image: redis:alpine
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
limits:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 512Mi
|
||||||
|
{% if vars.CI_PROXY == "true" -%}
|
||||||
|
- name: squid
|
||||||
|
image: scality/ci-squid
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
limits:
|
||||||
|
cpu: 250m
|
||||||
|
memory: 256Mi
|
||||||
|
volumeMounts:
|
||||||
|
- name: certs
|
||||||
|
readOnly: false
|
||||||
|
mountPath: /ssl
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -exc
|
||||||
|
- |
|
||||||
|
mkdir -p /ssl
|
||||||
|
openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 \
|
||||||
|
-subj "/C=US/ST=Country/L=City/O=Organization/CN=CN=scality-proxy" \
|
||||||
|
-keyout /ssl/myca.pem -out /ssl/myca.pem
|
||||||
|
cp /ssl/myca.pem /ssl/CA.pem
|
||||||
|
squid -f /etc/squid/squid.conf -N -z
|
||||||
|
squid -f /etc/squid/squid.conf -NYCd 1
|
||||||
|
{%- endif %}
|
||||||
|
volumes:
|
||||||
|
- name: creds
|
||||||
|
emptyDir: {}
|
||||||
|
- name: certs
|
||||||
|
emptyDir: {}
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
wait_for_local_port() {
|
wait_for_local_port() {
|
||||||
local port=$1
|
local port=$1
|
||||||
local timeout=$2
|
local timeout=$2
|
||||||
|
|
Loading…
Reference in New Issue