Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .. | ||
| README.md | ||
| release.yml | ||
GitHub Actions Workflows
This directory contains the CI/CD pipeline configurations for the SAT-WiSe-25-26 LaTeX document project.
Workflows
1. Build Workflow (makefile.yml)
Purpose: Continuous Integration - Build and test the LaTeX document on every push and pull request.
Triggers:
- Push to
mainbranch - Pull requests to
mainbranch - Manual workflow dispatch
Features:
- Builds the document using Docker Compose
- Verifies PDF generation
- Uploads the PDF as an artifact (30-day retention)
- Uploads build logs on failure for debugging
Artifacts:
SAT-WiSe-25-26-PDF- The compiled PDF documentbuild-logs- LaTeX compilation logs (only on failure)
2. Release Workflow (release.yml)
Purpose: Automated release creation when version tags are pushed.
Triggers:
- Push of tags matching
v*.*.*(e.g.,v1.0.0) - Push of tags matching
release-*(e.g.,release-2024-10)
Features:
- Builds the document with Docker
- Creates a GitHub release
- Attaches versioned PDF to the release
- Generates release notes automatically
- Archives artifacts for 90 days
Artifacts:
SAT-WiSe-25-26_[VERSION].pdf- Versioned PDF in the releaseMain.pdf- Standard PDF name- Release artifacts with 90-day retention
Usage
Triggering a Build
Builds are triggered automatically on:
- Every push to
main - Every pull request
To manually trigger a build:
- Go to Actions tab
- Select "Build LaTeX Document"
- Click "Run workflow"
Creating a Release
To create a new release:
# Create an annotated tag
git tag -a v1.0.0 -m "Release version 1.0.0"
# Push the tag to GitHub
git push origin v1.0.0
The release workflow will automatically:
- Build the document
- Create a GitHub release
- Attach the PDF with version number
- Generate release notes from commits
Accessing Build Artifacts
From a Regular Build:
- Navigate to the Actions tab
- Click on a workflow run
- Scroll to Artifacts section
- Download
SAT-WiSe-25-26-PDF
From a Release:
- Navigate to Releases section
- Find your release
- Download the attached PDF files
Configuration
Environment Requirements
The workflows use Docker to ensure consistent builds:
- Base image:
texlive/texlive:latest - Additional packages:
inkscape(for SVG support) - Build command:
make docker-build
Permissions
The release workflow requires:
contents: write- To create releases and upload assets
Retention Policies
- Regular builds: 30 days
- Release builds: 90 days
- Failed build logs: 7 days
Troubleshooting
Build Failures
If a build fails:
- Check the workflow run logs
- Download the
build-logsartifact - Review
Main.logfor LaTeX errors
Common issues:
- Missing LaTeX packages
- Bibliography compilation errors
- SVG conversion problems
Release Creation Issues
If a release fails:
- Ensure the tag format is correct (
v*.*.*orrelease-*) - Check GitHub permissions for release creation
- Verify the PDF was built successfully
Docker Build Issues
The workflows use Docker Compose which:
- Automatically detects
docker-composevsdocker compose - Builds a custom image with all dependencies
- Mounts the repository as
/datain the container
Maintenance
Updating Dependencies
The project includes dependabot.yml for automatic updates:
- GitHub Actions: Weekly checks
- Docker base images: Monthly checks
Modifying Workflows
When modifying workflows:
- Test changes in a feature branch
- Use
workflow_dispatchfor manual testing - Monitor the Actions tab for results
Best Practices
- Versioning: Use semantic versioning for tags (v1.0.0)
- Release Notes: Write meaningful tag messages
- Artifacts: Download important artifacts before retention expires
- Monitoring: Check workflow runs regularly for failures
Support
For workflow issues:
- Check this documentation
- Review workflow run logs
- Open an issue in the repository
- Contact the maintainer
Last updated: October 2024