summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Meyers <chris.meyers.fsu@gmail.com>2024-07-12 19:34:34 +0200
committerChris Meyers <chrismeyersfsu@users.noreply.github.com>2024-07-17 21:10:25 +0200
commitacd834df8b9b9cf262461ce8a99a01f2b6c67952 (patch)
treec83a67528e98c938dd28f4e0cd48e4946db37909
parentUpdated the api file to reflect 2024 date (#15369) (diff)
downloadawx-acd834df8b9b9cf262461ce8a99a01f2b6c67952.tar.xz
awx-acd834df8b9b9cf262461ce8a99a01f2b6c67952.zip
Check and update django-ansible-base
* Check upstream django-ansible-base releases. If the version upstream does not match the version we are pinned to then submit a PR with the upstream version.
-rw-r--r--.github/workflows/dab-release.yml48
-rwxr-xr-xrequirements/django-ansible-base-pinned-version.sh77
2 files changed, 125 insertions, 0 deletions
diff --git a/.github/workflows/dab-release.yml b/.github/workflows/dab-release.yml
new file mode 100644
index 0000000000..c553dd2731
--- /dev/null
+++ b/.github/workflows/dab-release.yml
@@ -0,0 +1,48 @@
+---
+name: DAB requirements update
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '0 * * * *' # once an hour
+permissions:
+ pull-requests: write
+ contents: write
+jobs:
+ dab-pin-newest:
+ runs-on: ubuntu-latest
+ steps:
+ - id: dab-release
+ name: Get current django-ansible-base release version
+ uses: pozetroninc/github-action-get-latest-release@master
+ with:
+ owner: ansible
+ repo: django-ansible-base
+ excludes: prerelease, draft
+
+ - name: Check out respository code
+ uses: actions/checkout@v4
+
+ - id: dab-pinned
+ name: Get current django-ansible-base pinned version
+ run:
+ echo "version=$(requirements/django-ansible-base-pinned-version.sh)" >> "$GITHUB_OUTPUT"
+
+ - name: Update django-ansible-base pinned version to upstream release
+ run:
+ requirements/django-ansible-base-pinned-version.sh -s ${{ steps.dab-release.outputs.release }}
+
+ - name: Create Pull Request
+ uses: peter-evans/create-pull-request@v6
+ with:
+ base: devel
+ branch: bump-django-ansible-base
+ title: Bump django-ansible-base
+ body: |
+ Automated .github/workflows/dab-release.yml
+
+ django-ansible-base upstream released version == ${{ steps.dab-release.outputs.release }}
+ requirements_git.txt django-ansible-base pinned version == ${{ steps.dab-pinned.outputs.version }}
+ commit-message: |
+ Update django-ansible-base version to ${{ steps.dab-pinned.outputs.version }}
+ add-paths:
+ requirements/requirements_git.txt \ No newline at end of file
diff --git a/requirements/django-ansible-base-pinned-version.sh b/requirements/django-ansible-base-pinned-version.sh
new file mode 100755
index 0000000000..84905fff4e
--- /dev/null
+++ b/requirements/django-ansible-base-pinned-version.sh
@@ -0,0 +1,77 @@
+#!/bin/bash
+set +x
+
+# CONSTANTS
+export REGEX_LEFT='https://github.com/ansible/django-ansible-base@'
+export REGEX_RIGHT='#egg=django-ansible-base'
+
+# GLOBALS
+SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
+REQ_FILE=$SCRIPT_DIR/requirements_git.txt
+
+# Pin Function
+DESIRED_VERSION=''
+Pin()
+{
+ export DESIRED_VERSION
+ perl -p -i -e 's/\Q$ENV{REGEX_LEFT}\E(.*?)\Q$ENV{REGEX_RIGHT}\E/$ENV{REGEX_LEFT}$ENV{DESIRED_VERSION}$ENV{REGEX_RIGHT}/g' $REQ_FILE
+}
+
+# Current Function
+Current()
+{
+ REQUIREMENTS_LINE=$(grep django-ansible-base $REQ_FILE)
+
+ echo "$REQUIREMENTS_LINE" | perl -nE 'say $1 if /\Q$ENV{REGEX_LEFT}\E(.*?)\Q$ENV{REGEX_RIGHT}\E/'
+}
+
+
+Help()
+{
+ # Display Help
+ echo ""
+ echo "Help:"
+ echo ""
+ echo "Interact with django-ansible-base in $REQ_FILE."
+ echo "By default, output the current django-ansible-base pinned version."
+ echo
+ echo "Syntax: scriptTemplate [-s|h|v]"
+ echo "options:"
+ echo "s Set django-ansible-base version to pin to."
+ echo "h Print this Help."
+ echo "v Verbose mode."
+ echo
+}
+
+if [ $# -eq 0 ]; then
+ Current
+ exit
+fi
+
+
+while getopts ":hs:" option; do
+ case $option in
+ h) # display Help
+ Help
+ exit
+ ;;
+ s)
+ DESIRED_VERSION=$OPTARG;;
+ :)
+ echo "Option -${OPTARG} requires an argument."
+ Help
+ exit 1
+ ;;
+ \?) # Invalid option
+ echo "Error: Invalid option"
+ echo ""
+ Help
+ exit;;
+ esac
+done
+
+if [ -n "$DESIRED_VERSION" ]; then
+ Pin
+ Current
+fi
+