diff options
Diffstat (limited to '.github/workflows/get-api-diff.yml')
| -rw-r--r-- | .github/workflows/get-api-diff.yml | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/.github/workflows/get-api-diff.yml b/.github/workflows/get-api-diff.yml new file mode 100644 index 0000000000..8e3437ad86 --- /dev/null +++ b/.github/workflows/get-api-diff.yml @@ -0,0 +1,186 @@ +# 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@v4.0.0 + 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@v4.0.0 + 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 |