-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* update to new template * Update README.md * update ci * Revert "update to new template" This reverts commit 8a21c5c. * update original template * update authors * Update FSDigitaltechnik-detailed-version-ws2012-13.tex * fix footer in extended fs
- Loading branch information
1 parent
2d7d4ab
commit bff6dfb
Showing
12 changed files
with
321 additions
and
28 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,5 @@ | ||
name: Inhaltlicher Fehler | ||
description: Hilf uns Fehler zu Verbessern | ||
title: '' | ||
labels: [bug] | ||
assignees: [] | ||
|
||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,34 +2,56 @@ name: CI | |
|
||
on: | ||
push: | ||
branches: [ master ] | ||
branches: [ master, main ] | ||
pull_request: | ||
branches: [ master ] | ||
|
||
branches: [ master, main ] | ||
# Allows you to run this workflow manually from the Actions tab | ||
workflow_dispatch: | ||
|
||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.12.2' | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install -r scripts/requirements.txt | ||
- name: Run pytest | ||
run: pytest | ||
|
||
build: | ||
runs-on: ubuntu-latest | ||
container: makeappdev/uselatex:latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Configure Git safe directory with GITHUB_WORKSPACE | ||
run: git config --global --add safe.directory $GITHUB_WORKSPACE | ||
|
||
- name: Build | ||
run: | | ||
cmake --version; pdflatex --version | ||
mkdir -p build && cd build | ||
cmake .. | ||
make | ||
- name: Prepare Deployment | ||
if: github.ref == 'refs/heads/master' | ||
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' | ||
run: | | ||
mkdir -p export | ||
echo "# This branch is for deployment only" >> export/README.md | ||
cp build/*.pdf export | ||
cp build/git.id export | ||
- name: Deploy | ||
if: github.ref == 'refs/heads/master' | ||
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' | ||
uses: JamesIves/[email protected] | ||
with: | ||
branch: gh-pages | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
name: Update README and LaTeX Build File | ||
|
||
on: | ||
workflow_dispatch: | ||
|
||
jobs: | ||
update-and-create-pr: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.12.2' | ||
|
||
- name: Run update script | ||
run: python scripts/update_files.py | ||
|
||
- name: Configure Git | ||
run: | | ||
git config user.name "github-actions[bot]" | ||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | ||
- name: Commit changes to a new branch | ||
run: | | ||
git checkout -b changes/${{ github.run_id }} | ||
git add . | ||
git commit -m "Apply automated updates" | ||
git push -u origin changes/${{ github.run_id }} | ||
- name: Create Pull Request | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
run: | | ||
gh pr create --base main --head changes/${{ github.run_id }} --title "Specify project URLs and CMake project" --body "Please review the changes applied by the automated script." |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -36,16 +36,69 @@ | |
\definecolor{lightgray}{rgb}{0.8,0.8,0.8} | ||
\definecolor{gray}{rgb}{0.9,0.9,0.9} | ||
|
||
%Kopf- und Fußzeile | ||
\usepackage{fancyhdr} | ||
\pagestyle{fancy} | ||
\fancyhf{} | ||
|
||
\fancyfoot[C]{von Emanuel Regnath ([email protected]), Martin Zellner ([email protected]) und Hendrik Böttcher ([email protected])} | ||
\renewcommand{\headrulewidth}{0.0pt} %obere Linie ausblenden | ||
\renewcommand{\footrulewidth}{0.1pt} %obere Linie ausblenden | ||
\fancyfoot[R]{Stand: \todayV \ um \thistime \ Uhr \qquad \thepage} | ||
\fancyfoot[L]{Homepage: www.latex4ei.de - Fehler bitte \emph{sofort} melden.} | ||
% UPDATE WITHOUT CLASS CHANGE | ||
% ---------------------------------------------------------------------- | ||
|
||
% LastPage | ||
\usepackage{lastpage} | ||
|
||
% Allow hyperlinks | ||
\RequirePackage[pagebackref=true,pdfpagelabels]{hyperref} | ||
|
||
% Colors | ||
\RequirePackage{latex4ei/latex4ei_colors} | ||
\colorlet{col_link}{tum_blue_dark} | ||
\hypersetup{ | ||
colorlinks=true, | ||
linkcolor=col_link, | ||
urlcolor=col_link, | ||
citecolor=col_link, | ||
} | ||
|
||
% set pdfoptions | ||
\AtBeginDocument{ | ||
\hypersetup{ | ||
pdftitle={Digitaltechnik}, | ||
pdfauthor={Emanuel Regnath, Martin Zellner, Hendrik Böttcher}, | ||
pdfcreator={LaTeX4EI template (www.latex4ei.de)}, | ||
pdfkeywords={latex4ei} | ||
} | ||
} | ||
|
||
% Date with git commit number | ||
\newcommand{\themydate}{\today} % Default URL placeholder | ||
\newcommand{\mydate}[1]{\renewcommand{\themydate}{#1}} | ||
|
||
% Header and Footer | ||
\RequirePackage{fancyhdr} | ||
|
||
\pagestyle{fancy} | ||
\fancyhf{} | ||
|
||
\AtBeginDocument{ | ||
\IfFileExists{git.id}{\input{git.id}}{} | ||
\ifdefined\GitNiceDate\mydate{\GitNiceDate\ (git \GitRevision)}\fi | ||
\ifdefined\GitIssuesURL | ||
\ifdefined\setissueslinkurl | ||
\setissueslinkurl{\GitIssuesURL} % Set the actual URL | ||
\fi | ||
\fi | ||
} | ||
|
||
% Define Email | ||
\providecommand{\email}[1]{\href{mailto:#1}{\nolinkurl{#1}}} | ||
|
||
% | ||
\fancyfoot[C]{von Emanuel Regnath (\email{[email protected]}), Martin Zellner (\email{[email protected]}), Hendrik Böttcher (\email{[email protected]})} | ||
\fancyfoot[R]{Stand: \themydate \qquad \thepage/\pageref{LastPage}} | ||
\fancyfoot[L]{Homepage: \url{www.latex4ei.de} -- Fehler bitte \emph{sofort} \href{\issueslinkurl}{melden}.} | ||
|
||
\renewcommand{\headrulewidth}{0.0pt} %obere Linie ausblenden | ||
\renewcommand{\footrulewidth}{0.1pt} %obere Linie ausblenden | ||
|
||
\newcommand{\issueslinkurl}{https://github.com/latex4ei/Allgemein/issues} % Default URL placeholder | ||
\newcommand{\setissueslinkurl}[1]{\renewcommand{\issueslinkurl}{#1}} | ||
% ---------------------------------------------------------------------- | ||
|
||
% Schriftart SANS für bessere Lesbarkeit bei kleiner Schrift | ||
\renewcommand{\familydefault}{\sfdefault} | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -36,16 +36,69 @@ | |
\definecolor{lightgray}{rgb}{0.8,0.8,0.8} | ||
\definecolor{gray}{rgb}{0.9,0.9,0.9} | ||
|
||
%Kopf- und Fußzeile | ||
\usepackage{fancyhdr} | ||
\pagestyle{fancy} | ||
\fancyhf{} | ||
|
||
\fancyfoot[C]{Emanuel Regnath ([email protected]), Martin Zellner ([email protected]), Hendrik Böttcher ([email protected])} | ||
\renewcommand{\headrulewidth}{0.0pt} %obere Linie ausblenden | ||
\renewcommand{\footrulewidth}{0.1pt} %obere Linie ausblenden | ||
\fancyfoot[R]{(Gekürzt, überarbeitet - [email protected]) Stand: \todayV \qquad \thepage} | ||
\fancyfoot[L]{Homepage: www.latex4ei.de - Fehler bitte \emph{sofort} melden.} | ||
% UPDATE WITHOUT CLASS CHANGE | ||
% ---------------------------------------------------------------------- | ||
|
||
% LastPage | ||
\usepackage{lastpage} | ||
|
||
% Allow hyperlinks | ||
\RequirePackage[pagebackref=true,pdfpagelabels]{hyperref} | ||
|
||
% Colors | ||
\RequirePackage{latex4ei/latex4ei_colors} | ||
\colorlet{col_link}{tum_blue_dark} | ||
\hypersetup{ | ||
colorlinks=true, | ||
linkcolor=col_link, | ||
urlcolor=col_link, | ||
citecolor=col_link, | ||
} | ||
|
||
% set pdfoptions | ||
\AtBeginDocument{ | ||
\hypersetup{ | ||
pdftitle={Digitaltechnik}, | ||
pdfauthor={Emanuel Regnath, Martin Zellner, Hendrik Böttcher}, | ||
pdfcreator={LaTeX4EI template (www.latex4ei.de)}, | ||
pdfkeywords={latex4ei} | ||
} | ||
} | ||
|
||
% Date with git commit number | ||
\newcommand{\themydate}{\today} % Default URL placeholder | ||
\newcommand{\mydate}[1]{\renewcommand{\themydate}{#1}} | ||
|
||
% Header and Footer | ||
\RequirePackage{fancyhdr} | ||
|
||
\pagestyle{fancy} | ||
\fancyhf{} | ||
|
||
\AtBeginDocument{ | ||
\IfFileExists{git.id}{\input{git.id}}{} | ||
\ifdefined\GitNiceDate\mydate{\GitNiceDate\ (git \GitRevision)}\fi | ||
\ifdefined\GitIssuesURL | ||
\ifdefined\setissueslinkurl | ||
\setissueslinkurl{\GitIssuesURL} % Set the actual URL | ||
\fi | ||
\fi | ||
} | ||
|
||
% Define Email | ||
\providecommand{\email}[1]{\href{mailto:#1}{\nolinkurl{#1}}} | ||
|
||
% | ||
\fancyfoot[C]{von Emanuel Regnath (\email{[email protected]}), Martin Zellner (\email{[email protected]}), Hendrik Böttcher (\email{[email protected]}) } | ||
\fancyfoot[R]{Stand: \themydate \qquad \thepage/\pageref{LastPage}} | ||
\fancyfoot[L]{Homepage: \url{www.latex4ei.de} -- Fehler bitte \emph{sofort} \href{\issueslinkurl}{melden}.} | ||
|
||
\renewcommand{\headrulewidth}{0.0pt} %obere Linie ausblenden | ||
\renewcommand{\footrulewidth}{0.1pt} %obere Linie ausblenden | ||
|
||
\newcommand{\issueslinkurl}{https://github.com/latex4ei/Allgemein/issues} % Default URL placeholder | ||
\newcommand{\setissueslinkurl}[1]{\renewcommand{\issueslinkurl}{#1}} | ||
% ---------------------------------------------------------------------- | ||
|
||
% Schriftart SANS für bessere Lesbarkeit bei kleiner Schrift | ||
\renewcommand{\familydefault}{\sfdefault} | ||
|
This file contains 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
Empty file.
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
pyfakefs==5.3.5 | ||
pytest==8.1.1 |
Empty file.
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
import pytest | ||
from scripts.update_files import check_tex_file_exists, update_readme_content, update_cmake_content | ||
from pathlib import Path | ||
import os | ||
|
||
@pytest.fixture | ||
def fake_base_path(fs): | ||
"""Fixture to create a base path and mock environment variable.""" | ||
base_path = Path("/test/project") | ||
fs.create_dir(base_path) | ||
os.environ['GITHUB_REPOSITORY'] = 'user/correct_title' | ||
return base_path | ||
|
||
def test_check_tex_file_exists__file_does_not_exist__should_raise(fake_base_path, fs): | ||
repo_name = "correct_title" | ||
fs.create_file(fake_base_path / f"{repo_name}.tex") | ||
check_tex_file_exists(repo_name, fake_base_path) | ||
|
||
with pytest.raises(FileNotFoundError): | ||
check_tex_file_exists("nonexistent_repo", Path(fake_base_path)) | ||
|
||
def test_update_readme_content(fake_base_path, fs): | ||
initial_readme_content = """ | ||
# WrongTitle | ||
Some content in the README file. | ||
[![Actions Status](https://github.com/latex4ei/WrongCheatsheetTemplate/workflows/CI/badge.svg)](https://github.com/latex4ei/WrongCheatsheetTemplate) | ||
## Section | ||
More details here. | ||
""".strip() | ||
fs.create_file(fake_base_path / "README.md", contents=initial_readme_content) | ||
repo_name = "correct_title" | ||
github_repository = 'user/correct_title' | ||
|
||
updated_content = update_readme_content(initial_readme_content, repo_name, github_repository) | ||
|
||
expected_content = """ | ||
# correct_title | ||
Some content in the README file. | ||
[![Actions Status](https://github.com/user/correct_title/workflows/CI/badge.svg)](https://github.com/user/correct_title) | ||
## Section | ||
More details here. | ||
""".strip() | ||
assert updated_content == expected_content, "README.md content was not updated correctly." | ||
|
||
def test_update_cmake_content(fake_base_path, fs): | ||
initial_cmake_content = """ | ||
cmake_minimum_required(VERSION 3.12) | ||
project(WrongProjectName NONE) | ||
# Add the main LaTeX document | ||
add_latex_document( | ||
CheatsheetTemplate.tex | ||
AnotherDoc.tex | ||
FORCE_PDF | ||
IMAGE_DIRS img | ||
DEPENDS writegitid | ||
) | ||
""".strip() | ||
fs.create_file(fake_base_path / "CMakeLists.txt", contents=initial_cmake_content) | ||
repo_name = "correct_title" | ||
|
||
updated_content = update_cmake_content(initial_cmake_content, repo_name) | ||
|
||
expected_content = """ | ||
cmake_minimum_required(VERSION 3.12) | ||
project(correct_title NONE) | ||
# Add the main LaTeX document | ||
add_latex_document( | ||
correct_title.tex | ||
AnotherDoc.tex | ||
FORCE_PDF | ||
IMAGE_DIRS img | ||
DEPENDS writegitid | ||
) | ||
""".strip() | ||
assert updated_content == expected_content, "CMakeLists.txt content was not updated correctly." |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
from pathlib import Path | ||
import re | ||
import os | ||
import sys | ||
|
||
def check_tex_file_exists(repo_name: str, base_path: Path): | ||
"""Check if a .tex file with the same name as the repository exists.""" | ||
tex_file_path = base_path / f"{repo_name}.tex" | ||
if not tex_file_path.exists(): | ||
msg = f"No .tex file found with the name {tex_file_path.name}. File name must match repo name." | ||
raise FileNotFoundError(msg) | ||
|
||
def update_readme_content(content: str, repo_name: str, github_repository: str) -> str: | ||
"""Updates the README.md content.""" | ||
content = re.sub(r'^# .+', f'# {repo_name}', content, count=1, flags=re.MULTILINE) | ||
actions_status_line = f'[![Actions Status](https://github.com/{github_repository}/workflows/CI/badge.svg)](https://github.com/{github_repository})' | ||
return re.sub(r'\[!\[Actions Status\].*', actions_status_line, content) | ||
|
||
def update_cmake_content(content: str, repo_name: str) -> str: | ||
"""Updates the CMakeLists.txt content.""" | ||
content = re.sub(r'project\(([^ ]*)', f'project({repo_name}', content, count=1) | ||
return re.sub(r'^( *)[^\s#].*?\.tex', r'\1' + f'{repo_name}.tex', content, flags=re.MULTILINE, count=1) | ||
|
||
def main(github_repository: str): | ||
repo_name = Path(github_repository).name | ||
base_path = Path(__file__).parent.parent | ||
|
||
check_tex_file_exists(repo_name, base_path) | ||
|
||
readme_path = base_path / 'README.md' | ||
cmake_path = base_path / 'CMakeLists.txt' | ||
|
||
readme_content = readme_path.read_text() | ||
updated_readme_content = update_readme_content(readme_content, repo_name, github_repository) | ||
readme_path.write_text(updated_readme_content) | ||
|
||
cmake_content = cmake_path.read_text() | ||
updated_cmake_content = update_cmake_content(cmake_content, repo_name) | ||
cmake_path.write_text(updated_cmake_content) | ||
|
||
if __name__ == "__main__": | ||
main(os.getenv('GITHUB_REPOSITORY')) |
Oops, something went wrong.