Fixing versioning code for release

This commit is contained in:
Mike Farah 2022-11-15 20:08:58 +11:00
parent fd35530f35
commit a6d1a52e33
6 changed files with 46 additions and 19 deletions

View File

@ -44,8 +44,6 @@ jobs:
mkdir -p build mkdir -p build
cp yq.1 build/yq.1 cp yq.1 build/yq.1
./scripts/xcompile.sh ./scripts/xcompile.sh
env:
VERSION: ${{ steps.get_version.outputs.VERSION }}
- name: Release - name: Release
uses: softprops/action-gh-release@v1 uses: softprops/action-gh-release@v1

View File

@ -13,17 +13,6 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - 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 - uses: snapcore/action-build@v1
id: build id: build
- uses: snapcore/action-publish@v1 - uses: snapcore/action-publish@v1

View File

@ -11,7 +11,7 @@ var (
GitDescribe string GitDescribe string
// Version is main version number that is being run at the moment. // 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) // 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 // then it means that it is a final release. Otherwise, this is a pre-release

43
scripts/bump-version.sh Executable file
View File

@ -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

View File

@ -2,7 +2,7 @@
set -e set -e
# you may need to go install github.com/mitchellh/gox@v1.0.1 first # you may need to go install github.com/mitchellh/gox@v1.0.1 first
echo $VERSION 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 cd build

View File

@ -1,18 +1,15 @@
name: yq name: yq
version: 'v4.30.3' version: 'v4.30.4'
summary: A lightweight and portable command-line YAML processor summary: A lightweight and portable command-line YAML processor
description: | description: |
The aim of the project is to be the jq or sed of yaml files. The aim of the project is to be the jq or sed of yaml files.
base: core18 base: core18
grade: stable # devel|stable. must be 'stable' to release into candidate/stable channels grade: stable # devel|stable. must be 'stable' to release into candidate/stable channels
confinement: strict confinement: strict
apps: apps:
yq: yq:
command: yq command: yq
plugs: [home] plugs: [home]
parts: parts:
yq: yq:
plugin: go plugin: go