You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`CV PDF preview built successfully from commit \`${headSha}\`. Download it from the workflow run artifacts (expires per repo artifact retention settings):`,
57
+
runUrl,
58
+
'',
59
+
`<sub>Last updated by run #${context.runNumber}.</sub>`,
60
+
].join('\n');
61
+
62
+
const { owner, repo } = context.repo;
63
+
const issue_number = context.issue.number;
64
+
65
+
// List (with pagination) every comment on this PR and look for
66
+
// one we posted previously, identified by the hidden marker.
Copy file name to clipboardExpand all lines: README.md
+71-10Lines changed: 71 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,23 +8,84 @@ Personal homepage + LaTeX CV in one repo.
8
8
9
9
## Quick Start
10
10
11
-
1. Edit `main.tex` for the LaTeX CV content
12
-
2. Edit `docs/index.html` / `docs/styles.css` for the website
13
-
3. Push to `main` — a GitHub Actions workflow compiles `main.tex` and commits the PDF to `docs/RubenBrito-CV.pdf` automatically
14
-
4. Opening a pull request against `main` that touches `main.tex` triggers a second workflow that compiles the PDF and uploads it as a downloadable build artifact, so it can be reviewed before merging
11
+
All CV content lives in a single file, `content/cv.json`. The website and the
12
+
LaTeX CV are generated from it — **never edit `docs/index.html` or `main.tex` by
13
+
hand**, your changes will be overwritten on the next build.
14
+
15
+
1. Edit `content/cv.json`
16
+
2. Run `npm run build` — regenerates `docs/index.html` and `main.tex`
17
+
3. Commit both the source and the generated files
18
+
4. Push to `sandbox`, then open a pull request to `main`
-**docs/index.html** - website in English, built from `content/cv.json`
51
+
-**docs/es/index.html** - Spanish version, same source
52
+
-**docs/robots.txt**, **docs/sitemap.xml** - built from the site URL in `content/cv.json`
53
+
-**main.tex** - LaTeX CV, built from `content/cv.json`
54
+
-**docs/RubenBrito-CV.pdf** - compiled by GitHub Actions from `main.tex`
55
+
-**docs/assets/cv-preview.png** - first page of the PDF, shown as a thumbnail on the site
56
+
57
+
### Workflows
58
+
59
+
-**.github/workflows/verify-build.yml** - fails if the generated files are out of sync with `content/cv.json`, or if an internal link or anchor is broken
60
+
-**.github/workflows/compile-latex.yml** - compiles the PDF and publishes it to `docs/` on every push to `main`
61
+
-**.github/workflows/pr-preview-pdf.yml** - compiles the PDF on pull requests to `main` and uploads it as a review artifact
62
+
63
+
## Localisation
64
+
65
+
The site is bilingual. English is served at the site root, Spanish at `/es/`,
66
+
with `hreflang` alternates and a per-locale canonical. Both come from the same
67
+
`content/cv.json`: text fields are keyed by locale and fall back to English
68
+
when a translation is missing, so a partial translation still builds.
69
+
70
+
The PDF is English only.
71
+
72
+
## Branches
73
+
74
+
Work happens on `sandbox` and reaches `main` through a pull request. `main` is
75
+
what GitHub Pages serves.
76
+
77
+
## Maintenance note: the PDF push token
78
+
79
+
`compile-latex.yml` pushes the compiled PDF back to `main` using
80
+
`secrets.PDF_PUSH_TOKEN`, a fine-grained PAT. It exists because the repository
81
+
ruleset requiring pull requests on `main` cannot be bypassed by the default
82
+
`GITHUB_TOKEN` - GitHub evaluates ruleset bypass against real actor identities,
83
+
not the ephemeral Actions token.
84
+
85
+
**This PAT expires.** When it does, the workflow fails with a push permission
86
+
error that does not mention expiry. Replacing it with a GitHub App installation
87
+
token (`actions/create-github-app-token`) added to the ruleset bypass list
88
+
would remove the expiry, at the cost of creating and installing an App.
0 commit comments