restructured github actions
parent
ac3e664ae6
commit
ae8ed95aee
|
@ -1,7 +1,6 @@
|
||||||
## -- engine used to compile (pdflatex)
|
## -- engine used to compile (pdflatex)
|
||||||
latex-bin
|
latex-bin
|
||||||
latexmk
|
latexmk
|
||||||
ctan-o-mat
|
|
||||||
|
|
||||||
## -- direct dependencies
|
## -- direct dependencies
|
||||||
tikz-trackschematic
|
tikz-trackschematic
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
## -- upload
|
||||||
|
ctan-o-mat
|
|
@ -12,8 +12,42 @@ on:
|
||||||
|
|
||||||
## A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
## A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
jobs:
|
jobs:
|
||||||
|
create_package:
|
||||||
|
name: "create a TeX Live package"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# checkout the repo
|
||||||
|
- name: "checkout"
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# create package and release notes
|
||||||
|
- name: "create tikz-trackschematic package"
|
||||||
|
run: ./build.sh --non-interactive --release v0.7.0
|
||||||
|
|
||||||
|
# upload artifact two share it with other jobs
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: tikz-trackschematic-v0.7.0.zip
|
||||||
|
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: release-note-v0.7.0.md
|
||||||
|
if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: .github/tex/tikz-trackschematic.pkg
|
||||||
|
if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: .github/zenodo/metadata.json
|
||||||
|
if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
# This workflow contains a single job called "build"
|
# This workflow contains a single job called "build"
|
||||||
debug:
|
debug:
|
||||||
|
needs: create_package
|
||||||
# The type of runner that the job will run on
|
# The type of runner that the job will run on
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
@ -23,8 +57,11 @@ jobs:
|
||||||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: "install ghostscript"
|
- uses: actions/download-artifact@v3
|
||||||
run: sudo apt-get install -y ghostscript
|
id: download
|
||||||
|
|
||||||
|
# - name: "install ghostscript"
|
||||||
|
# run: sudo apt-get install -y ghostscript
|
||||||
|
|
||||||
###### multiple options for a TeX environment
|
###### multiple options for a TeX environment
|
||||||
# ##
|
# ##
|
||||||
|
@ -45,11 +82,11 @@ jobs:
|
||||||
# with:
|
# with:
|
||||||
# package-file: .github/tex/packages.test.txt
|
# package-file: .github/tex/packages.test.txt
|
||||||
# ##
|
# ##
|
||||||
- name: "setup TeX Live (via paolobrasolin)"
|
# - name: "setup TeX Live (via paolobrasolin)"
|
||||||
uses: paolobrasolin/setup-texlive-action@v1
|
# uses: paolobrasolin/setup-texlive-action@v1
|
||||||
with:
|
# with:
|
||||||
profile-path: ${{ github.workspace }}/.github/tex/profile.minimal.txt
|
# profile-path: ${{ github.workspace }}/.github/tex/profile.minimal.txt
|
||||||
packages-path: ${{ github.workspace }}/.github/tex/packages.doc.txt
|
# packages-path: ${{ github.workspace }}/.github/tex/packages.doc.txt
|
||||||
|
|
||||||
# - name: "install tikz-trackschematic"
|
# - name: "install tikz-trackschematic"
|
||||||
# run: ./build.sh --non-interactive --install-dev
|
# run: ./build.sh --non-interactive --install-dev
|
||||||
|
|
|
@ -11,7 +11,8 @@ on:
|
||||||
|
|
||||||
## A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
## A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
create_package:
|
||||||
|
name: "create a TeX Live package for tikz-trackschematic"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
# 1. checkout the repo
|
# 1. checkout the repo
|
||||||
|
@ -32,8 +33,7 @@ jobs:
|
||||||
- name: "update tikz-trackschematic documentation before release"
|
- name: "update tikz-trackschematic documentation before release"
|
||||||
run: ./build.sh --non-interactive --memory-increase --compile-doc
|
run: ./build.sh --non-interactive --memory-increase --compile-doc
|
||||||
|
|
||||||
# 4. create package and release notes
|
# 4. get varibale ${{ steps.tag.outputs.tag }}
|
||||||
## get varibale ${{ steps.tag.outputs.tag }}
|
|
||||||
- name: "get tag"
|
- name: "get tag"
|
||||||
id: tag
|
id: tag
|
||||||
uses: dawidd6/action-get-tag@v1
|
uses: dawidd6/action-get-tag@v1
|
||||||
|
@ -41,10 +41,48 @@ jobs:
|
||||||
# Optionally strip `v` prefix
|
# Optionally strip `v` prefix
|
||||||
strip_v: false
|
strip_v: false
|
||||||
|
|
||||||
|
# 5. create package and release notes
|
||||||
- name: "create tikz-trackschematic package"
|
- name: "create tikz-trackschematic package"
|
||||||
run: ./build.sh --non-interactive --release ${{ steps.tag.outputs.tag }}
|
run: ./build.sh --non-interactive --release ${{ steps.tag.outputs.tag }}
|
||||||
|
|
||||||
# 5. publish package as new release on github
|
# 6. upload artifact to share it with other jobs
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: tikz-trackschematic-v0.7.0.zip
|
||||||
|
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: release-note-v0.7.0.md
|
||||||
|
if-no-files-found: warn # 'error' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: .github/tex/tikz-trackschematic.pkg
|
||||||
|
if-no-files-found: warn # 'error' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: .github/zenodo/metadata.json
|
||||||
|
if-no-files-found: warn # 'error' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
|
publish_github:
|
||||||
|
needs: create_package
|
||||||
|
name: "publish on github"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# 1. get varibale ${{ steps.tag.outputs.tag }}
|
||||||
|
- name: "get tag"
|
||||||
|
id: tag
|
||||||
|
uses: dawidd6/action-get-tag@v1
|
||||||
|
with:
|
||||||
|
# Optionally strip `v` prefix
|
||||||
|
strip_v: false
|
||||||
|
|
||||||
|
# 2. download artifact in folder artifact/
|
||||||
|
- uses: actions/download-artifact@v3
|
||||||
|
|
||||||
|
# 3. publish package as new release on github
|
||||||
- name: "create release"
|
- name: "create release"
|
||||||
id: create_release
|
id: create_release
|
||||||
uses: actions/create-release@v1
|
uses: actions/create-release@v1
|
||||||
|
@ -53,7 +91,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
tag_name: ${{ github.ref }}
|
tag_name: ${{ github.ref }}
|
||||||
release_name: Release ${{ github.ref }}
|
release_name: Release ${{ github.ref }}
|
||||||
body_path: release-note-${{ steps.tag.outputs.tag }}.md
|
body_path: artifact/release-note-${{ steps.tag.outputs.tag }}.md
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
|
|
||||||
|
@ -63,7 +101,7 @@ jobs:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
asset_path: tikz-trackschematic-${{ steps.tag.outputs.tag }}.zip
|
asset_path: artifact/tikz-trackschematic-${{ steps.tag.outputs.tag }}.zip
|
||||||
asset_name: tikz-trackschematic-${{ steps.tag.outputs.tag }}.zip
|
asset_name: tikz-trackschematic-${{ steps.tag.outputs.tag }}.zip
|
||||||
asset_content_type: application/zip
|
asset_content_type: application/zip
|
||||||
|
|
||||||
|
@ -74,6 +112,21 @@ jobs:
|
||||||
with:
|
with:
|
||||||
id: ${{ steps.create_release.outputs.id }}
|
id: ${{ steps.create_release.outputs.id }}
|
||||||
|
|
||||||
# 6. upload new release to CTAN
|
publish_CTAN:
|
||||||
|
needs: create_package
|
||||||
|
name: "publish on CTAN"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# 1. download artifact in folder artifact/
|
||||||
|
- uses: actions/download-artifact@v3
|
||||||
|
|
||||||
|
# 2. install ctan-o-mat
|
||||||
|
- 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.upload.txt
|
||||||
|
|
||||||
|
# 3. upload new release to CTAN
|
||||||
- name: CTAN submit
|
- name: CTAN submit
|
||||||
run: ctan-o-mat --verbose --submit .github/tex/tikz-trackschematic.pkg
|
run: ctan-o-mat --verbose --submit artifact/tikz-trackschematic.pkg
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# This is a basic workflow to help you get started with Actions
|
# This is a basic workflow to help you get started with Actions
|
||||||
|
|
||||||
name: test
|
name: "continuous integration test"
|
||||||
|
|
||||||
# Controls when the workflow will run
|
# Controls when the workflow will run
|
||||||
on:
|
on:
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
name: zenodo sandbox test
|
||||||
|
on:
|
||||||
|
# # Trigger when you publish a release via GitHub's release page
|
||||||
|
# release:
|
||||||
|
# types:
|
||||||
|
# - published
|
||||||
|
|
||||||
|
# # Allows you to run this workflow manually from the Actions tab
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
create_package:
|
||||||
|
name: "create a TeX Live package"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# checkout the repo
|
||||||
|
- name: "checkout"
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# create package and release notes
|
||||||
|
- name: "create tikz-trackschematic package"
|
||||||
|
run: ./build.sh --non-interactive --release v0.7.0
|
||||||
|
|
||||||
|
# upload artifact to share it with other jobs
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: tikz-trackschematic-v0.7.0.zip
|
||||||
|
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: release-note-v0.7.0.md
|
||||||
|
if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: .github/tex/tikz-trackschematic.pkg
|
||||||
|
if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: .github/zenodo/metadata.json
|
||||||
|
if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
|
||||||
|
|
||||||
|
publish_zenodo:
|
||||||
|
needs: create_package
|
||||||
|
name: "publish on zenodo sandbox"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# checkout the repo
|
||||||
|
- name: "checkout"
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# download artifact in folder artifact/
|
||||||
|
- uses: actions/download-artifact@v3
|
||||||
|
|
||||||
|
- name: "uploading to zenodo sandbox"
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# ZENODO_ACCESS_TOKEN: ${{ secrets.ZENODO_ACCESS_TOKEN }}
|
||||||
|
ZENODO_SANDBOX_ACCESS_TOKEN: ${{ secrets.ZENODO_SANDBOX_ACCESS_TOKEN }}
|
||||||
|
uses: zenodraft/action@0.10.0
|
||||||
|
with:
|
||||||
|
# collection: 5539844
|
||||||
|
collection: 1047380
|
||||||
|
filenames: artifact/tikz-trackschematic-v0.7.0.zip
|
||||||
|
upsert-doi: true
|
||||||
|
upsert-location: identifiers[2]
|
||||||
|
metadata: artifact/metadata.json
|
||||||
|
publish: true
|
||||||
|
sandbox: true
|
||||||
|
verbose: true
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"title": "TikZ-trackschematic",
|
||||||
|
"version": "%%[SCRIPT]",
|
||||||
|
"publication_date": "%%[SCRIPT]",
|
||||||
|
"creators": [
|
||||||
|
{
|
||||||
|
"orcid": "0000-0002-9384-8945",
|
||||||
|
"affiliation": "TU Braunschweig",
|
||||||
|
"name": "Scheidt, Martin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A TikZ library for creating track diagrams in railways. The TikZ-trackschematic 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 maybe needed to describe situations and layouts in railway operation.",
|
||||||
|
"keywords": [
|
||||||
|
"tex",
|
||||||
|
"tikz",
|
||||||
|
"railway",
|
||||||
|
"railroad",
|
||||||
|
"tracks",
|
||||||
|
"schematics"
|
||||||
|
],
|
||||||
|
"license": {
|
||||||
|
"id": "ISC"
|
||||||
|
},
|
||||||
|
"language": "eng",
|
||||||
|
"access_right": "open",
|
||||||
|
"resource_type": {
|
||||||
|
"type": "software",
|
||||||
|
"title": "Software"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
# TikZ-trackschematic
|
# TikZ-trackschematic
|
||||||
|
|
||||||
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5539844.svg)](https://doi.org/10.5281/zenodo.5539844)
|
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5539844.svg)](https://doi.org/10.5281/zenodo.5539844) [![continuous integration test](https://github.com/railtoolkit/tikz-trackschematic/actions/workflows/testing.yml/badge.svg)](https://github.com/railtoolkit/tikz-trackschematic/actions/workflows/testing.yml)
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
12
build.sh
12
build.sh
|
@ -591,6 +591,15 @@ create_ctan_configuration() {
|
||||||
mv .github/tex/tikz-trackschematic.tmp.pkg .github/tex/tikz-trackschematic.pkg
|
mv .github/tex/tikz-trackschematic.tmp.pkg .github/tex/tikz-trackschematic.pkg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
create_zenodo_metadata() {
|
||||||
|
# modify the file .github/zenodo/metadata.json for zenodo upload
|
||||||
|
# 1. replace "version": "%%[SCRIPT]"
|
||||||
|
sed -i".backup" -e"s/\"version\": \"%%\[SCRIPT\]\"/\"version\": \"$VERSION_STR\"/g" .github/zenodo/metadata.json
|
||||||
|
|
||||||
|
# 2. replace "publication_date": "%%[SCRIPT]"
|
||||||
|
sedi "s/\"publication_date\": \"%%\[SCRIPT\]\"/\"publication_date\": \"$DATE\"/g" .github/zenodo/metadata.json
|
||||||
|
}
|
||||||
|
|
||||||
run_compile_documentation() {
|
run_compile_documentation() {
|
||||||
## compile order
|
## compile order
|
||||||
# 1. manual, symbology-table, snippets
|
# 1. manual, symbology-table, snippets
|
||||||
|
@ -959,6 +968,8 @@ cleanup() {
|
||||||
rm release-note.tmp.md
|
rm release-note.tmp.md
|
||||||
# # undo changes to .github/tex/tikz-trackschematic.pkg by sed
|
# # undo changes to .github/tex/tikz-trackschematic.pkg by sed
|
||||||
# mv .github/tex/tikz-trackschematic.pkg.backup .github/tex/tikz-trackschematic.pkg
|
# mv .github/tex/tikz-trackschematic.pkg.backup .github/tex/tikz-trackschematic.pkg
|
||||||
|
# # undo changes to .github/zenodo/metadata.json by sed
|
||||||
|
# mv .github/zenodo/metadata.json.backup .github/zenodo/metadata.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -1052,6 +1063,7 @@ if [ $RELEASE = 1 ]; then
|
||||||
create_release
|
create_release
|
||||||
create_release_notes
|
create_release_notes
|
||||||
create_ctan_configuration
|
create_ctan_configuration
|
||||||
|
create_zenodo_metadata
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
Loading…
Reference in New Issue