Compare commits
2 Commits
developmen
...
feature/CL
Author | SHA1 | Date |
---|---|---|
Thomas Carmet | 5b589eb877 | |
Thomas Carmet | 2a6c7d8099 |
|
@ -0,0 +1,3 @@
|
||||||
|
.git
|
||||||
|
.github
|
||||||
|
node_modules
|
|
@ -0,0 +1,37 @@
|
||||||
|
azurebackend_AZURE_STORAGE_ACCESS_KEY
|
||||||
|
azurebackend_AZURE_STORAGE_ACCOUNT_NAME
|
||||||
|
azurebackend_AZURE_STORAGE_ENDPOINT
|
||||||
|
azurebackend2_AZURE_STORAGE_ACCESS_KEY
|
||||||
|
azurebackend2_AZURE_STORAGE_ACCOUNT_NAME
|
||||||
|
azurebackend2_AZURE_STORAGE_ENDPOINT
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ACCESS_KEY
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ACCOUNT_NAME
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ENDPOINT
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ACCESS_KEY
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ACCOUNT_NAME
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ENDPOINT
|
||||||
|
azuretest_AZURE_BLOB_ENDPOINT
|
||||||
|
b2backend_B2_ACCOUNT_ID
|
||||||
|
b2backend_B2_STORAGE_ACCESS_KEY
|
||||||
|
GOOGLE_SERVICE_EMAIL
|
||||||
|
GOOGLE_SERVICE_KEY
|
||||||
|
AWS_S3_BACKEND_ACCESS_KEY
|
||||||
|
AWS_S3_BACKEND_SECRET_KEY
|
||||||
|
AWS_S3_BACKEND_ACCESS_KEY_2
|
||||||
|
AWS_S3_BACKEND_SECRET_KEY_2
|
||||||
|
AWS_GCP_BACKEND_ACCESS_KEY
|
||||||
|
AWS_GCP_BACKEND_SECRET_KEY
|
||||||
|
AWS_GCP_BACKEND_ACCESS_KEY_2
|
||||||
|
AWS_GCP_BACKEND_SECRET_KEY_2
|
||||||
|
b2backend_B2_STORAGE_ENDPOINT
|
||||||
|
gcpbackend2_GCP_SERVICE_EMAIL
|
||||||
|
gcpbackend2_GCP_SERVICE_KEY
|
||||||
|
gcpbackend2_GCP_SERVICE_KEYFILE
|
||||||
|
gcpbackend_GCP_SERVICE_EMAIL
|
||||||
|
gcpbackend_GCP_SERVICE_KEY
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_EMAIL
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_KEY
|
||||||
|
gcpbackend_GCP_SERVICE_KEYFILE
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_KEYFILE
|
||||||
|
gcpbackendnoproxy_GCP_SERVICE_KEYFILE
|
||||||
|
gcpbackendproxy_GCP_SERVICE_KEYFILE
|
|
@ -0,0 +1,52 @@
|
||||||
|
services:
|
||||||
|
cloudserver:
|
||||||
|
image: ${CLOUDSERVER_IMAGE}
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
- "9990:9990"
|
||||||
|
- "9991:9991"
|
||||||
|
volumes:
|
||||||
|
- /tmp/ssl:/tmp/ # TODO find proper path
|
||||||
|
- ${HOME}/.aws/credentials:/root/.aws/credentials
|
||||||
|
- /tmp/artifacts:/artifacts
|
||||||
|
environment:
|
||||||
|
- CI=true
|
||||||
|
- ENABLE_LOCAL_CACHE=true
|
||||||
|
- REDIS_HOST=redis
|
||||||
|
- REDIS_PORT=6379
|
||||||
|
- REPORT_TOKEN=report-token-1
|
||||||
|
- REMOTE_MANAGEMENT_DISABLE=1
|
||||||
|
- HEALTHCHECKS_ALLOWFROM=0.0.0.0/0
|
||||||
|
- DATA_HOST=0.0.0.0
|
||||||
|
- METADATA_HOST=0.0.0.0
|
||||||
|
- S3BACKEND
|
||||||
|
- S3DATA
|
||||||
|
- MPU_TESTING
|
||||||
|
- S3VAULT
|
||||||
|
- S3_LOCATION_FILE # TODO: set accordingly on action
|
||||||
|
env_file:
|
||||||
|
- creds.env
|
||||||
|
links:
|
||||||
|
- redis
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
extra_hosts:
|
||||||
|
- "bucketwebsitetester.s3-website-us-east-1.amazonaws.com:127.0.0.1"
|
||||||
|
redis:
|
||||||
|
image: redis:alpine
|
||||||
|
squid:
|
||||||
|
profiles: ['ci-proxy']
|
||||||
|
image: scality/ci-squid
|
||||||
|
command: >-
|
||||||
|
sh -c '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'
|
||||||
|
volumes:
|
||||||
|
- /tmp/ssl:/ssl
|
||||||
|
# volumes:
|
||||||
|
# logvolume01: {}
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
set -x #echo on
|
set -x #echo on
|
||||||
set -e #exit at the first error
|
set -e #exit at the first error
|
||||||
|
|
||||||
mkdir -p ~/.aws
|
mkdir -p $HOME/.aws
|
||||||
|
|
||||||
cat >>/root/.aws/credentials <<EOF
|
cat >>$HOME/.aws/credentials <<EOF
|
||||||
[default]
|
[default]
|
||||||
aws_access_key_id = $AWS_S3_BACKEND_ACCESS_KEY
|
aws_access_key_id = $AWS_S3_BACKEND_ACCESS_KEY
|
||||||
aws_secret_access_key = $AWS_S3_BACKEND_SECRET_KEY
|
aws_secret_access_key = $AWS_S3_BACKEND_SECRET_KEY
|
|
@ -0,0 +1,231 @@
|
||||||
|
---
|
||||||
|
name: tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- 'development/**'
|
||||||
|
- 'q/*/**'
|
||||||
|
|
||||||
|
env:
|
||||||
|
# Secrets
|
||||||
|
azurebackend_AZURE_STORAGE_ACCESS_KEY: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCESS_KEY }}
|
||||||
|
azurebackend_AZURE_STORAGE_ACCOUNT_NAME: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCOUNT_NAME }}
|
||||||
|
azurebackend_AZURE_STORAGE_ENDPOINT: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ENDPOINT }}
|
||||||
|
azurebackend2_AZURE_STORAGE_ACCESS_KEY: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCESS_KEY_2 }}
|
||||||
|
azurebackend2_AZURE_STORAGE_ACCOUNT_NAME: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCOUNT_NAME_2 }}
|
||||||
|
azurebackend2_AZURE_STORAGE_ENDPOINT: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ENDPOINT_2 }}
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ACCESS_KEY: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCESS_KEY }}
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ACCOUNT_NAME: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCOUNT_NAME }}
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ENDPOINT: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ENDPOINT }}
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ACCESS_KEY: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCESS_KEY }}
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ACCOUNT_NAME: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCOUNT_NAME }}
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ENDPOINT: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ENDPOINT }}
|
||||||
|
azuretest_AZURE_BLOB_ENDPOINT: "${{ secrets.AZURE_STORAGE_ENDPOINT }}"
|
||||||
|
b2backend_B2_ACCOUNT_ID: "${{ secrets.B2BACKEND_B2_ACCOUNT_ID }}"
|
||||||
|
b2backend_B2_STORAGE_ACCESS_KEY: >-
|
||||||
|
${{ secrets.B2BACKEND_B2_STORAGE_ACCESS_KEY }}
|
||||||
|
GOOGLE_SERVICE_EMAIL: "${{ secrets.GCP_SERVICE_EMAIL }}"
|
||||||
|
GOOGLE_SERVICE_KEY: "${{ secrets.GCP_SERVICE_KEY }}"
|
||||||
|
AWS_S3_BACKEND_ACCESS_KEY: "${{ secrets.AWS_S3_BACKEND_ACCESS_KEY }}"
|
||||||
|
AWS_S3_BACKEND_SECRET_KEY: "${{ secrets.AWS_S3_BACKEND_SECRET_KEY }}"
|
||||||
|
AWS_S3_BACKEND_ACCESS_KEY_2: "${{ secrets.AWS_S3_BACKEND_ACCESS_KEY_2 }}"
|
||||||
|
AWS_S3_BACKEND_SECRET_KEY_2: "${{ secrets.AWS_S3_BACKEND_SECRET_KEY_2 }}"
|
||||||
|
AWS_GCP_BACKEND_ACCESS_KEY: "${{ secrets.AWS_GCP_BACKEND_ACCESS_KEY }}"
|
||||||
|
AWS_GCP_BACKEND_SECRET_KEY: "${{ secrets.AWS_GCP_BACKEND_SECRET_KEY }}"
|
||||||
|
AWS_GCP_BACKEND_ACCESS_KEY_2: "${{ secrets.AWS_GCP_BACKEND_ACCESS_KEY_2 }}"
|
||||||
|
AWS_GCP_BACKEND_SECRET_KEY_2: "${{ secrets.AWS_GCP_BACKEND_SECRET_KEY_2 }}"
|
||||||
|
b2backend_B2_STORAGE_ENDPOINT: "${{ secrets.B2BACKEND_B2_STORAGE_ENDPOINT }}"
|
||||||
|
gcpbackend2_GCP_SERVICE_EMAIL: "${{ secrets.GCP2_SERVICE_EMAIL }}"
|
||||||
|
gcpbackend2_GCP_SERVICE_KEY: "${{ secrets.GCP2_SERVICE_KEY }}"
|
||||||
|
gcpbackend2_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
||||||
|
gcpbackend_GCP_SERVICE_EMAIL: "${{ secrets.GCP_SERVICE_EMAIL }}"
|
||||||
|
gcpbackend_GCP_SERVICE_KEY: "${{ secrets.GCP_SERVICE_KEY }}"
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_EMAIL: >-
|
||||||
|
${{ secrets.GCPBACKENDMISMATCH_GCP_SERVICE_EMAIL }}
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_KEY: >-
|
||||||
|
${{ secrets.GCPBACKENDMISMATCH_GCP_SERVICE_KEY }}
|
||||||
|
gcpbackend_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
||||||
|
gcpbackendnoproxy_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
||||||
|
gcpbackendproxy_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
||||||
|
# Configs
|
||||||
|
ENABLE_LOCAL_CACHE: "true"
|
||||||
|
REPORT_TOKEN: "report-token-1"
|
||||||
|
REMOTE_MANAGEMENT_DISABLE: "1"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
linting-coverage:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '16'
|
||||||
|
cache: 'yarn'
|
||||||
|
- name: install dependencies
|
||||||
|
run: yarn install --ignore-engines --frozen-lockfile
|
||||||
|
- uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: '3.9'
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.cache/pip
|
||||||
|
key: ${{ runner.os }}-pip
|
||||||
|
- name: Install python deps
|
||||||
|
run: pip install flake8
|
||||||
|
- name: Linting
|
||||||
|
run: |
|
||||||
|
yarn run --silent lint -- --max-warnings 0
|
||||||
|
yarn run --silent lint_md
|
||||||
|
flake8 $(git ls-files "*.py")
|
||||||
|
yamllint -c yamllint.yml $(git ls-files "*.yml")
|
||||||
|
- name: Unit Coverage
|
||||||
|
run: |
|
||||||
|
set -ex
|
||||||
|
mkdir -p $CIRCLE_TEST_REPORTS/unit
|
||||||
|
yarn test
|
||||||
|
yarn run test_legacy_location
|
||||||
|
env:
|
||||||
|
S3_LOCATION_FILE: tests/locationConfig/locationConfigTests.json
|
||||||
|
CIRCLE_TEST_REPORTS: /tmp
|
||||||
|
CIRCLE_ARTIFACTS: /tmp
|
||||||
|
CI_REPORTS: /tmp
|
||||||
|
- name: Unit Coverage logs
|
||||||
|
run: find /tmp/unit -exec cat {} \;
|
||||||
|
- name: preparing junit files for upload
|
||||||
|
run: |
|
||||||
|
mkdir -p artifacts/junit
|
||||||
|
find . -name "*junit*.xml" -exec cp {} artifacts/junit/ ";"
|
||||||
|
if: always()
|
||||||
|
- name: Upload files to artifacts
|
||||||
|
uses: scality/action-artifacts@v2
|
||||||
|
with:
|
||||||
|
method: upload
|
||||||
|
url: https://artifacts.scality.net
|
||||||
|
user: ${{ secrets.ARTIFACTS_USER }}
|
||||||
|
password: ${{ secrets.ARTIFACTS_PASSWORD }}
|
||||||
|
source: artifacts
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1.6.0
|
||||||
|
- name: Login to GitHub Registry
|
||||||
|
uses: docker/login-action@v1.10.0
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Login to Registry
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
registry: registry.scality.com
|
||||||
|
username: ${{ secrets.REGISTRY_LOGIN }}
|
||||||
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
|
- name: Build and push cloudserver image
|
||||||
|
uses: docker/build-push-action@v2.7.0
|
||||||
|
with:
|
||||||
|
push: true
|
||||||
|
context: .
|
||||||
|
tags: |
|
||||||
|
ghcr.io/${{ github.repository }}/cloudserver:${{ github.sha }}
|
||||||
|
registry.scality.com/cloudserver-dev/cloudserver:${{ github.sha }}
|
||||||
|
cache-from: type=gha,scope=cloudserver
|
||||||
|
cache-to: type=gha,mode=max,scope=cloudserver
|
||||||
|
|
||||||
|
multiple-backend:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
env:
|
||||||
|
CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}/cloudserver:${{ github.sha }}
|
||||||
|
S3BACKEND: mem
|
||||||
|
S3_LOCATION_FILE: /usr/src/app/tests/locationConfig/locationConfigTests.json
|
||||||
|
S3DATA: multiple
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Setup etc/hosts
|
||||||
|
run: sudo echo "127.0.0.1 bucketwebsitetester.s3-website-us-east-1.amazonaws.com" | sudo tee -a /etc/hosts
|
||||||
|
- name: Setup Credentials
|
||||||
|
run: bash .github/scripts/credentials.bash
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '16'
|
||||||
|
cache: 'yarn'
|
||||||
|
- uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: '3.9'
|
||||||
|
- name: install dependencies
|
||||||
|
run: yarn install --ignore-engines --frozen-lockfile
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.cache/pip
|
||||||
|
key: ${{ runner.os }}-pip
|
||||||
|
- name: Install python deps
|
||||||
|
run: pip install docker-compose
|
||||||
|
- name: Setup CI services
|
||||||
|
run: docker-compose up -d
|
||||||
|
working-directory: .github/docker
|
||||||
|
- name: Run multiple backend test
|
||||||
|
run: yarn run multiple_backend_test
|
||||||
|
env:
|
||||||
|
S3_LOCATION_FILE: tests/locationConfig/locationConfigTests.json
|
||||||
|
- name: Dump logs
|
||||||
|
run: docker-compose logs
|
||||||
|
working-directory: .github/docker
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
file-ft-tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
env:
|
||||||
|
S3BACKEND: file
|
||||||
|
S3VAULT: mem
|
||||||
|
CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}/cloudserver:${{ github.sha }}
|
||||||
|
MPU_TESTING: "yes"
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Setup etc/hosts
|
||||||
|
run: sudo echo "127.0.0.1 bucketwebsitetester.s3-website-us-east-1.amazonaws.com" | sudo tee -a /etc/hosts
|
||||||
|
- name: Setup Credentials
|
||||||
|
run: bash .github/scripts/credentials.bash
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '16'
|
||||||
|
cache: 'yarn'
|
||||||
|
- name: install dependencies
|
||||||
|
run: yarn install --ignore-engines --frozen-lockfile
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.cache/pip
|
||||||
|
key: ${{ runner.os }}-pip
|
||||||
|
- name: Install python deps
|
||||||
|
run: pip install docker-compose
|
||||||
|
- name: Setup CI services
|
||||||
|
run: docker-compose up -d
|
||||||
|
working-directory: .github/docker
|
||||||
|
- name: Run file ft tests
|
||||||
|
run: yarn run ft_test
|
||||||
|
- name: Dump logs
|
||||||
|
run: docker-compose logs
|
||||||
|
working-directory: .github/docker
|
||||||
|
if: always()
|
Loading…
Reference in New Issue