galaxyproject/ansible-galaxy (opens in new tab)
3 workflows
Molecule Tests
.github/workflows/molecule.yml (opens in new tab)Triggers
pull_request push
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| molecule | ubuntu-20.04 | 4 | actions/checkout@v3 actions/setup-python@v4 |
Raw YAML
---
name: Molecule Tests
on:
pull_request:
push:
branches:
- main
# TODO: test dev weekly
jobs:
molecule:
name: molecule
# systemd may not work under 22.04 due to cgroupsv2
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
scenario:
- default
- prebuilt_client
from-image:
- centos:7
- rockylinux:8
- ubuntu:20.04
- ubuntu:22.04
galaxy-version:
- '22.01'
- '22.05'
- '23.0'
- 'dev'
exclude:
# wheels often don't exist in the combination of old package versions in older galaxy releases for newer
# python versions in newer operating systems; nobody should be installing an old galaxy on a new os anyway, so
# we can just skip those combinations.
- from-image: ubuntu:22.04
galaxy-version: '21.01'
- from-image: ubuntu:22.04
galaxy-version: '22.01'
- scenario: prebuilt_client
galaxy-version: '22.01'
- scenario: prebuilt_client
galaxy-version: '22.05'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: actions/setup-python@v4
with:
python-version: '3.x'
# The molecule-docker pin can be removed after molecule-docker>2.1.0 is released, see:
# https://github.com/ansible-community/molecule/issues/3733
- name: Install dependencies
run: pip3 install molecule[docker] ansible-core 'molecule-docker!=2.1.0'
- name: Run molecule
run: molecule test -s ${{ matrix.scenario }}
env:
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
ANSIBLE_STDOUT_CALLBACK: yaml
FROM_IMAGE: '${{ matrix.from-image }}'
GALAXY_COMMIT_ID: 'release_${{ matrix.galaxy-version }}'
GALAXY_VERSION: '${{ matrix.galaxy-version }}'
Last fetched:
Release (by Tag Push)
.github/workflows/release.yml (opens in new tab)Triggers
push
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| Release | ubuntu-latest | 4 | actions/checkout@v3 actions/setup-python@v3 |
Raw YAML
---
# 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
name: Release (by Tag Push)
'on':
push:
tags:
- '*'
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v3
- name: Set up Python 3.
uses: actions/setup-python@v3
with:
python-version: '3.x'
- name: Install Ansible.
run: pip3 install ansible-core
- 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
Last fetched:
Automatic Regular Releases
.github/workflows/slugger.yml (opens in new tab)Triggers
workflow_dispatch schedule
Jobs
| Job | Runs on | Steps | Actions used |
|---|---|---|---|
| Release | ubuntu-latest | 6 | actions/checkout@v3 actions/setup-python@v3 |
Raw YAML
---
# 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-core
- 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
Last fetched: