You've already forked prometheus-exporters
update varnish build
This commit is contained in:
@@ -11,47 +11,69 @@ jobs:
|
|||||||
validate:
|
validate:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
build: ${{ steps.new_version.outputs.build }}
|
build: ${{ steps.check_version.outputs.build }}
|
||||||
version: ${{ steps.new_version.outputs.version }}
|
version: ${{ steps.check_version.outputs.version }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Get latest release version
|
- name: Check for latest release version
|
||||||
id: new_version
|
id: check_version
|
||||||
run: |
|
run: |
|
||||||
CURRENT=`cat .version`
|
# Define version file specific to this exporter
|
||||||
LATEST=`curl --silent https://api.github.com/repos/jonnenauha/prometheus_varnish_exporter/releases/latest | jq -r .tag_name | sed "s/v//"`
|
VERSION_FILE=".varnish-exporter.version"
|
||||||
echo "current registered version: $CURRENT"
|
|
||||||
echo "latest version on remote repo: $LATEST"
|
# Initialize if missing
|
||||||
echo "version=$LATEST" >> $GITHUB_OUTPUT
|
if [ ! -f "$VERSION_FILE" ]; then echo "0.0.0" > "$VERSION_FILE"; fi
|
||||||
if awk "BEGIN {exit !($LATEST > $CURRENT)}"; then
|
|
||||||
echo $LATEST > .version
|
CURRENT=$(cat "$VERSION_FILE")
|
||||||
echo "build=true" >> $GITHUB_OUTPUT
|
# 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
|
else
|
||||||
|
echo "Up to date."
|
||||||
echo "build=false" >> $GITHUB_OUTPUT
|
echo "build=false" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
echo "VERSION=`cat .version`" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- uses: stefanzweifel/git-auto-commit-action@v6
|
- uses: stefanzweifel/git-auto-commit-action@v6
|
||||||
with:
|
with:
|
||||||
branch: main
|
branch: main
|
||||||
file_pattern: '.version'
|
file_pattern: '.varnish-exporter.version'
|
||||||
commit_user_name: gitea-actions[bot]
|
commit_user_name: gitea-actions[bot]
|
||||||
commit_user_email: no-reply@brainsys.io
|
commit_user_email: no-reply@brainsys.io
|
||||||
commit_message: gitea-actions auto commit - update version
|
commit_message: "chore(varnish): update version to ${{ env.VERSION }}"
|
||||||
tagging_message: '${{ env.VERSION }}'
|
tagging_message: 'varnish-v${{ env.VERSION }}'
|
||||||
push_options: '--force'
|
push_options: '--force'
|
||||||
|
|
||||||
- name: DEBUG - build value
|
- name: DEBUG - build value
|
||||||
run: echo "${{ steps.new_version.outputs.build }}"
|
run: echo "${{ steps.check_version.outputs.build }}"
|
||||||
|
|
||||||
- name: DEBUG - version value
|
|
||||||
run: echo "${{ steps.new_version.outputs.version }}"
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
needs: validate
|
needs: validate
|
||||||
if: needs.validate.outputs.build == 'true'
|
if: needs.validate.outputs.build == 'true'
|
||||||
timeout-minutes: 2
|
#timeout-minutes: 2
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|||||||
Reference in New Issue
Block a user