diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1eb61bc4..87491f60 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -44,8 +44,6 @@ jobs: mkdir -p build cp yq.1 build/yq.1 ./scripts/xcompile.sh - env: - VERSION: ${{ steps.get_version.outputs.VERSION }} - name: Release uses: softprops/action-gh-release@v1 diff --git a/.github/workflows/snap-release.yml b/.github/workflows/snap-release.yml index 7940f394..4fbfec03 100644 --- a/.github/workflows/snap-release.yml +++ b/.github/workflows/snap-release.yml @@ -13,17 +13,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - - name: Get the version - id: get_version - run: echo "VERSION=${GITHUB_REF##*/}" >> "${GITHUB_OUTPUT}" - - - name: Update snapcraft version file - env: - VERSION: ${{ steps.get_version.outputs.VERSION }} - uses: mikefarah/yq@master - with: - cmd: yq -i '.version = strenv(VERSION)' snap/snapcraft.yaml - uses: snapcore/action-build@v1 id: build - uses: snapcore/action-publish@v1 diff --git a/cmd/version.go b/cmd/version.go index 745640e3..fde34507 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -11,7 +11,7 @@ var ( GitDescribe string // Version is main version number that is being run at the moment. - Version = "" + Version = "v4.30.4" // VersionPrerelease is a pre-release marker for the version. If this is "" (empty string) // then it means that it is a final release. Otherwise, this is a pre-release diff --git a/scripts/bump-version.sh b/scripts/bump-version.sh new file mode 100755 index 00000000..3fd7b844 --- /dev/null +++ b/scripts/bump-version.sh @@ -0,0 +1,43 @@ +#!/bin/bash +set -e + +if [ "$1" == "" ]; then + echo "Please specify at a version" + exit 1 +fi + +version=$1 + +# validate version is in the right format +echo $version | sed -r '/v4\.[0-9][0-9]\.[0-9][0-9]?$/!{q1}' + +previousVersion=$(cat cmd/version.go| sed -n 's/.*Version = "\([^"]*\)"/\1/p') + +echo "Updating from $previousVersion to $version" + +sed -i "s/\(.*Version =\).*/\1 \"$version\"/" cmd/version.go + +go build . +actualVersion=$(./yq --version) + +if [ "$actualVersion" != "yq (https://github.com/mikefarah/yq/) version $version" ]; then + echo "Failed to update version.go" + exit 1 +else + echo "version.go updated" +fi + + version=$version ./yq -i '.version=strenv(version)' snap/snapcraft.yaml + +actualSnapVersion=$(./yq '.version' snap/snapcraft.yaml) + +if [ "$actualSnapVersion" != "$version" ]; then + echo "Failed to update snapcraft" + exit 1 +else + echo "snapcraft updated" +fi + +git add cmd/version.go snap/snapcraft.yaml +git commit -m 'Bumping version' +git tag $version \ No newline at end of file diff --git a/scripts/xcompile.sh b/scripts/xcompile.sh index 41d3f2cb..cc22b7ef 100755 --- a/scripts/xcompile.sh +++ b/scripts/xcompile.sh @@ -2,7 +2,7 @@ set -e # you may need to go install github.com/mitchellh/gox@v1.0.1 first echo $VERSION -CGO_ENABLED=0 gox -ldflags "${LDFLAGS} -X github.com/mikefarah/yq/v4/cmd.Version=${VERSION}" -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" +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" cd build diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 14d734a8..902688a0 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,18 +1,15 @@ name: yq -version: 'v4.30.3' +version: 'v4.30.4' summary: A lightweight and portable command-line YAML processor description: | The aim of the project is to be the jq or sed of yaml files. - base: core18 grade: stable # devel|stable. must be 'stable' to release into candidate/stable channels confinement: strict - apps: yq: command: yq plugs: [home] - parts: yq: plugin: go