Add comment on PR with PDF link #30
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: Run pipeline | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| permissions: | |
| contents: write | |
| pull-requests: write # Add this for PR comments | |
| # Make sure we only ever run one per branch so we don't have issues pushing | |
| # after running the pipeline | |
| concurrency: | |
| group: calkit-run-${{ github.ref }} | |
| cancel-in-progress: false | |
| jobs: | |
| main: | |
| name: Run | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| # For PRs, checkout the head ref to avoid detached HEAD | |
| ref: ${{ github.head_ref || github.ref_name }} | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Configure Git credentials | |
| run: | | |
| git config user.name github-actions[bot] | |
| git config user.email 41898282+github-actions[bot]@users.noreply.github.com | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Setup uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Setup Miniforge | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| miniforge-version: latest | |
| auto-activate-base: true | |
| conda-remove-defaults: true | |
| - name: Install Calkit | |
| run: uv tool install calkit-python | |
| - name: Restore DVC cache | |
| id: cache-dvc-restore | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: .dvc/cache | |
| key: ${{ runner.os }}-dvc-cache-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-dvc-cache- | |
| - run: calkit config remote-auth | |
| env: | |
| CALKIT_DVC_TOKEN: ${{ secrets.CALKIT_DVC_TOKEN }} | |
| - run: calkit dvc pull | |
| - run: calkit run | |
| # If running on a PR, push to that branch, else push to main | |
| - run: calkit save -am "Run pipeline" | |
| env: | |
| CALKIT_DVC_TOKEN: ${{ secrets.CALKIT_DVC_TOKEN }} | |
| - name: Upload PDF artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: paper-pdf | |
| path: paper/paper.pdf | |
| if-no-files-found: warn | |
| - name: Comment on PR with PDF link | |
| if: github.event_name == 'pull_request' | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| const fs = require('fs'); | |
| if (fs.existsSync('paper/paper.pdf')) { | |
| github.rest.issues.createComment({ | |
| issue_number: context.issue.number, | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| body: '📄 **Pipeline completed!** The generated PDF is available as an artifact in this workflow run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}' | |
| }); | |
| } | |
| - name: Save DVC cache | |
| id: cache-dvc-save | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: .dvc/cache | |
| key: ${{ runner.os }}-dvc-cache-${{ github.sha }} |