Skip to content

Commit

Permalink
Merge pull request #25 from DILCISBoard/rel/2.0
Browse files Browse the repository at this point in the history
FEAT - publication workflow
  • Loading branch information
carlwilson authored May 31, 2019
2 parents 0b06e76 + dc5fc07 commit fddf614
Show file tree
Hide file tree
Showing 26 changed files with 966 additions and 255 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "spec-publisher"]
path = spec-publisher
url = https://github.com/DILCISBoard/spec-publisher.git
39 changes: 39 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
dist: trusty
sudo: required
language: java
jdk:
- openjdk8
- oraclejdk8
before_install:
- sudo apt-get update
- sudo apt-get install -y texlive texlive-base texlive-latex-extra texlive-fonts-extra
python-virtualenv librsvg2-bin
- wget https://github.com/jgm/pandoc/releases/download/2.5/pandoc-2.5-linux.tar.gz
- tar -xzvf pandoc-2.5-linux.tar.gz
- rm pandoc-2.5-linux.tar.gz
- sudo mv pandoc-2.5 /opt
- sudo chmod +x /opt/pandoc-2.5/bin/pandoc
- sudo ln -s /opt/pandoc-2.5/bin/pandoc /usr/local/bin/pandoc
- sudo ln -s /opt/pandoc-2.5/bin/pandoc-citeproc /usr/local/bin/pandoc-citeproc
script:
- cd spec-publisher
- mvn clean package
- java -jar target/mets-profile-proc.jar ../profile/E-ARK-DIP.xml
- cd ..
- bash create-site.sh
- bash create-pdf.sh
- bundle install
- bundle exec jekyll build -s ./docs -d ./_site
deploy:
provider: pages
skip_cleanup: true
github_token: "$GH_TOKEN"
keep_history: true
local_dir: docs
on:
branch: master
env:
global:
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true
- secure: OT1rmJ/+ywbA88+8PwAojxy3uvzUk07hdHVTYPgYIFnTC0KBKSjrZZkJ+cwX9xtqRmVDGCGyl+x3WYy02tS9jubC9zWkArxJl1lT9AvXFn4tXzDoF1lRjp2Bgk6uEmk8BZbERs6Ef7C3aFj+qwuoioPEhCQosxTrEqt7gVuAyASsFm+7q1HJqKWwAV6hPAEHVsrNFaQGg84XO+TMT3l3UlXetGD9IhZsbo+HGHqp0F2zlUSVaGfEHC5MJPHWO9QQRVoPY2ZT8okhL/zAxivhwnn3qFdQwVObBFs4Q5q0gBkg/ahQ4hMFISfTqvxlL52C7JTCFWxX2apZwUIL5FQ3PIsr5JUn3yPvZTXzOPDGkzHZmIWPeMdzB5HcJEl73WOyQ7z08hGiwTw46BDWlZUQ8JwFEquNadKvX3iJA5u/TGQ17uB2h3ZZlb/0RtBxPuK59RBwBKtt5jgHq+RBH6o+Z6KPt/zyKDbFt9m6SC/FBdvLSk3paMke5mdONDPro02Yl0i5bk+0XPYhm5Ci5IMU8vfWPEn5SgRcprQ9dBM7NOwAi0retvj4FxCPbIZRxaTxuYbvZdJ4ZTnw/mT8oMBsrAnM6cu+sF4a4szjNjLvjsOs+NReFXBz6qvSLUn6PWfTsRwmNK8/RK3W0PUi18oRY/masUo+Mp/r2RsQlNuslsI=
- secure: E8DPoNhxnPHNIlBn5HiBb/D+LGyNETZjgMgS2Dyb26y8DSdQTnSexj0uFfLWDPeD6T6v0UEO+WOhChkCXdR/lOb6IjVuRtB0YTq/WJfROqtI3rtDQXoHKR+SeVsOZYoTDGfLZTdSrSPHH2+/Gk7H+3m00QmrIInHISQySKltlY5bge1udtcAFxoBkFX4iMslFC4a9GS1Hac6ZoiEBbCVwj+2qn9cz263hocMZfHsqXTMxbzWYIg02vgGrL3lZXLqsOcbkrRjxJevYfB1FPLxLU6jCwdII8VxfwMVoQBvS+NvvrMMydTLCEEEEJknpGxV9fE6ncZOLZ99xYqxmPzLtQ3ztvSN4ACavrzrsGeI5Vc0t5wX0IZ6CadSyXw9A47icWMdY/psH5og2GsV51XUx4iPB+VS3TxB8VyVvcVoHLH8xPYlntny+ZlqAGQPsuimfO76FpWse4EVA9+Eu/1VbiTGkbByNMUXNXcP6e6IxqbWk7rRRbvVYwxw6RUD7JP4f6z6MmgUyhvyN+W3wvt+8sxfbH9VFbGDQN+zHVarsRn3FAT/v5hUS1zFgO1J5q0g3PJEPxtvPvMOG+Mm3DpbWRVfR4ELn+FbXPhgk54gRJ/uM1n9/ZrJXgaHgSlV9jMaHiZPP1MNmDqewG8PCUjI4jXHZ2T0QGFjF5t5lml3Y/s=
4 changes: 4 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
source 'https://rubygems.org'
gem 'github-pages', group: :jekyll_plugins
gem "jekyll-theme-primer", group: :jekyll_plugin
gem 'html-proofer'
3 changes: 3 additions & 0 deletions PDF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
!INCLUDE "spec-publisher/res/md/common-intro.md"

!INCLUDE "specification/index.md"
5 changes: 5 additions & 0 deletions SITE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: E-ARK Dissemination Information Package
---

!INCLUDE "PDF.md"
89 changes: 89 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.

# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "geerlingguy/debian9"

# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false

# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# NOTE: This will enable public access to the opened port
# config.vm.network "forwarded_port", guest: 80, host: 8080

# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine and only allow access
# via 127.0.0.1 to disable public access
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"

# Create a private network, which allows host-only access to the machine
# using a specific IP.
# config.vm.network "private_network", ip: "192.168.33.10"

# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"

# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "../data", "/vagrant_data"

# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
# config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
# vb.memory = "1024"
# end
#
# View the documentation for the provider you are using for more
# information on available options.

# Enable provisioning with a shell script. Additional provisioners such as
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
# documentation for more information about their specific syntax and use.
config.vm.provision "shell", inline: <<-SHELL
apt-get -y update
apt-get -y upgrade
apt-get install -y texlive texlive-base texlive-latex-extra texlive-fonts-extra python-virtualenv librsvg2-bin
if [ ! -d /opt/pandoc-2.5 ]
then
cd /tmp
wget https://github.com/jgm/pandoc/releases/download/2.5/pandoc-2.5-linux.tar.gz
tar -xzvf pandoc-2.5-linux.tar.gz
mv pandoc-2.5 /opt
chmod +x /opt/pandoc-2.5/bin/pandoc
ln -s /opt/pandoc-2.5/bin/pandoc /usr/local/bin/pandoc
ln -s /opt/pandoc-2.5/bin/pandoc-citeproc /usr/local/bin/pandoc-citeproc
fi
if [ ! -d /home/vagrant/.pandoc/templates ]
then
sudo -u vagrant mkdir -p /home/vagrant/.pandoc/templates
sudo -u vagrant cp /vagrant/spec-publisher/pandoc/templates/eisvogel.latex /home/vagrant/.pandoc/templates/eisvogel.latex
fi
cd /vagrant
sudo -u vagrant /vagrant/create-site.sh
sudo -u vagrant /vagrant/create-pdf.sh
SHELL
end
32 changes: 32 additions & 0 deletions create-pdf.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
#!/usr/bin/env bash
echo "Generating PDF document from markdown"
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "$SCRIPT_DIR" || exit

if [ ! -d ~/.pandoc/templates ]
then
mkdir -p ~/.pandoc/templates
fi
cp spec-publisher/pandoc/templates/eisvogel.latex ~/.pandoc/templates/eisvogel.latex

if [ ! -d "$SCRIPT_DIR/docs/pdf" ]
then
mkdir -p "$SCRIPT_DIR/docs/pdf/"
fi

bash "$SCRIPT_DIR/spec-publisher/utils/create-venv.sh"
source "$SCRIPT_DIR/.venv/markdown/bin/activate"
markdown-pp PDF.md -o docs/eark-dip-pdf.md -e tableofcontents
deactivate

cd docs || exit
pandoc --from gfm \
--template eisvogel \
--listings \
--toc \
eark-dip-pdf.md \
--metadata-file ../pandoc/metadata.yaml \
-o pdf/eark-dip.pdf

cd "$SCRIPT_DIR" || exit
30 changes: 30 additions & 0 deletions create-site.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/usr/bin/env bash
echo "Generating GitHub pages site from markdown"
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "$SCRIPT_DIR" || exit

if [ ! -d ./docs ]
then
mkdir ./docs
fi

if [ -d ./docs/figs ]
then
rm -rf ./docs/figs
fi

if [ -e ./docs/index.md ]
then
rm docs/index.md
fi

bash "$SCRIPT_DIR/spec-publisher/utils/create-venv.sh"
source "$SCRIPT_DIR/.venv/markdown/bin/activate"
markdown-pp SITE.md -o docs/index.md
deactivate

cp -R specification/media docs/
cp -R spec-publisher/res/md/figs docs/
cp -R profile docs/
cp -R archive docs/
cp -R examples docs/
12 changes: 12 additions & 0 deletions docs/_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
github: [metadata]
encoding: UTF-8
kramdown:
input: GFM
hard_wrap: false
future: true
jailed: false
theme: jekyll-theme-primer
gfm_quirks: paragraph_end
exclude:
- specification
- contents.md
55 changes: 55 additions & 0 deletions pandoc/bibliography.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
% This file was created with JabRef 2.10.
% Encoding: ISO8859_1
@Manual{csip-2.0.0-DRAFT,
Title = {Common Specification for Information Packages (CSIP)},
Author = {Karin Bredenberg and Bj{\"o}rn Skog and Anders Bo Nielsen and Kathrine Hougaard Edsen Johansen and Alex Thirifays and Sven Schlarb and Andrew Wilson and Tarvo K{\"a}rberg and Kuldar Aas and Luis Faria and Helder Silva and Miguel Ferreira and Carl Wilson},
Edition = {2.0.0-DRAFT},
Month = {July},
Organization = {Digital Information LifeCycle Interoperability Standard Board (DILCIS Board)},
Year = {2018},

Journal = {ERCIM News},
Number = {114},
Owner = {Sven Schlarb},
Timestamp = {2018.06.28},
Url = {http://earkcsip.dilcis.eu}
}

@Manual{e-ark-d4.4,
Title = {D4.4 SIP-AIP Conversion Component},
Author = {Luis Faria and Miguel Ferreira and Jan R{\"o}rden and Sven Schlarb},
Year = {2017},

Timestamp = {2018.12.12},
Url = {http://www.eark-project.com/resources/project-deliverables/89-d44}
}

@Manual{OAIS2012,
Title = {{Reference Model for an Open Archival Information System}},
Author = {OAIS},
Edition = {CCSDS 650.0-M-2 (Magenta Book)},
Month = {June},
Organization = {CCSDS - Consultative Committee for Space Data Systems},
Year = {2012},

Citeulike-article-id = {4688260},
Citeulike-linkout-0 = {http://public.ccsds.org/publications/archive/650x0b1.pdf},
Keywords = {oais, referencemodel, referenzmodell},
Posted-at = {2009-05-31 11:14:14},
Priority = {0},
Url = {http://public.ccsds.org/publications/archive/650x0b1.pdf}
}

@Manual{premis3.0-2017,
Title = {PREMIS Data Dictionary for Preservation Metadata, Version 3.0},
Author = {PREMIS},
Month = {December},
Organization = {The Library of Congress},
Year = {2017},

Timestamp = {2018.12.12},
Url = {https://www.loc.gov/standards/premis/v3/index.html}
}

35 changes: 35 additions & 0 deletions pandoc/metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: 'E-ARK Dissemination Information Packages (DIP)'
abstract: |
The DIP format is the last in sequence of the three IP formats defined
in the OAIS reference model. As with the two others, the SIP and the AIP
format, the E-ARK DIP builds upon the same foundation - the Common
Specification for Information Packages. The definition of an E-ARK DIP
is led by practical access considerations: a DIP is an Information
Package which is ready to be processed by its designated Access
Software; if it is not suited for processing and rendering by its
designated Access Software, it is not (yet) a DIP.
In order to meet the stated access scope, much of the specification
deals with scenario descriptions that are associated with specific
Content Information Types (Databases, Data warehouses, Electronic
Records Managements Systems, Simple File-System Based Records, and Geodata).
margin-left: 1in
margin-right: 1in

date: "31.05.2019"
toc-title: 'Table of contents'
titlepage: true
titlepage-color: "186b9e"
titlepage-text-color: "3adeca"
titlepage-rule-color: "3adeca"
titlepage-rule-height: 1
logo: ../spec-publisher/pandoc/img/DILCISlogo.png
footer-center: Version 2.0.0
footer-left: 31.05.2019
header-right: DILCIS Board
version: 2.0.0
bibliography: ../pandoc/bibliography.bib
reference-section-title: 'Bibliography'
autoSectionLabels: True
listings-disable-line-numbers: True
...
Loading

0 comments on commit fddf614

Please sign in to comment.