Automated CI/CD pipeline that builds a professional resume from Markdown using Pandoc. Generates PDF, DOCX, ODT, and live HTML formats, with optional manual publishing to GitHub Releases and GitHub Pages. Please check an example https://stanislav888.github.io/pandoc-github-builder/Dmitry_Ivanov_C++_Software_Developer_resume_rich.html
Click Fork on the source repository to create your own copy.
git clone https://github.com/<YOUR_GITHUB_USERNAME>/pandoc-github-builder.git
cd pandoc-github-builderAlternatively, use the GitHub web editor to edit all the files within your fork.
Edit resume.md with your own Markdown resume.
Edit settings.env.txt and change FILE_BASENAME:
FILE_BASENAME="Your_Name_Position_Resume"All other variables can remain as is.
git commit -am "Update resume"
git push origin main- Go to Actions → Build Resume → select the latest run.
- Under Artifacts (very bottom), download
Resume.
Any intermediate version can be downloaded from artifacts; no release required.
Both publishing jobs run automatically as part of the workflow on the main branch. No manual trigger is required. Pushes to dev only build and test artifacts; they do not publish anything. Download them as described at #6 above.
When the workflow runs on the main branch, the upload-release job creates or overwrites the resume-latest release under Releases.
The release contains all formats: PDF, DOCX, ODT, HTML. Each run overwrites the previous release — only the latest version is kept.
When the workflow runs on the main branch, the deploy-pages job publishes the generated HTML resume to GitHub Pages and prints direct links to all generated files in the workflow log.
Before the first deployment, GitHub Pages must be enabled and the deployment branches must be allowed. This is a one-time setup per repository.
- Go to Settings → Pages.
- Set Source to GitHub Actions.
- Go to Settings → Environments → github-pages → Deployment branches and tags.
- Add a rule for the
mainbranch.
Without these settings, the deploy-pages job fails with Get Pages site failed or Branch ... is not allowed to deploy.
After this setup, the deploy-pages job publishes the contents of the release/ folder to https://<username>.github.io/<repository>/. Every generated file becomes available at a direct URL formed as <page-url>/<file-name>, for example https://<username>.github.io/<repository>/<file_basename>_rich.html. The workflow log lists the root URL and the direct links to all the files.
A log example:
Root URL: https://stanislav888.github.io/pandoc-github-builder/
Resume (HTML): https://stanislav888.github.io/pandoc-github-builder/Dmitry_Ivanov_C++_Software_Developer_resume_rich.html
Resume (PDF): https://stanislav888.github.io/pandoc-github-builder/Dmitry_Ivanov_C++_Software_Developer_resume.pdf
Resume (DOCX): https://stanislav888.github.io/pandoc-github-builder/Dmitry_Ivanov_C++_Software_Developer_resume.docx
Resume (ODT): https://stanislav888.github.io/pandoc-github-builder/Dmitry_Ivanov_C++_Software_Developer_resume.odt
├── .github/workflows/ci.yml # Pipeline definition
├── resume.md # Your Markdown resume
├── settings.env.txt # Configuration (edit FILE_BASENAME)
├── pandoc-templates/ # Pandoc templates
│ ├── rich.html # Rich HTML template (themes, sidebar)
│ ├── pdf.html # PDF template (for wkhtmltopdf)
│ ├── default.opendocument
│ └── default.ms
└── README.md
- A push to
mainordevtriggers the workflow. settings.env.txtis loaded and required variables are validated.- Pandoc and wkhtmltopdf are installed on a GitHub virtual machine.
- All document formats are generated inside the virtual machine.
- Artifacts are saved (available for 7 days).
- Deployment jobs runs in case of the
mainbranch
This project uses the Pandoc template format.
Only the HTML template is considered production-ready. All other templates are closer to beta versions and still need refinement before they can be used as-is.
| Template | Source | License |
|---|---|---|
rich.html |
Custom (AI‑generated) | MIT |
pdf.html |
Custom (AI‑generated) | MIT |
default.opendocument |
Pandoc stock | GPL-2.0-or-later |
default.ms |
Pandoc stock | GPL-2.0-or-later |
All original content in this repository is distributed under the MIT License (SPDX: MIT).
- Pandoc – Document converter
- wkhtmltopdf – HTML to PDF renderer
- GitHub Actions – Automation platform
P.S. This is a home lab for training CI/CD skills in GitHub Actions and the AI automated coding.