From 25c007c70f71f70ef0cf462a5c336b79c6905361 Mon Sep 17 00:00:00 2001 From: Martin Scheidt Date: Thu, 24 Mar 2022 14:58:28 +0100 Subject: [PATCH] added list of packages for doc compilation and included TeX memory increase for build script --- .github/tex/packages.doc.txt | 53 ++++++++++++++++++++++++++++++ .github/workflows/debug.yml | 2 +- .github/workflows/release.yaml | 26 ++++++++++++--- build.sh | 60 ++++++++++++++++++++++++++-------- 4 files changed, 121 insertions(+), 20 deletions(-) create mode 100644 .github/tex/packages.doc.txt diff --git a/.github/tex/packages.doc.txt b/.github/tex/packages.doc.txt new file mode 100644 index 0000000..33e5ff2 --- /dev/null +++ b/.github/tex/packages.doc.txt @@ -0,0 +1,53 @@ +## -- engine used to compile (pdflatex) +latex-bin +latexmk + +## -- direct dependencies +tikz-trackschematic +koma-script +pgf +xkeyval +etoolbox +adjustbox +booktabs +xltabular +tools +marginnote +babel-english +vhistory +carlisle +xcolor-solarized +enumitem +listings +siunitx +amsmath +hyperref +bookmark +preprint + +## -- lwarp dependencies +lwarp +ifptex + +## -- indirect dependencies +standalone +epstopdf-pkg +ltablex +collectbox +geometry +environ +xpatch +infwarerr +catchfile +ltxcmds +etexcmds +letltxmacro +newunicodechar +upquote +kvoptions +kvsetkeys +comment +xstring +microtype +psnfss +collection-fontsrecommended \ No newline at end of file diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml index 3b1b48f..aeff697 100644 --- a/.github/workflows/debug.yml +++ b/.github/workflows/debug.yml @@ -49,7 +49,7 @@ jobs: uses: paolobrasolin/setup-texlive-action@v1 with: profile-path: ${{ github.workspace }}/.github/tex/profile.minimal.txt - packages-path: ${{ github.workspace }}/.github/tex/packages.test.txt + packages-path: ${{ github.workspace }}/.github/tex/packages.doc.txt # - name: "install tikz-trackschematic" # run: ./build.sh --non-interactive --install-dev diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 9a1c1b8..6fe20aa 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -14,11 +14,26 @@ jobs: release: runs-on: ubuntu-latest steps: + # 1. checkout the repo - name: "checkout" - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it uses: actions/checkout@v2 - ## create varibale ${{ steps.tag.outputs.tag }} + # 2. install TeX Live + - name: "install ghostscript" + run: sudo apt-get install -y ghostscript + + - name: "setup TeX Live (via paolobrasolin)" + uses: paolobrasolin/setup-texlive-action@v1 + with: + profile-path: ${{ github.workspace }}/.github/tex/profile.minimal.txt + packages-path: ${{ github.workspace }}/.github/tex/packages.doc.txt + + # 3. (re-)compile the documentation + - name: "update tikz-trackschematic documentation before release" + run: ./build.sh --non-interactive --memory-increase --compile-doc + + # 4. create package and release notes + ## get varibale ${{ steps.tag.outputs.tag }} - name: "get tag" id: tag uses: dawidd6/action-get-tag@v1 @@ -26,12 +41,10 @@ jobs: # Optionally strip `v` prefix strip_v: false - - name: "update tikz-trackschematic documentation before release" - run: ./build.sh --non-interactive --compile-doc - - name: "create tikz-trackschematic package" run: ./build.sh --non-interactive --release ${{ steps.tag.outputs.tag }} + # 5. publish package as new release on github - name: "create release" id: create_release uses: actions/create-release@v1 @@ -60,3 +73,6 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: id: ${{ steps.create_release.outputs.id }} + + # 6. upload new release to CTAN + ## TODO \ No newline at end of file diff --git a/build.sh b/build.sh index 2980965..834b0d3 100755 --- a/build.sh +++ b/build.sh @@ -37,6 +37,8 @@ install, test or release a package for tikz-trackschematic -u, --uninstall-dev Deinstall dev-package from local TeX Live environment. The -u option overrides any previous -i option. + -x, --memory-increase Increase available TeX memory. + -t, --test Tests the current src/ against the test/. -c, --compile-doc Compile documentation sources. @@ -53,6 +55,7 @@ EOF VERBOSITY=2 # set by cli argument NOINTERACT=0 # set by cli argument INSTALL=0 # set by cli argument +TEXMEMORY=0 # set by cli argument TESTING=0 # set by cli argument COMPILE=0 # set by cli argument SYMBOLOGY=0 # set by cli argument @@ -90,6 +93,9 @@ process_arguments() { -u|--uninstall-dev) INSTALL=2 ;; + -x|--memory-increase) + TEXMEMORY=1 + ;; -t|--test) TESTING=1 ;; @@ -587,20 +593,6 @@ run_compile_documentation() { MEMORY_USAGE=$(grep "words of memory out of" .tex/${NAME}.log | cut -d " " -f2) MEMORY_USAGE=$(($MEMORY_USAGE/1000)) # - ## compiling snipptes.tex may run out of memory! - ## to increase available memory find local texmf.cnf: - # kpsewhich -a texmf.cnf - # returns /usr/local/texlive/2021/texmf.cnf - ## append in /usr/local/texlive/2021/texmf.cnf - # % increase available memory - # main_memory = 12000000 - # extra_mem_bot = 12000000 - # font_mem_size = 12000000 - # pool_size = 12000000 - # buf_size = 12000000 - ## run - # sudo mktexlsr - # if [ $EXIT_CODE = 0 ]; then log_info " - build successful in ${TIME}s and with ${MEMORY_USAGE}k memory." # @@ -869,6 +861,37 @@ remove_dev_files() { fi } +change_tex_memory() { + ## compiling snipptes.tex may run out of memory! + ## to increase available memory find local texmf.cnf: + TEXMF_PATH=$(kpsewhich -a texmf.cnf | awk "NR==1") # default .../texlive/YYYY/texmf.cnf + log_note "Found local texmf.cnf at $TEXMF_PATH" + ## + ## check for already made changes + STATUS=0 + grep -qs '%% \[tikz-trackschematic\] increase available memory' $TEXMF_PATH || STATUS=1 + if [ $STATUS = 0 ]; then + log_note "$TEXMF_PATH has already been modified!" + return 0 + fi + ## + user_confirmation "Do you wish to increase TeX memory by modifying the file $TEXMF_PATH?" + ## increase available memory + echo '%% [tikz-trackschematic] increase available memory' | $rootrun tee -a $TEXMF_PATH >> /dev/null 2>&1 + echo 'main_memory = 12000000' | $rootrun tee -a $TEXMF_PATH >> /dev/null 2>&1 + echo 'extra_mem_bot = 12000000' | $rootrun tee -a $TEXMF_PATH >> /dev/null 2>&1 + echo 'font_mem_size = 12000000' | $rootrun tee -a $TEXMF_PATH >> /dev/null 2>&1 + echo 'pool_size = 12000000' | $rootrun tee -a $TEXMF_PATH >> /dev/null 2>&1 + echo 'buf_size = 12000000' | $rootrun tee -a $TEXMF_PATH >> /dev/null 2>&1 + ## update TeX Live installation + TEXlsr=`which mktexlsr` + if [ $VERBOSITY -ge 3 ]; then + $rootrun $TEXlsr + else + $rootrun $TEXlsr --quiet + fi +} + cleanup() { ## -- cleanup ## from create_release @@ -938,6 +961,15 @@ if [ $INSTALL = 2 ]; then remove_dev_files fi +if [ $TEXMEMORY = 1 ]; then + ## + check_texlive + check_sudo + + ## + change_tex_memory +fi + if [ $TESTING = 1 ]; then ## check_pdflatex