switch for automated CTAN upload to ctan-o-mat

master
Martin Scheidt 2022-03-29 23:55:43 +02:00
parent 2683bf27c2
commit e64e57d728
5 changed files with 157 additions and 52 deletions

View File

@ -1,6 +1,7 @@
## -- engine used to compile (pdflatex)
latex-bin
latexmk
ctan-o-mat
## -- direct dependencies
tikz-trackschematic

125
.github/tex/tikz-trackschematic.pkg vendored Normal file
View File

@ -0,0 +1,125 @@
% This is a description file for ctan-o-mat.
% It manages uploads of a package to
% CTAN -- the Comprehensive TeX Archive Network.
%
% The syntax is roughly oriented towards (La)TeX.
% Two form of the macros are used. The simple macros take one argument
% in braces. Here the argument may not contain embedded macros.
%
% The second form uses an environment enclosed in \begin{}/\end{}.
% In the long text fields logo macros can be used.
%
% You should enter your values between the begin and the end of the
% named type.
% -------------------------------------------------------------------------
% This field contains the CTAN id of the package.
% The value is optional.
% The value is restricted to 32 characters.
\pkg{tikz-trackschematic}
% -------------------------------------------------------------------------
% This field contains the version of the package.
% The value is optional.
% The value is restricted to 32 characters.
\version{}%%[SCRIPT]
% -------------------------------------------------------------------------
% This field contains the name of the author(s).
% The value is optional.
% The value is restricted to 128 characters.
\author{Martin Scheidt}
% -------------------------------------------------------------------------
% This field contains the email address of the uploader.
% The value is an email address.
% The value is restricted to 255 characters.
\email{m.scheidt@tu-braunschweig.de}
% -------------------------------------------------------------------------
% This field contains the name of the uploader.
% The value is restricted to 255 characters.
\uploader{Martin Scheidt (via github actions)}
% -------------------------------------------------------------------------
% This field contains the directory on CTAN.
% The value is optional.
% The value is restricted to 255 characters.
\ctanPath{/graphics/pgf/contrib/tikz-trackschematic}
% -------------------------------------------------------------------------
% This field contains the license.
% The value is optional.
% The value is restricted to 2048 characters.
% Multiple values are allowed.
\license{isc}
% -------------------------------------------------------------------------
% This field contains the URL of the home page.
% The value is optional.
% The value is a URL.
% The value is restricted to 255 characters.
% Multiple values are allowed.
\home{https://www.railtoolkit.org/projects/tikz-trackschematic/}
% -------------------------------------------------------------------------
% This field contains the URL of the bug tracker.
% The value is optional.
% The value is a URL.
% The value is restricted to 255 characters.
% Multiple values are allowed.
\bugtracker{https://github.com/railtoolkit/tikz-trackschematic/issues}
% -------------------------------------------------------------------------
% This field contains the support channel.
% The value is optional.
% The value is a URL.
% The value is restricted to 255 characters.
% Multiple values are allowed.
\support{}
% -------------------------------------------------------------------------
% This field contains the version management.
% The value is optional.
% The value is a URL.
% The value is restricted to 255 characters.
% Multiple values are allowed.
\repository{https://github.com/railtoolkit/tikz-trackschematic}
% -------------------------------------------------------------------------
% This field contains the developer's channel.
% The value is optional.
% The value is a URL.
% The value is restricted to 255 characters.
% Multiple values are allowed.
\development{}
% -------------------------------------------------------------------------
% This field contains the update indicator; true for update.
% The value is optional.
% The value is restricted to 8 characters.
\update{true}
% -------------------------------------------------------------------------
% This field contains the topics id.
% The value is optional.
% The value is restricted to 1024 characters.
% Multiple values are allowed.
\topic{}
% -------------------------------------------------------------------------
% This field contains the text for the mail announcement.
% The value is optional.
% The value is restricted to 8192 characters.
\begin{announcement}
%RELEASE-NOTES%%[SCRIPT]
\end{announcement}
% -------------------------------------------------------------------------
% This field contains the one-liner for the package.
% The value is optional.
% The value is restricted to 128 characters.
\summary{A TikZ library for creating track diagrams in railways}
% -------------------------------------------------------------------------
% This field contains the descriptive abstract for the package.
% The value is optional.
% The value is restricted to 4096 characters.
\begin{description}
This TikZ library is a toolbox of symbols geared primarily towards creating track schematic for either research or educational purposes. It provides a TikZ frontend to some of the symbols which may be needed to describe situations and layouts in railway operation. The library is divided into sublibraries: topology, trafficcontrol, vehicles, constructions, electrics, symbology, and measures.
\end{description}
% -------------------------------------------------------------------------
% This field contains the note to the CTAN upload managers.
% The value is optional.
% The value is restricted to 2048 characters.
\begin{note}
Uploaded automatically by ctan-o-mat (via github actions)
\end{note}
% -------------------------------------------------------------------------
% This field contains the archive file.
% The value is the file name of the archive to be uploaded.
% It may have a relative or absolute directory.
\file{}%%[SCRIPT]

View File

@ -1,40 +0,0 @@
### github action to make and publish a release
##
name: "CTAN upload validation"
## Controls when the workflow will run
on:
## Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
## A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
validate:
runs-on: ubuntu-latest
steps:
# 1. checkout the repo
- name: "checkout"
uses: actions/checkout@v2
# 2. create package for testing
- name: "create an old tikz-trackschematic package"
run: ./build.sh --non-interactive --release v0.7.0
# 3.
- name: CTAN submit validation
uses: paolobrasolin/ctan-submit-action@v1
with:
file_path: tikz-trackschematic-v0.7.0.zip
version: 1.1
action: validate
fields: |
pkg: "tikz-trackschematic"
summary: "A TikZ library for creating track diagrams in railways"
description: "This TikZ library is a toolbox of symbols geared primarily towards creating track schematic for either research or educational purposes. It provides a TikZ frontend to some of the symbols which may be needed to describe situations and layouts in railway operation. The library is divided into sublibraries: topology, trafficcontrol, vehicles, constructions, electrics, symbology, and measures."
license: isc
repository: https://github.com/railtoolkit/tikz-trackschematic
author: "Martin Scheidt"
uploader: "Martin Scheidt (via github CI)"
email: m.scheidt@tu-braunschweig.de
update: true
version: v0.7.0

View File

@ -75,4 +75,5 @@ jobs:
id: ${{ steps.create_release.outputs.id }}
# 6. upload new release to CTAN
## TODO
- name: CTAN submit
run: ctan-o-mat --verbose --submit .github/tex/tikz-trackschematic.pkg

View File

@ -568,8 +568,8 @@ create_release_notes() {
## -- create release note as excerpt from CHANGELOG.md
# determine beginning and end in CHANGELOG.md
TOP=$(grep -n "Version \[$VERSION_NUM\]" CHANGELOG.md | cut -d: -f1)
awk "NR>$TOP" CHANGELOG.md > release-note-tmp.md
BOTTOM=$(grep -n -m 1 "## Version" release-note-tmp.md | cut -d: -f1)
awk "NR>$TOP" CHANGELOG.md > release-note.tmp.md
BOTTOM=$(grep -n -m 1 "## Version" release-note.tmp.md | cut -d: -f1)
BOTTOM=$(( $TOP + $BOTTOM ))
BOTTOM=$(( $BOTTOM - 2 ))
TOP=$(( $TOP + 1 ))
@ -578,6 +578,19 @@ create_release_notes() {
sedi "s/###/##/g" release-note-$VERSION_STR.md
}
create_ctan_configuration() {
# modify the file .github/tex/tikz-trackschematic.pkg for ctan-o-mat
# 1. replace \version{}%%[SCRIPT]
sed -i".backup" -e"s/version{}%%\[SCRIPT\]/version{$DATE $VERSION_STR}/g" .github/tex/tikz-trackschematic.pkg
# 2. replace \file{}%%[SCRIPT]
sedi "s/file{}%%\[SCRIPT\]/file{tikz-trackschematic-$VERSION_STR.zip}/g" .github/tex/tikz-trackschematic.pkg
# 3. replace %RELEASE-NOTES%%[SCRIPT]
awk '/%RELEASE-NOTES%%\[SCRIPT\]/{system("cat release-note-*.md");next}1' .github/tex/tikz-trackschematic.pkg > .github/tex/tikz-trackschematic.tmp.pkg
mv .github/tex/tikz-trackschematic.tmp.pkg .github/tex/tikz-trackschematic.pkg
}
run_compile_documentation() {
## compile order
# 1. manual, symbology-table, snippets
@ -909,13 +922,11 @@ cleanup() {
## -- cleanup
## from create_release
if [ $CLEANUP = 1 ]; then
if [ $RELEASE = 1 ]; then
## from run_test_cases
if [ $TESTING = 1 ]; then
# remove TMP-folder
rm -rf $TMP
# undo changes to tikz-trackschematic.sty by sed
mv src/tikz-trackschematic.sty.backup src/tikz-trackschematic.sty
# remove TMP-release-note
rm release-note-tmp.md
rm -rf test/.tex
fi
## from check_imagemagick_policy
@ -938,10 +949,16 @@ cleanup() {
rm doc/symbology/tmp.tex
fi
## from run_test_cases
if [ $TESTING = 1 ]; then
## from create_release(_notes)
if [ $RELEASE = 1 ]; then
# remove TMP-folder
rm -rf test/.tex
rm -rf $TMP
# undo changes to tikz-trackschematic.sty by sed
mv src/tikz-trackschematic.sty.backup src/tikz-trackschematic.sty
# remove TMP-release-note
rm release-note.tmp.md
# # undo changes to .github/tex/tikz-trackschematic.pkg by sed
# mv .github/tex/tikz-trackschematic.pkg.backup .github/tex/tikz-trackschematic.pkg
fi
##
@ -1034,6 +1051,7 @@ if [ $RELEASE = 1 ]; then
##
create_release
create_release_notes
create_ctan_configuration
fi
##