✨ Webdav connector to the Twake Drive #327
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: | |
- release/* | |
pull_request: | |
branches: [main] | |
paths: | |
- "tdrive/backend/node/**" | |
- "tdrive/frontend/**" | |
- "tdrive/connectors/onlyoffice-connector/**" | |
- "tdrive/backend/utils/ldap-sync/**" | |
- "tdrive/backend/utils/nextcloud-migration/**" | |
jobs: | |
setup: | |
name: Setup jobs | |
runs-on: ubuntu-latest | |
outputs: | |
changes: ${{ steps.filter.outputs.changes }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dorny/paths-filter@v3 | |
id: filter | |
with: | |
filters: | | |
backend: | |
- "tdrive/backend/node/**" | |
frontend: | |
- "tdrive/frontend/**" | |
onlyoffice-connector: | |
- "tdrive/connectors/onlyoffice-connector/**" | |
ldap-sync: | |
- "tdrive/backend/utils/ldap-sync/**" | |
nextcloud-migration: | |
- "tdrive/backend/utils/nextcloud-migration/**" | |
lint-backend: | |
runs-on: ubuntu-latest | |
if: contains(needs.setup.outputs.changes, 'backend') | |
needs: | |
- setup | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Prettier code style check | |
run: | | |
cd tdrive | |
docker compose -f docker-compose.tests.yml run -e NODE_OPTIONS=--unhandled-rejections=warn node npm run lint:prettier | |
- name: Lint | |
run: | | |
cd tdrive | |
docker compose -f docker-compose.tests.yml run -e NODE_OPTIONS=--unhandled-rejections=warn node npm run lint | |
test-backend: | |
runs-on: ubuntu-latest | |
if: contains(needs.setup.outputs.changes, 'backend') | |
needs: | |
- setup | |
steps: | |
- uses: actions/checkout@v4 | |
- name: e2e-mongo-s3-test | |
run: | | |
cd tdrive | |
docker compose -f docker-compose.tests.yml run --rm -e NODE_OPTIONS="--unhandled-rejections=warn --experimental-vm-modules" node npm run test:all | |
docker compose -f docker-compose.tests.yml down | |
- name: e2e-opensearch-test | |
run: | | |
cd tdrive | |
docker compose -f docker-compose.dev.tests.opensearch.yml up -d --force-recreate opensearch-node1 postgres node | |
sleep 60 | |
docker compose -f docker-compose.dev.tests.opensearch.yml logs | |
docker compose -f docker-compose.dev.tests.opensearch.yml run -e NODE_OPTIONS=--unhandled-rejections=warn -e SEARCH_DRIVER=opensearch -e DB_DRIVER=postgres -e PUBSUB_TYPE=local node npm run test:all | |
docker compose -f docker-compose.dev.tests.opensearch.yml down | |
build-frontend: | |
runs-on: ubuntu-latest | |
if: contains(needs.setup.outputs.changes, 'frontend') | |
needs: | |
- setup | |
env: | |
FRONTEND_ENV: ${{ secrets.FRONTEND_ENV }} | |
strategy: | |
matrix: | |
node-version: [16.x] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- run: cd tdrive/frontend/ && yarn install | |
- run: cp tdrive/frontend/src/app/environment/environment.ts.dist tdrive/frontend/src/app/environment/environment.ts | |
- if: ${{ env.FRONTEND_ENV }} | |
run: echo ${{ secrets.FRONTEND_ENV }} > tdrive/frontend/src/app/environment/environment.ts | |
- run: cd tdrive/frontend/ && yarn test | |
- run: cd tdrive/frontend/ && yarn build | |
- name: Upload frontend build artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: frontend-build | |
path: tdrive/frontend/build/ | |
build-onlyoffice-connector: | |
runs-on: ubuntu-latest | |
if: contains(needs.setup.outputs.changes, 'onlyoffice-connector') | |
needs: | |
- setup | |
strategy: | |
matrix: | |
node-version: [16.x] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Install dependencies and build | |
run: | | |
cd tdrive/connectors/onlyoffice-connector | |
npm i | |
npm run build --if-present | |
npm run lint | |
build-ldap-sync: | |
runs-on: ubuntu-20.04 | |
if: contains(needs.setup.outputs.changes, 'ldap-sync') | |
needs: | |
- setup | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build ldap sync | |
run: cd tdrive/backend/utils/ldap-sync && npm i && npm run build | |
build-nextcloud-migration: | |
runs-on: ubuntu-20.04 | |
if: contains(needs.setup.outputs.changes, 'nextcloud-migration') | |
needs: | |
- setup | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build Nextcloud migration | |
run: cd tdrive/backend/utils/nextcloud-migration && npm i && npm run build |