From acd6f6f014c25e46363e718381e0b35205df2d83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tina=20M=C3=BCller?= Date: Fri, 29 May 2020 23:07:16 +0200 Subject: [PATCH] Add workflow for creating release tarballs Also minor cleanup of .github/workflows/main.yml --- .github/workflows/dist.yaml | 28 +++++++++++ .github/workflows/main.yml | 17 +++---- .gitignore | 1 - .makefile | 2 + Makefile.am | 13 ++--- pkg/ReadMe.md | 77 ++++++++++++++++++++++++++++++ pkg/docker/.gitignore | 3 ++ pkg/docker/Dockerfile | 32 +++++++++++++ pkg/docker/Makefile | 23 +++++++++ pkg/docker/output/ReadMe | 1 + pkg/docker/scripts/libyaml-dist.sh | 23 +++++++++ 11 files changed, 200 insertions(+), 20 deletions(-) create mode 100644 .github/workflows/dist.yaml create mode 100644 pkg/ReadMe.md create mode 100644 pkg/docker/.gitignore create mode 100644 pkg/docker/Dockerfile create mode 100644 pkg/docker/Makefile create mode 100644 pkg/docker/output/ReadMe create mode 100755 pkg/docker/scripts/libyaml-dist.sh diff --git a/.github/workflows/dist.yaml b/.github/workflows/dist.yaml new file mode 100644 index 00000000..c7ce142e --- /dev/null +++ b/.github/workflows/dist.yaml @@ -0,0 +1,28 @@ +name: dist + +on: + push: + branches: [ release/* ] + +jobs: + dist: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - run: env | sort + + - name: Get image + run: | + time docker pull yamlio/libyaml-dev + docker images | grep libyaml + + - run: | + make -C pkg/docker libyaml-dist-ci + ls -l pkg/docker/output + + - uses: actions/upload-artifact@v2 + with: + name: release + path: pkg/docker/output/yaml-0* + diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c2bdef47..e8ec4973 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,6 +10,8 @@ jobs: build: + env: + CC: ${{ matrix.compiler }} runs-on: ${{ matrix.os }} strategy: matrix: @@ -25,12 +27,11 @@ jobs: - run: env | sort - name: Install software + if: ${{ matrix.os == 'macOS-latest' }} run: | - if [[ '${{ matrix.os }}' == macOS-latest ]]; then - brew install automake bash coreutils make - echo ::add-path::/usr/local/opt/coreutils/libexec/gnubin - echo ::add-path::/usr/local/opt/make/libexec/gnubin - fi + brew install automake bash coreutils make + echo ::add-path::/usr/local/opt/coreutils/libexec/gnubin + echo ::add-path::/usr/local/opt/make/libexec/gnubin - name: Fetch branches run: | git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/* @@ -48,12 +49,6 @@ jobs: - name: Compiler version run: ${{ matrix.compiler }} --version - env: - CC: ${{ matrix.compiler }} - run: cmake . - env: - CC: ${{ matrix.compiler }} - run: make - env: - CC: ${{ matrix.compiler }} - run: make test diff --git a/.gitignore b/.gitignore index 90840c8a..8257f570 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,6 @@ config.h* /configure stamp-h1 !config/config.h.in -/packaging/ /tests/run-dumper /tests/run-emitter /tests/run-emitter-test-suite diff --git a/.makefile b/.makefile index 9d526a4d..7d6e5723 100644 --- a/.makefile +++ b/.makefile @@ -23,6 +23,8 @@ MAKE_TARGETS := \ all \ all-am \ all-recursive \ + docker-build \ + docker-dist \ install \ test \ test-all \ diff --git a/Makefile.am b/Makefile.am index 551c7407..45d9c270 100644 --- a/Makefile.am +++ b/Makefile.am @@ -17,7 +17,7 @@ maintainer-clean-local: -find ${builddir} -name Makefile.in -exec rm -f '{}' ';' distclean-local: - rm -fr tests/run-test-suite packaging + rm -fr tests/run-test-suite -git worktree prune .PHONY: bootstrap @@ -43,12 +43,9 @@ ifeq ($(LIBYAML_TEST_SUITE_RUN_REPO),$(LIBYAML_TEST_SUITE_RUN_REPO_DEFAULT)) git clone --branch $(LIBYAML_TEST_SUITE_RUN_BRANCH) $(LIBYAML_TEST_SUITE_RUN_REPO) $@ endif -packaging: - -git branch --track $@ origin/$@ - git worktree add --force $@ $@ +docker-build: + make -C pkg/docker build -docker-dist: packaging - make -C $ + # 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 . + diff --git a/pkg/docker/.gitignore b/pkg/docker/.gitignore new file mode 100644 index 00000000..f5b0d6de --- /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 00000000..71f9df16 --- /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 00000000..8a53ed30 --- /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 00000000..acdc3331 --- /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 00000000..94e76965 --- /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"