diff --git a/.github/workflows/dependency-diff.yml b/.github/workflows/dependency-diff.yml new file mode 100644 index 0000000..d7bade2 --- /dev/null +++ b/.github/workflows/dependency-diff.yml @@ -0,0 +1,73 @@ +name: Dependency Diff + +on: + pull_request: + branches: [main] + +jobs: + build-base: + name: Pack base branch + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + ref: main + - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + with: + node-version: 22 + cache: pnpm + - run: pnpm install --frozen-lockfile --ignore-scripts + - run: pnpm run build + - run: pnpm pack --pack-destination ./base-packs + - uses: actions/upload-artifact@v4 + with: + name: base-packages + path: ./base-packs/*.tgz + + build-pr: + name: Pack PR branch + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + with: + node-version: 22 + cache: pnpm + - run: pnpm install --frozen-lockfile --ignore-scripts + - run: pnpm run build + - run: pnpm pack --pack-destination ./source-packs + - uses: actions/upload-artifact@v4 + with: + name: source-packages + path: ./source-packs/*.tgz + + diff-dependencies: + name: Diff dependencies + runs-on: ubuntu-latest + needs: [build-base, build-pr] + permissions: + contents: read + pull-requests: write + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + fetch-depth: 0 + - uses: actions/download-artifact@v4 + with: + name: base-packages + path: ./base-packs + - uses: actions/download-artifact@v4 + with: + name: source-packages + path: ./source-packs + - uses: e18e/action-dependency-diff@8e9b8c1957ab066d36235a43f4c1ff1522e1bdbc # v1.6.1 + with: + base-packages: './base-packs/*.tgz' + source-packages: './source-packs/*.tgz' + pack-size-threshold: -1