-
Notifications
You must be signed in to change notification settings - Fork 75
72 lines (63 loc) · 2.41 KB
/
slugger.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
---
# 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@v3
with:
fetch-depth: 0
- name: Set up Python 3.
uses: actions/setup-python@v3
with:
python-version: '3.x'
- name: Install Ansible.
run: pip3 install six ansible-base
- name: Check for changes
run: |
LATEST_TAG=$(git describe --tags --abbrev=0)
echo "The last released tag was ${LATEST_TAG}"
CHANGES=$(git diff ${LATEST_TAG} --name-only | wc -l)
echo "Found ${CHANGES} changed files"
git diff ${LATEST_TAG} --name-only
echo "changed_files=${CHANGES}" >> $GITHUB_ENV
- name: Create a new git tag
run: |
LATEST_TAG=$(git describe --tags --abbrev=0)
major_minor=$(echo "$LATEST_TAG" | sed 's/\(.*\..*\.\)\(.*\)/\1/')
patch=$(echo "$LATEST_TAG" | sed 's/\(.*\..*\.\)\(.*\)/\2/')
newpatch=$(echo "$patch + 1" | bc)
NEW_TAG="${major_minor}${newpatch}"
echo "$LATEST_TAG -> $NEW_TAG"
git config user.name github-actions
git config user.email github-actions@github.com
git tag "$NEW_TAG"
git push --tags
echo "Creating new tag $NEW_TAG" >> $GITHUB_STEP_SUMMARY
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: |
org=$(echo ${{ github.repository }} | cut -d/ -f1)
repo=$(echo ${{ github.repository }} | cut -d/ -f2)
key=${{ secrets.GALAXY_API_KEY }}
ansible-galaxy role import --api-key $key $org $repo --branch main
if: env.changed_files > 0