Skip to content

Commit

Permalink
meta: add output-watcher GHA to help check output diff (#4868)
Browse files Browse the repository at this point in the history
  • Loading branch information
aduh95 authored Jan 17, 2024
1 parent cecd68f commit 71b6511
Showing 1 changed file with 87 additions and 0 deletions.
87 changes: 87 additions & 0 deletions .github/workflows/output-watcher.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Compare JS output

on:
pull_request_target:
# We want all branches so we configure types to be the GH default again
types: [opened, synchronize, reopened]
paths:
- 'packages/@uppy/*/src/**/*'
- '.github/workflows/output-watcher.yml'

permissions:
pull-requests: write
env:
YARN_ENABLE_GLOBAL_CACHE: false

jobs:
compare_diff:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
with:
fetch-depth: 2
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- run: git reset HEAD^ --hard
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run:
echo "dir=$(corepack yarn config get cacheFolder)" >> $GITHUB_OUTPUT

- uses: actions/cache@v3
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: lts/*
- name: Install dependencies
run:
corepack yarn workspaces focus $(corepack yarn workspaces list --json
| jq -r .name | awk '/^@uppy-example/{ next } { if ($0!="uppy.io")
print $0 }')
env:
# https://docs.cypress.io/guides/references/advanced-installation#Skipping-installation
CYPRESS_INSTALL_BINARY: 0
- run: corepack yarn build:lib
- name: Store output file
run: tar cf /tmp/previousVersion.tar packages/@uppy/*/lib
- name: Fetch source from the PR
run: git checkout FETCH_HEAD -- packages
- run: corepack yarn build:lib
- name: Store output file
run: tar cf /tmp/newVersion.tar packages/@uppy/*/lib
- name: Setup git
run: |
git config --global user.email "actions@github.com"
git config --global user.name "GitHub Actions"
git init /tmp/uppy
echo '*.map' > /tmp/uppy/.gitignore
- name: Extract previous version
run: cd /tmp/uppy && tar xf /tmp/previousVersion.tar
- name: Commit previous version
run: cd /tmp/uppy && git add -A . && git commit -m 'previous version'
- name: Extract new version
run: cd /tmp/uppy && tar xf /tmp/newVersion.tar
- name: Build diff
id: diff
run: |
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "OUTPUT_DIFF<<$EOF" >> "$GITHUB_OUTPUT"
cd /tmp/uppy && git --no-pager diff >> "$GITHUB_OUTPUT"
echo "$EOF" >> "$GITHUB_OUTPUT"
- name: Add/update comment
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
<details><summary>Diff output files</summary>
```diff
${{ steps.diff.outputs.OUTPUT_DIFF || 'No diff' }}
```
</details>

0 comments on commit 71b6511

Please sign in to comment.