You've already forked prometheus-exporters
update varnish build
This commit is contained in:
@@ -11,47 +11,69 @@ jobs:
|
||||
validate:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
build: ${{ steps.new_version.outputs.build }}
|
||||
version: ${{ steps.new_version.outputs.version }}
|
||||
build: ${{ steps.check_version.outputs.build }}
|
||||
version: ${{ steps.check_version.outputs.version }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Get latest release version
|
||||
id: new_version
|
||||
- name: Check for latest release version
|
||||
id: check_version
|
||||
run: |
|
||||
CURRENT=`cat .version`
|
||||
LATEST=`curl --silent https://api.github.com/repos/jonnenauha/prometheus_varnish_exporter/releases/latest | jq -r .tag_name | sed "s/v//"`
|
||||
echo "current registered version: $CURRENT"
|
||||
echo "latest version on remote repo: $LATEST"
|
||||
echo "version=$LATEST" >> $GITHUB_OUTPUT
|
||||
if awk "BEGIN {exit !($LATEST > $CURRENT)}"; then
|
||||
echo $LATEST > .version
|
||||
# Define version file specific to this exporter
|
||||
VERSION_FILE=".varnish-exporter.version"
|
||||
|
||||
# Initialize if missing
|
||||
if [ ! -f "$VERSION_FILE" ]; then echo "0.0.0" > "$VERSION_FILE"; fi
|
||||
|
||||
CURRENT=$(cat "$VERSION_FILE")
|
||||
# Get latest tag. Fail silently on curl error, verify json output
|
||||
LATEST=$(curl --silent --fail https://api.github.com/repos/jonnenauha/prometheus_varnish_exporter/releases/latest | jq -r .tag_name | sed "s/^v//")
|
||||
|
||||
if [ -z "$LATEST" ] || [ "$LATEST" = "null" ]; then
|
||||
echo "::error::Failed to fetch latest version from GitHub"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Current local version: $CURRENT"
|
||||
echo "Latest remote version: $LATEST"
|
||||
|
||||
# Version comparison using sort -V (Handles 1.10 > 1.9 correctly)
|
||||
if [ "$CURRENT" != "$LATEST" ]; then
|
||||
# Sort the two versions and take the last one (the highest)
|
||||
NEWER=$(printf "%s\n%s" "$CURRENT" "$LATEST" | sort -V | tail -n1)
|
||||
|
||||
if [ "$NEWER" = "$LATEST" ]; then
|
||||
echo "New version detected: $LATEST"
|
||||
echo "$LATEST" > "$VERSION_FILE"
|
||||
echo "build=true" >> $GITHUB_OUTPUT
|
||||
echo "version=$LATEST" >> $GITHUB_OUTPUT
|
||||
echo "VERSION=$LATEST" >> $GITHUB_ENV
|
||||
else
|
||||
echo "Remote version ($LATEST) is not newer than local ($CURRENT). Skipping."
|
||||
echo "build=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
else
|
||||
echo "Up to date."
|
||||
echo "build=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
echo "VERSION=`cat .version`" >> $GITHUB_ENV
|
||||
|
||||
- uses: stefanzweifel/git-auto-commit-action@v6
|
||||
with:
|
||||
branch: main
|
||||
file_pattern: '.version'
|
||||
file_pattern: '.varnish-exporter.version'
|
||||
commit_user_name: gitea-actions[bot]
|
||||
commit_user_email: no-reply@brainsys.io
|
||||
commit_message: gitea-actions auto commit - update version
|
||||
tagging_message: '${{ env.VERSION }}'
|
||||
commit_message: "chore(varnish): update version to ${{ env.VERSION }}"
|
||||
tagging_message: 'varnish-v${{ env.VERSION }}'
|
||||
push_options: '--force'
|
||||
|
||||
- name: DEBUG - build value
|
||||
run: echo "${{ steps.new_version.outputs.build }}"
|
||||
|
||||
- name: DEBUG - version value
|
||||
run: echo "${{ steps.new_version.outputs.version }}"
|
||||
run: echo "${{ steps.check_version.outputs.build }}"
|
||||
|
||||
build:
|
||||
needs: validate
|
||||
if: needs.validate.outputs.build == 'true'
|
||||
timeout-minutes: 2
|
||||
#timeout-minutes: 2
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
Reference in New Issue
Block a user