Skip to content

Automatic Regular Releases #19

Automatic Regular Releases

Automatic Regular Releases #19

Workflow file for this run

---
# This workflow requires a GALAXY_API_KEY secret present in the GitHub
# repository or organization.
#
# See: https://github.com/marketplace/actions/publish-ansible-role-to-galaxy
# See: https://github.com/ansible/galaxy/issues/46
#
# Note on the file name:
# Reminding me (@hexylena) to make a release of a role was the last thing
# @Slugger70 asked me our group chat. I'd forgotten to do it and he was
# waiting on me for it, well, here's to you mate, none of us can forget to
# make a point release again.
name: "Automatic Regular Releases"
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * 1'
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Python 3.
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install Ansible.
run: pip3 install ansible-base
- name: Check for changes
run: |
MOST_RECENT_TAG=$(git describe --tags --abbrev=0)
CHANGES=$(git diff ${MOST_RECENT_TAG} --name-only | wc -l)
echo "Found ${CHANGES} files"
git diff ${MOST_RECENT_TAG} --name-only
echo "changed_files=${CHANGES}" >> $GITHUB_ENV
- name: Create a new git tag
run: |
MOST_RECENT_TAG=$(git describe --tags --abbrev=0)
major_minor=$(echo "$MOST_RECENT_TAG" | sed 's/\(.*\..*\.\)\(.*\)/\1/')
patch=$(echo "$MOST_RECENT_TAG" | sed 's/\(.*\..*\.\)\(.*\)/\2/')
newpatch=$(echo "$patch + 1" | bc)
NEW_TAG="${major_minor}${newpatch}"
echo "$MOST_RECENT_TAG -> $NEW_TAG"
git config user.name github-actions
git config user.email github-actions@github.com
git tag "$NEW_TAG"
git push --tags
if: env.changed_files > 0
# We have to do this step as GHA prevents triggering it's own actions, to prevent runaway loops.
- name: Trigger a new import on Galaxy.
run: ansible-galaxy role import --api-key ${{ secrets.GALAXY_API_KEY }} $(echo ${{ github.repository }} | cut -d/ -f1) $(echo ${{ github.repository }} | cut -d/ -f2) --branch main
if: env.changed_files > 0