Skip to content

Create code pngs

Create code pngs #13

Workflow file for this run

name: Build Beamer Presentation
on:
push:
tags:
- "v*"
pull_request:
branches:
- main
permissions:
contents: write
jobs:
compile-latex:
runs-on: ubuntu-latest
steps:
- name: Check out the repository
uses: actions/checkout@v4
- name: Install minimal TeX Live packages
run: |
sudo apt-get update -y
sudo apt-get install -y \
texlive-latex-base \
texlive-latex-recommended \
texlive-fonts-recommended \
texlive-latex-extra \
texlive-lang-czechslovak
- name: Compile Beamer Presentation
run: |
pdflatex -file-line-error -output-directory=presentation presentation/prezentace.tex
pdflatex -file-line-error -output-directory=presentation presentation/prezentace.tex
- name: Create artifacts
uses: actions/upload-artifact@v4
with:
name: prezentace
path: presentation/prezentace.pdf
create-release:
runs-on: ubuntu-latest
needs: compile-latex
if: github.ref == 'refs/tags/v*'
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: prezentace
- name: Create release with compiled presentation (tag push only)
uses: softprops/action-gh-release@v2
with:
files: prezentace.pdf
comment-on-pr:
runs-on: ubuntu-latest
needs: compile-latex
if: github.event_name == 'pull_request'
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: prezentace
- name: Comment on pull request with compiled presentation
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
const { createComment } = require('@actions/github').context.payload.issue.comments;
const { context } = require('@actions/github');
const { owner, repo } = context.repo;
const { number } = context.issue;
const body = fs.readFileSync('prezentace.pdf', 'base64');
const octokit = require('@octokit/rest')();
octokit.authenticate({
type: 'token',
token: process.env.GITHUB_TOKEN,
});
octokit.issues.createComment({
owner,
repo,
issue_number: number,
body: `Compiled presentation: ![prezentace.pdf](data:application/pdf;base64,${body})`,
});