# this name is used in report-api-diff.yml so be careful when change name name: Get api.json from Misskey on: pull_request: branches: - master - develop jobs: get-base: runs-on: ubuntu-latest permissions: contents: read strategy: matrix: node-version: [20.5.1] services: db: image: postgres:13 ports: - 5432:5432 env: POSTGRES_DB: misskey POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_USER: example-misskey-user POSTGRESS_PASS: example-misskey-pass redis: image: redis:7 ports: - 6379:6379 steps: - uses: actions/checkout@v4.1.1 with: repository: ${{ github.event.pull_request.base.repo.full_name }} ref: ${{ github.base_ref }} submodules: true - name: Install pnpm uses: pnpm/action-setup@v2 with: version: 8 run_install: false - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.8.1 with: node-version: ${{ matrix.node-version }} cache: 'pnpm' - run: corepack enable - run: pnpm i --frozen-lockfile - name: Check pnpm-lock.yaml run: git diff --exit-code pnpm-lock.yaml - name: Copy Configure run: cp .config/example.yml .config/default.yml - name: Build run: pnpm build - name : Migrate run: pnpm migrate - name: Launch misskey run: | screen -S misskey -dm pnpm run dev sleep 30s - name: Wait for Misskey to be ready run: | MAX_RETRIES=12 RETRY_DELAY=5 count=0 until $(curl --output /dev/null --silent --head --fail http://localhost:3000) || [[ $count -eq $MAX_RETRIES ]]; do printf '.' sleep $RETRY_DELAY count=$((count + 1)) done if [[ $count -eq $MAX_RETRIES ]]; then echo "Failed to connect to Misskey after $MAX_RETRIES attempts." exit 1 fi - id: fetch name: Get api.json from Misskey run: | RESULT=$(curl --retry 5 --retry-delay 5 --retry-max-time 60 http://localhost:3000/api.json) echo $RESULT > api-base.json - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: api-artifact path: api-base.json - name: Kill Misskey Job run: screen -S misskey -X quit get-head: runs-on: ubuntu-latest permissions: contents: read strategy: matrix: node-version: [20.5.1] services: db: image: postgres:13 ports: - 5432:5432 env: POSTGRES_DB: misskey POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_USER: example-misskey-user POSTGRESS_PASS: example-misskey-pass redis: image: redis:7 ports: - 6379:6379 steps: - uses: actions/checkout@v4.1.1 with: repository: ${{ github.event.pull_request.head.repo.full_name }} ref: ${{ github.head_ref }} submodules: true - name: Install pnpm uses: pnpm/action-setup@v2 with: version: 8 run_install: false - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.8.1 with: node-version: ${{ matrix.node-version }} cache: 'pnpm' - run: corepack enable - run: pnpm i --frozen-lockfile - name: Check pnpm-lock.yaml run: git diff --exit-code pnpm-lock.yaml - name: Copy Configure run: cp .config/example.yml .config/default.yml - name: Build run: pnpm build - name : Migrate run: pnpm migrate - name: Launch misskey run: | screen -S misskey -dm pnpm run dev sleep 30s - name: Wait for Misskey to be ready run: | MAX_RETRIES=12 RETRY_DELAY=5 count=0 until $(curl --output /dev/null --silent --head --fail http://localhost:3000) || [[ $count -eq $MAX_RETRIES ]]; do printf '.' sleep $RETRY_DELAY count=$((count + 1)) done if [[ $count -eq $MAX_RETRIES ]]; then echo "Failed to connect to Misskey after $MAX_RETRIES attempts." exit 1 fi - id: fetch name: Get api.json from Misskey run: | RESULT=$(curl --retry 5 --retry-delay 5 --retry-max-time 60 http://localhost:3000/api.json) echo $RESULT > api-head.json - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: api-artifact path: api-head.json - name: Kill Misskey Job run: screen -S misskey -X quit save-pr-number: runs-on: ubuntu-latest steps: - name: Save PR number env: PR_NUMBER: ${{ github.event.number }} run: | echo "$PR_NUMBER" > ./pr_number - uses: actions/upload-artifact@v3 with: name: api-artifact path: pr_number