From ee376fdfd2f1bf653c007e4deeeeca5b10bdbfcf Mon Sep 17 00:00:00 2001 From: Mike Farah Date: Wed, 20 Oct 2021 15:01:08 +1100 Subject: [PATCH] Man page release workflow wip --- .github/workflows/release-test.yml | 107 ++++++++++++++++++----------- scripts/generate-man-page-md.sh | 19 +++++ scripts/generate-man-page.sh | 21 +----- scripts/xcompile.sh | 2 - 4 files changed, 88 insertions(+), 61 deletions(-) create mode 100755 scripts/generate-man-page-md.sh diff --git a/.github/workflows/release-test.yml b/.github/workflows/release-test.yml index 7dd6a762..25c9e503 100644 --- a/.github/workflows/release-test.yml +++ b/.github/workflows/release-test.yml @@ -12,57 +12,84 @@ jobs: - uses: actions/setup-go@v2 with: go-version: '^1.17.2' + - name: Compile man page markup + id: gen-man-page-md + run: | + ./scripts/generate-man-page-md.sh + echo "::set-output name=man-page-md::man.md" + + - name: Generate man page + uses: docker://pandoc/latex:2.9 + id: gen-man-page + env: + MAN_HEADER: yq (https://github.com/mikefarah/yq/) version ${{ github.ref }} + outputs: + manpage: + value: yq.1 + with: + args: >- + --standalone + --to man + --variable=title:"YQ" + --variable=section:"1" + --variable=header:"${MAN_HEADER}" + --variable=author:"Mike Farah" + --output=yq.1 + ${{ steps.gen-man-page-md.outputs.man-page-md }} + - name: Cross compile run: | sudo apt-get install rhash -y go get github.com/mitchellh/gox + mkdir -p build + cp ${{ steps.gen-man-page.outputs.manpage }} build/yq.1 ./scripts/xcompile.sh - - name: Create Release - id: create_release - uses: actions/create-release@v1.0.0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.ref }} - release_name: TEST ${{ github.ref }} - draft: true - prerelease: false + # - name: Create Release + # id: create_release + # uses: actions/create-release@v1.0.0 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # tag_name: ${{ github.ref }} + # release_name: TEST ${{ github.ref }} + # draft: true + # prerelease: false - - uses: shogo82148/actions-upload-release-asset@v1 - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: build/* + # - uses: shogo82148/actions-upload-release-asset@v1 + # with: + # upload_url: ${{ steps.create_release.outputs.upload_url }} + # asset_path: build/* - publishDocker: - environment: dockerhub - env: - IMAGE_NAME: mikefarah/yq - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 + # publishDocker: + # environment: dockerhub + # env: + # IMAGE_NAME: mikefarah/yq + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v2 - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - with: - platforms: all + # - name: Set up QEMU + # uses: docker/setup-qemu-action@v1 + # with: + # platforms: all - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v1 - with: - version: latest + # - name: Set up Docker Buildx + # id: buildx + # uses: docker/setup-buildx-action@v1 + # with: + # version: latest - - name: Available platforms - run: echo ${{ steps.buildx.outputs.platforms }} && docker version + # - name: Available platforms + # run: echo ${{ steps.buildx.outputs.platforms }} && docker version - - name: Build image - run: | - IMAGE_V_VERSION="$(git describe --tags --abbrev=0)" - IMAGE_VERSION=${IMAGE_V_VERSION:1} + # - name: Build image + # run: | + # IMAGE_V_VERSION="$(git describe --tags --abbrev=0)" + # IMAGE_VERSION=${IMAGE_V_VERSION:1} - SHORT_SHA1=$(git rev-parse --short HEAD) - PLATFORMS="linux/amd64,linux/ppc64le,linux/arm64" - echo "Building version ${IMAGE_VERSION} of image ${IMAGE_NAME}" - docker buildx build --platform "${PLATFORMS}" . + # SHORT_SHA1=$(git rev-parse --short HEAD) + # PLATFORMS="linux/amd64,linux/ppc64le,linux/arm64" + # echo "Building version ${IMAGE_VERSION} of image ${IMAGE_NAME}" + # docker buildx build --platform "${PLATFORMS}" . diff --git a/scripts/generate-man-page-md.sh b/scripts/generate-man-page-md.sh new file mode 100755 index 00000000..23176721 --- /dev/null +++ b/scripts/generate-man-page-md.sh @@ -0,0 +1,19 @@ +#! /bin/bash +set -e + +# note that this reqires pandoc to be installed. + +cat ./pkg/yqlib/doc/headers/Main.md > man.md +printf "\n# HOW IT WORKS\n" >> man.md +cat ./pkg/yqlib/doc/aa.md >> man.md + +for f in ./pkg/yqlib/doc/*.md; do + docNameWithExt="${f##*/}" + docName="${docNameWithExt%.*}" + docNameCap=$(echo $docName | tr [a-z] [A-Z]) + if [ "$docName" != "aa" ]; then + printf "\n\n# ${docNameCap}\n" >> man.md + cat "$f" >> man.md + fi + +done diff --git a/scripts/generate-man-page.sh b/scripts/generate-man-page.sh index 35be34f8..b39e21bf 100755 --- a/scripts/generate-man-page.sh +++ b/scripts/generate-man-page.sh @@ -3,26 +3,9 @@ set -e # note that this reqires pandoc to be installed. -cat ./pkg/yqlib/doc/headers/Main.md > man.md -printf "\n# HOW IT WORKS\n" >> man.md -cat ./pkg/yqlib/doc/aa.md >> man.md - -for f in ./pkg/yqlib/doc/*.md; do - docNameWithExt="${f##*/}" - docName="${docNameWithExt%.*}" - docNameCap=$(echo $docName | tr [a-z] [A-Z]) - if [ "$docName" != "aa" ]; then - printf "\n\n# ${docNameCap}\n" >> man.md - cat "$f" >> man.md - fi - -done - -header=$(./yq --version) - pandoc \ --variable=title:"YQ" \ --variable=section:"1" \ --variable=author:"Mike Farah" \ - --variable=header:"${header}" \ - --standalone --to man man.md -o build/yq.1 \ No newline at end of file + --variable=header:"${MAN_HEADER}" \ + --standalone --to man man.md -o yq.1 \ No newline at end of file diff --git a/scripts/xcompile.sh b/scripts/xcompile.sh index 5d967493..a13a543e 100755 --- a/scripts/xcompile.sh +++ b/scripts/xcompile.sh @@ -6,8 +6,6 @@ set -e CGO_ENABLED=0 gox -ldflags "${LDFLAGS}" -output="build/yq_{{.OS}}_{{.Arch}}" --osarch="darwin/amd64 darwin/arm64 freebsd/386 freebsd/amd64 freebsd/arm linux/386 linux/amd64 linux/arm linux/arm64 linux/mips linux/mips64 linux/mips64le linux/mipsle linux/ppc64 linux/ppc64le linux/s390x netbsd/386 netbsd/amd64 netbsd/arm openbsd/386 openbsd/amd64 windows/386 windows/amd64" -./scripts/generate-man-page.sh - cd build find . -executable -type f | xargs -I {} tar czvf {}.tar.gz {} yq.1 -C ../scripts install-man-page.sh