summaryrefslogtreecommitdiff
path: root/.github/workflows/get-api-diff.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/get-api-diff.yml')
-rw-r--r--.github/workflows/get-api-diff.yml186
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