name: Output on: push: branches: [main] paths-ignore: - '**.md' - '**.d.ts' - 'examples/**' - 'private/**' - 'website/**' - '.github/**' - '!.github/workflows/e2e.yml' pull_request: types: [opened, synchronize, reopened] paths-ignore: - '**.md' - '**.d.ts' - 'examples/**' - 'private/**' - 'website/**' - '.github/**' permissions: pull-requests: write env: YARN_ENABLE_GLOBAL_CACHE: false jobs: compare_diff: name: Diff lib folders runs-on: ubuntu-latest env: DIFF_BUILDER: true outputs: diff: ${{ steps.diff.outputs.OUTPUT_DIFF }} steps: - name: Checkout sources uses: actions/checkout@v5 with: fetch-depth: 2 ref: ${{ github.event.pull_request && format('refs/pull/{0}/merge', github.event.pull_request.number) || github.sha }} - 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@v4 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@v4 with: node-version: lts/* - run: corepack yarn install env: # https://docs.cypress.io/guides/references/advanced-installation#Skipping-installation CYPRESS_INSTALL_BINARY: 0 - run: corepack yarn build - 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 install --no-immutable env: # https://docs.cypress.io/guides/references/advanced-installation#Skipping-installation CYPRESS_INSTALL_BINARY: 0 - run: corepack yarn build - 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: Install dformat run: | curl -fsSL https://dprint.dev/install.sh | sh cd /tmp/uppy && echo '{"plugins":[]}' > dprint.json && "$HOME/.dprint/bin/dprint" config add typescript - name: Extract previous version run: cd /tmp/uppy && tar xf /tmp/previousVersion.tar - name: Format previous output code run: cd /tmp/uppy && "$HOME/.dprint/bin/dprint" fmt **/*.js - 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: Format new output code run: cd /tmp/uppy && "$HOME/.dprint/bin/dprint" fmt **/*.js - 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 if: github.event.pull_request uses: marocchino/sticky-pull-request-comment@v2 with: message: |
Diff output files ```diff ${{ steps.diff.outputs.OUTPUT_DIFF || 'No diff' }} ```