name: Release YQ on: push: tags: - 'v*' jobs: publishGitRelease: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - 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: Get the version id: get_version run: echo ::set-output name=VERSION::${GITHUB_REF##*/} - name: Generate man page uses: docker://pandoc/core:2.14.2 id: gen-man-page with: args: >- --standalone --to man --variable=title:"YQ" --variable=section:"1" --variable=header:"yq (https://github.com/mikefarah/yq/) version ${{ steps.get_version.outputs.VERSION }}" --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 yq.1 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: ${{ 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/* 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 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: Build and push 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 and pushing version ${IMAGE_VERSION} of image ${IMAGE_NAME}" echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin docker buildx build --platform "${PLATFORMS}" -t "${IMAGE_NAME}:${IMAGE_VERSION}" -t "${IMAGE_NAME}:latest" -t "${IMAGE_NAME}:4" \ --push .