summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorTina Müller <cpan2@tinita.de>2020-05-29 23:07:16 +0200
committerIngy döt Net <ingy@ingy.net>2020-06-22 10:21:14 -0700
commitacd6f6f014c25e46363e718381e0b35205df2d83 (patch)
tree59c59fd0ed36780185320f9748ea3e6054887297 /pkg
parent2c891fc7a770e8ba2fec34fc6b545c672beb37e6 (diff)
downloadlibyaml-git-acd6f6f014c25e46363e718381e0b35205df2d83.tar.gz
Add workflow for creating release tarballsrelease/test
Also minor cleanup of .github/workflows/main.yml
Diffstat (limited to 'pkg')
-rw-r--r--pkg/ReadMe.md77
-rw-r--r--pkg/docker/.gitignore3
-rw-r--r--pkg/docker/Dockerfile32
-rw-r--r--pkg/docker/Makefile23
-rw-r--r--pkg/docker/output/ReadMe1
-rwxr-xr-xpkg/docker/scripts/libyaml-dist.sh23
6 files changed, 159 insertions, 0 deletions
diff --git a/pkg/ReadMe.md b/pkg/ReadMe.md
new file mode 100644
index 0000000..7faede8
--- /dev/null
+++ b/pkg/ReadMe.md
@@ -0,0 +1,77 @@
+# How to Make a `libyaml` Release
+
+## Versioning
+
+Update libyaml version in:
+* announcement.msg
+* Changes
+* CMakeLists.txt
+ * `YAML_VERSION_MAJOR`, `YAML_VERSION_MINOR`, `YAML_VERSION_PATCH`
+* .appveyor.yml
+* configure.ac
+ * `YAML_MAJOR`, `YAML_MINOR`, `YAML_PATCH`, `YAML_RELEASE`, `YAML_CURRENT`, `YAML_REVISION`
+
+Commit and push everything to `release/0.x.y`.
+
+## Test and Create Release Archives
+
+### GitHub Actions Automation
+
+The github workflow:
+
+ .github/workflows/dist.yaml
+
+will do this automatically for you.
+
+#### .github/workflows/dist.yaml
+
+This workflow will create release archives (`tar.gz` and `zip`).
+
+### Manually
+
+Make sure you have a clean git repository (no changed files).
+The following process will clone your current git directory.
+
+This will need the docker image `yamlio/libyaml-dev`.
+You can either pull it, or create it yourself:
+
+ make docker-build
+
+### Create dist archives
+
+Run:
+
+ make docker-dist
+
+It will run `make dist` in the container to create a tarball written to
+`pkg/docker/output`.
+It will also create a zipfile.
+
+## Update master
+
+ git merge release/0.x.y
+ git tag -a 0.x.y
+ # <Editor opens>
+ # Paste the corresponding entry from the Changes file
+ # Look at an earlier release for how it should look like:
+ # git show 0.2.3
+ git push origin master 0.x.y
+
+## Create a GitHub release
+
+Go to "Releases" and click on "Draft a new release".
+
+Fill in the tag you just created in the previous step.
+
+Fill in the release title: v0.x.y
+
+Paste the changelog into the description field.
+
+Upload the tar.gz and .zip file.
+
+You can "Save draft" and publish later, or directly click on "Publish release".
+
+## Update pyyaml.org
+
+See <https://github.com/yaml/pyyaml.org/blob/master/ReadMe.md>.
+
diff --git a/pkg/docker/.gitignore b/pkg/docker/.gitignore
new file mode 100644
index 0000000..f5b0d6d
--- /dev/null
+++ b/pkg/docker/.gitignore
@@ -0,0 +1,3 @@
+output/*
+!Makefile
+!output/ReadMe
diff --git a/pkg/docker/Dockerfile b/pkg/docker/Dockerfile
new file mode 100644
index 0000000..71f9df1
--- /dev/null
+++ b/pkg/docker/Dockerfile
@@ -0,0 +1,32 @@
+FROM ubuntu:18.04
+
+RUN apt-get update \
+ && apt-get install -y \
+ automake \
+ bison \
+ build-essential \
+ cmake \
+ curl \
+ doxygen \
+ flex \
+ git \
+ less \
+ libtool \
+ python \
+ vim \
+ zip \
+ && true
+
+# http://www.doxygen.nl/manual/install.html
+
+RUN curl https://sourceforge.net/projects/doxygen/files/rel-1.8.14/doxygen-1.8.14.src.tar.gz/download \
+ -L -o /doxygen-1.8.14.src.tar.gz \
+ && cd / \
+ && tar -xvf doxygen-1.8.14.src.tar.gz \
+ && cd doxygen-1.8.14 \
+ && mkdir build \
+ && cd build \
+ && cmake -G "Unix Makefiles" .. \
+ && make \
+ && make install \
+ && true
diff --git a/pkg/docker/Makefile b/pkg/docker/Makefile
new file mode 100644
index 0000000..8a53ed3
--- /dev/null
+++ b/pkg/docker/Makefile
@@ -0,0 +1,23 @@
+DOCKER_IMAGE ?= yamlio/libyaml-dev
+
+build:
+ docker build -t $(DOCKER_IMAGE) .
+
+run: build
+ docker run -it --rm $(DOCKER_IMAGE) bash
+
+prepare-git:
+ rm -rf output/libyaml.git
+ git clone ../../.git output/libyaml.git
+
+libyaml-dist: libyaml-dist-ci
+
+libyaml-dist-ci: prepare-git
+ docker run --rm -u $$(id -u) \
+ -v"$$PWD/output:/output" \
+ -v"$$PWD/scripts:/scripts" \
+ $(DOCKER_IMAGE) /scripts/libyaml-dist.sh
+
+clean:
+ rm -rf output/libyaml.git
+ rm -rf output/yaml-*.*
diff --git a/pkg/docker/output/ReadMe b/pkg/docker/output/ReadMe
new file mode 100644
index 0000000..acdc333
--- /dev/null
+++ b/pkg/docker/output/ReadMe
@@ -0,0 +1 @@
+Output directory for build files created by docker
diff --git a/pkg/docker/scripts/libyaml-dist.sh b/pkg/docker/scripts/libyaml-dist.sh
new file mode 100755
index 0000000..94e7696
--- /dev/null
+++ b/pkg/docker/scripts/libyaml-dist.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+set -ex
+
+cp -r /output/libyaml.git /tmp/
+cd /tmp/libyaml.git
+./bootstrap
+./configure
+make dist
+
+# get the tarball filename
+tarballs=(yaml-*.tar.gz)
+tarball=${tarballs[0]:?}
+dirname=${tarball/.tar.gz/}
+
+# Copy to output dir
+cp "$tarball" /output
+
+# Create zip archive
+cd /tmp
+cp "/output/$tarball" .
+tar xvf "$tarball"
+zip -r "/output/$dirname.zip" "$dirname"