name: Test (federation) on: push: branches: - master - develop paths: - packages/backend/** - packages/misskey-js/** - .github/workflows/test-federation.yml pull_request: paths: - packages/backend/** - packages/misskey-js/** - .github/workflows/test-federation.yml workflow_dispatch: jobs: test: name: Federation test runs-on: ubuntu-latest strategy: matrix: node-version-file: - .node-version - .github/min.node-version steps: - uses: actions/checkout@v6 with: submodules: true - name: Setup pnpm uses: pnpm/action-setup@v6.0.9 - name: Install FFmpeg run: | sudo apt install -y ffmpeg - name: Use Node.js uses: actions/setup-node@v6.4.0 with: node-version-file: ${{ matrix.node-version-file }} cache: 'pnpm' - name: Build Misskey run: | pnpm i --frozen-lockfile pnpm build - name: Setup run: | echo "NODE_VERSION=$(cat ${{ matrix.node-version-file }})" >> $GITHUB_ENV cd packages/backend/test-federation bash ./setup.sh sudo chmod 644 ./certificates/*.test.key - name: Start servers id: start_servers continue-on-error: true # https://github.com/docker/compose/issues/1294#issuecomment-374847206 run: | cd packages/backend/test-federation docker compose up -d --scale tester=0 - name: Print start_servers error if: ${{ steps.start_servers.outcome == 'failure' }} run: | cd packages/backend/test-federation docker compose logs | tail -n 300 exit 1 - name: Test run: | cd packages/backend/test-federation docker compose run --no-deps tester - name: Log if: always() run: | cd packages/backend/test-federation docker compose logs - name: Stop servers if: always() run: | cd packages/backend/test-federation docker compose down