146 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
include:
 | 
						|
  - ./compose.a.yml
 | 
						|
  - ./compose.b.yml
 | 
						|
 | 
						|
services:
 | 
						|
  setup:
 | 
						|
    extends:
 | 
						|
      file: ./compose.tpl.yml
 | 
						|
      service: misskey
 | 
						|
    command: >
 | 
						|
      bash -c "
 | 
						|
        npm install -g pnpm
 | 
						|
        pnpm -F backend i
 | 
						|
        pnpm -F misskey-js i
 | 
						|
        pnpm -F misskey-reversi i
 | 
						|
      "
 | 
						|
 | 
						|
  tester:
 | 
						|
    image: node:20
 | 
						|
    depends_on:
 | 
						|
      a.test:
 | 
						|
        condition: service_healthy
 | 
						|
      misskey.a.test:
 | 
						|
        condition: service_healthy
 | 
						|
      b.test:
 | 
						|
        condition: service_healthy
 | 
						|
      misskey.b.test:
 | 
						|
        condition: service_healthy
 | 
						|
    environment:
 | 
						|
      - NODE_ENV=development
 | 
						|
      - NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/rootCA.crt
 | 
						|
    volumes:
 | 
						|
      - type: bind
 | 
						|
        source: ../package.json
 | 
						|
        target: /misskey/packages/backend/package.json
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../test/resources
 | 
						|
        target: /misskey/packages/backend/test/resources
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ./test
 | 
						|
        target: /misskey/packages/backend/test-federation/test
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../jest.config.cjs
 | 
						|
        target: /misskey/packages/backend/jest.config.cjs
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../jest.config.fed.cjs
 | 
						|
        target: /misskey/packages/backend/jest.config.fed.cjs
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../../misskey-js/built
 | 
						|
        target: /misskey/packages/misskey-js/built
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../../misskey-js/package.json
 | 
						|
        target: /misskey/packages/misskey-js/package.json
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../../../package.json
 | 
						|
        target: /misskey/package.json
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../../../pnpm-lock.yaml
 | 
						|
        target: /misskey/pnpm-lock.yaml
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../../../pnpm-workspace.yaml
 | 
						|
        target: /misskey/pnpm-workspace.yaml
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../../../scripts/dependency-patches
 | 
						|
        target: /misskey/scripts/dependency-patches
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ./certificates/rootCA.crt
 | 
						|
        target: /usr/local/share/ca-certificates/rootCA.crt
 | 
						|
        read_only: true
 | 
						|
    working_dir: /misskey
 | 
						|
    entrypoint: >
 | 
						|
      bash -c '
 | 
						|
        npm install -g pnpm
 | 
						|
        pnpm -F misskey-js i --frozen-lockfile
 | 
						|
        pnpm -F backend i --frozen-lockfile
 | 
						|
        exec "$0" "$@"
 | 
						|
      '
 | 
						|
    command: pnpm -F backend test:fed
 | 
						|
 | 
						|
  daemon:
 | 
						|
    image: node:20
 | 
						|
    depends_on:
 | 
						|
      redis.test:
 | 
						|
        condition: service_healthy
 | 
						|
    volumes:
 | 
						|
      - type: bind
 | 
						|
        source: ../package.json
 | 
						|
        target: /misskey/packages/backend/package.json
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ./daemon.ts
 | 
						|
        target: /misskey/packages/backend/test-federation/daemon.ts
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ./tsconfig.json
 | 
						|
        target: /misskey/packages/backend/test-federation/tsconfig.json
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../../../package.json
 | 
						|
        target: /misskey/package.json
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../../../pnpm-lock.yaml
 | 
						|
        target: /misskey/pnpm-lock.yaml
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../../../pnpm-workspace.yaml
 | 
						|
        target: /misskey/pnpm-workspace.yaml
 | 
						|
        read_only: true
 | 
						|
      - type: bind
 | 
						|
        source: ../../../scripts/dependency-patches
 | 
						|
        target: /misskey/scripts/dependency-patches
 | 
						|
        read_only: true
 | 
						|
    working_dir: /misskey
 | 
						|
    command: >
 | 
						|
      bash -c "
 | 
						|
        npm install -g pnpm
 | 
						|
        pnpm -F backend i --frozen-lockfile
 | 
						|
        pnpm exec tsc -p ./packages/backend/test-federation
 | 
						|
        node ./packages/backend/test-federation/built/daemon.js
 | 
						|
      "
 | 
						|
 | 
						|
  redis.test:
 | 
						|
    image: redis:7-alpine
 | 
						|
    volumes:
 | 
						|
      - type: bind
 | 
						|
        source: ./volumes/redis
 | 
						|
        target: /data
 | 
						|
        bind:
 | 
						|
          create_host_path: true
 | 
						|
    healthcheck:
 | 
						|
      test: redis-cli ping
 | 
						|
      interval: 5s
 | 
						|
      retries: 20
 |