mirror of
https://github.com/ONLYOFFICE/server.git
synced 2026-02-10 18:05:07 +08:00
[feature] run s3,fs storage tests in pipeline
This commit is contained in:
97
.github/workflows/fsStorageTests.yml
vendored
Normal file
97
.github/workflows/fsStorageTests.yml
vendored
Normal file
@ -0,0 +1,97 @@
|
||||
name: fs Storage Tests
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '**'
|
||||
paths:
|
||||
- 'tests/integration/withServerInstance/storage.tests.js'
|
||||
- 'Common/sources/storage/**'
|
||||
|
||||
jobs:
|
||||
fs-storage-tests:
|
||||
name: File System Storage
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Caching dependencies
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '16'
|
||||
cache: 'npm'
|
||||
cache-dependency-path: |
|
||||
./npm-shrinkwrap.json
|
||||
./Common/npm-shrinkwrap.json
|
||||
./DocService/npm-shrinkwrap.json
|
||||
|
||||
- name: Install modules
|
||||
run: |
|
||||
npm ci
|
||||
npm --prefix Common ci
|
||||
npm --prefix DocService ci
|
||||
|
||||
- name: Install and start RabbitMQ
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y rabbitmq-server
|
||||
sudo systemctl start rabbitmq-server
|
||||
sudo rabbitmqctl status
|
||||
|
||||
- name: Install and configure PostgreSQL
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y postgresql postgresql-contrib
|
||||
sudo systemctl start postgresql
|
||||
sudo -u postgres psql -c "CREATE USER onlyoffice WITH PASSWORD 'onlyoffice';"
|
||||
sudo -u postgres psql -c "CREATE DATABASE onlyoffice OWNER onlyoffice;"
|
||||
sudo -u postgres psql -c "ALTER USER onlyoffice WITH SUPERUSER;"
|
||||
sudo -u postgres psql -d onlyoffice -f schema/postgresql/createdb.sql
|
||||
|
||||
- name: Creating service configuration
|
||||
run: |
|
||||
mkdir -p Common/config
|
||||
echo '{
|
||||
"storage": {
|
||||
"name": "storage-fs",
|
||||
"fs": {
|
||||
"folderPath": "/tmp/storage",
|
||||
"urlExpires": 900,
|
||||
"secretString": "verysecretstring"
|
||||
},
|
||||
"region": "",
|
||||
"endpoint": "http://localhost/s3",
|
||||
"bucketName": "cache",
|
||||
"storageFolderName": "files",
|
||||
"cacheFolderName": "data",
|
||||
"urlExpires": 604800,
|
||||
"accessKeyId": "",
|
||||
"secretAccessKey": "",
|
||||
"sslEnabled": false,
|
||||
"s3ForcePathStyle": true,
|
||||
"externalHost": "",
|
||||
"useDirectStorageUrls": true
|
||||
},
|
||||
}' > Common/config/local.json
|
||||
|
||||
- name: Create storage directory
|
||||
run: mkdir -p /tmp/storage
|
||||
|
||||
- name: Start server instance
|
||||
run: |
|
||||
cd DocService && npx cross-env NODE_ENV=development-linux NODE_CONFIG_DIR=../Common/config node sources/server.js &
|
||||
sleep 10
|
||||
|
||||
- name: Run storage tests
|
||||
run: |
|
||||
cd ./DocService
|
||||
npx jest ../tests/integration/withServerInstance/storage.tests.js --inject-globals=false --config=../tests/jest.config.js
|
||||
|
||||
- name: Cleanup
|
||||
if: always()
|
||||
run: |
|
||||
pkill -f "node sources/server.js" || true
|
||||
rm -rf /tmp/storage
|
||||
sudo systemctl stop rabbitmq-server
|
||||
sudo systemctl stop postgresql
|
||||
75
.github/workflows/s3storageTests.yml
vendored
Normal file
75
.github/workflows/s3storageTests.yml
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
name: s3 Storage Tests
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '**'
|
||||
paths:
|
||||
- 'tests/integration/withServerInstance/storage.tests.js'
|
||||
- 'Common/sources/storage/**'
|
||||
|
||||
jobs:
|
||||
storage-tests:
|
||||
name: Storage Tests
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Run MinIO docker container
|
||||
run: |
|
||||
docker run --name minio \
|
||||
-p 9000:9000 \
|
||||
-p 9001:9001 \
|
||||
-e "MINIO_ROOT_USER=minioadmin" \
|
||||
-e "MINIO_ROOT_PASSWORD=minioadmin" \
|
||||
-d minio/minio server /data --console-address ":9001"
|
||||
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Caching dependencies
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '16'
|
||||
cache: 'npm'
|
||||
cache-dependency-path: |
|
||||
./npm-shrinkwrap.json
|
||||
./Common/npm-shrinkwrap.json
|
||||
./DocService/npm-shrinkwrap.json
|
||||
|
||||
- name: Install modules
|
||||
run: |
|
||||
npm ci
|
||||
npm --prefix Common ci
|
||||
npm --prefix DocService ci
|
||||
|
||||
- name: Creating storage configuration
|
||||
run: |
|
||||
echo '{
|
||||
"storage": {
|
||||
"name": "storage-s3",
|
||||
"region": "us-east-1",
|
||||
"endpoint": "http://localhost:9000",
|
||||
"accessKeyId": "minioadmin",
|
||||
"secretAccessKey": "minioadmin",
|
||||
"bucket": "cache",
|
||||
"forcePathStyle": true
|
||||
},
|
||||
"persistentStorage": {
|
||||
"name": "storage-s3",
|
||||
"region": "us-east-1",
|
||||
"endpoint": "http://localhost:9000",
|
||||
"accessKeyId": "minioadmin",
|
||||
"secretAccessKey": "minioadmin",
|
||||
"bucket": "cache",
|
||||
"forcePathStyle": true
|
||||
}
|
||||
}' >> Common/config/local.json
|
||||
|
||||
- name: Create MinIO buckets
|
||||
run: |
|
||||
docker exec minio mc alias set myminio http://localhost:9000 minioadmin minioadmin
|
||||
docker exec minio mc mb myminio/cache
|
||||
|
||||
- name: Run storage tests
|
||||
run: |
|
||||
cd ./DocService
|
||||
npx jest ../tests/integration/withServerInstance/storage.tests.js --inject-globals=false --config=../tests/jest.config.js
|
||||
Reference in New Issue
Block a user