adamdicarlo0 is testing out GitHub Actions 🚀 #318
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Merge Checks | |
| run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| lint-and-test: | |
| permissions: | |
| checks: write | |
| pull-requests: write | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: DeterminateSystems/determinate-nix-action@v3 | |
| # Re-use node_modules between runs until package-lock.json changes. | |
| - name: Cache node_modules | |
| id: cache-node_modules | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: node_modules-${{ hashFiles('package-lock.json') }} | |
| # Re-use ~/.elm between runs until elm.json or review/elm.json changes. | |
| # The Elm compiler saves downloaded Elm packages to ~/.elm | |
| - name: Cache ~/.elm | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.elm | |
| key: | | |
| elm-${{ hashFiles( | |
| 'elm.json', | |
| 'review/elm.json', | |
| 'elm-open-api-codegen/elm.json', | |
| 'elm-open-api-codegen/review/elm.json' | |
| )}} | |
| # Install npm packages, unless we restored them from cache. | |
| # Since `npm ci` removes the node_modules folder before running it’s | |
| # important to skip this step if cache was restored. | |
| - name: npm ci | |
| if: steps.cache-node_modules.outputs.cache-hit != 'true' | |
| run: nix develop --command npm ci | |
| # TEMPORARY UNTIL elm-open-api-codegen IS PUBLISHED | |
| - name: TEMP HACK | |
| run: nix develop --command npm run link-local-package | |
| - name: Format | |
| run: nix develop --command npm run format | |
| - name: Review | |
| run: nix develop --command npm run review | |
| - name: Test | |
| run: nix develop --command npm run test | |
| # TEMPORARY UNTIL elm-open-api-codegen IS PUBLISHED | |
| - name: TEMP HACK | |
| run: nix develop --command npm run unlink-local-package | |
| diff-generation: | |
| permissions: | |
| checks: write | |
| pull-requests: write | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout branch | |
| uses: actions/checkout@v4 | |
| with: | |
| path: branch | |
| - name: Checkout main | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: main | |
| path: main | |
| - uses: DeterminateSystems/determinate-nix-action@v3 | |
| # Re-use node_modules between runs until package-lock.json changes. | |
| - name: Cache node_modules (branch) | |
| id: cache-node_modules-branch | |
| uses: actions/cache@v4 | |
| with: | |
| path: branch/node_modules | |
| key: node_modules-${{ hashFiles('branch/package-lock.json') }} | |
| # Re-use node_modules between runs until package-lock.json changes. | |
| - name: Cache node_modules (main) | |
| id: cache-node_modules-main | |
| uses: actions/cache@v4 | |
| with: | |
| path: main/node_modules | |
| key: node_modules-${{ hashFiles('main/package-lock.json') }} | |
| # Re-use ~/.elm between runs until elm.json or review/elm.json changes. | |
| # The Elm compiler saves downloaded Elm packages to ~/.elm. | |
| - name: Cache ~/.elm (both) | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.elm | |
| key: | | |
| elm-${{ hashFiles( | |
| 'main/elm.json', | |
| 'main/review/elm.json', | |
| 'main/elm-open-api-codegen/elm.json', | |
| 'main/elm-open-api-codegen/review/elm.json', | |
| 'branch/elm.json', | |
| 'branch/review/elm.json', | |
| 'branch/elm-open-api-codegen/elm.json', | |
| 'branch/elm-open-api-codegen/review/elm.json' | |
| )}} | |
| # Install npm packages, unless we restored them from cache. | |
| # Since `npm ci` removes the node_modules folder before running it’s | |
| # important to skip this step if cache was restored. | |
| - name: npm ci (branch) | |
| if: steps.cache-node_modules-branch.outputs.cache-hit != 'true' | |
| working-directory: branch | |
| run: nix develop --command npm ci | |
| # Install npm packages, unless we restored them from cache. | |
| # Since `npm ci` removes the node_modules folder before running it’s | |
| # important to skip this step if cache was restored. | |
| - name: npm ci (main) | |
| if: steps.cache-node_modules-main.outputs.cache-hit != 'true' | |
| working-directory: main | |
| run: nix develop --command npm ci | |
| # TEMPORARY UNTIL elm-open-api-codegen IS PUBLISHED | |
| - name: TEMP HACK | |
| run: nix develop --command npm run link-local-package | |
| - name: Generate (branch) | |
| working-directory: branch | |
| run: nix develop --command npm run test:gen | |
| - name: Generate (main) | |
| working-directory: main | |
| run: nix develop --command npm run test:gen || true # We don't want to block on main failing to generate | |
| # TEMPORARY UNTIL elm-open-api-codegen IS PUBLISHED | |
| - name: TEMP HACK | |
| run: nix develop --command npm run unlink-local-package | |
| - name: Diff the outputs | |
| run: | | |
| echo '```diff' > diff.md | |
| diff --ignore-all-space --minimal --new-file --recursive \ | |
| main/generated \ | |
| branch/generated | dd bs=1024 count=30 >> diff.md || true # We ignore diff exiting with a 1 | |
| echo -e '\n```' >> diff.md | |
| - name: Post a comment with the diff | |
| uses: JoseThen/[email protected] | |
| with: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| file_path: './diff.md' |