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 jobs: test: runs-on: ubuntu-latest strategy: matrix: node-version: [22.11.0] steps: - uses: actions/checkout@v4 with: submodules: true - name: Install pnpm uses: pnpm/action-setup@v4 - name: Install FFmpeg run: | for i in {1..3}; do echo "Attempt $i: Installing FFmpeg..." curl -s -L https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz -o ffmpeg.tar.xz && \ tar -xf ffmpeg.tar.xz && \ mv ffmpeg-*-static/ffmpeg /usr/local/bin/ && \ mv ffmpeg-*-static/ffprobe /usr/local/bin/ && \ rm -rf ffmpeg.tar.xz ffmpeg-*-static/ && \ break || sleep 10 if [ $i -eq 3 ]; then echo "Failed to install FFmpeg after 3 attempts" exit 1 fi done - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4.0.3 with: node-version: ${{ matrix.node-version }} cache: 'pnpm' - name: Build Misskey run: | corepack enable && corepack prepare pnpm i --frozen-lockfile pnpm build - name: Setup run: | cd packages/backend/test-federation bash ./setup.sh sudo chmod 644 ./certificates/*.test.key - name: Start servers # https://github.com/docker/compose/issues/1294#issuecomment-374847206 run: | cd packages/backend/test-federation docker compose up -d --scale tester=0 - name: Test run: | cd packages/backend/test-federation docker compose run --no-deps tester - name: Stop servers run: | cd packages/backend/test-federation docker compose down