Skip to content
CI/CD Inventory

galaxyproject/ansible-galaxy (opens in new tab)

3 workflows

Triggers

pull_request push

Jobs

Jobs for Molecule Tests
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:

Triggers

push

Jobs

Jobs for Release (by Tag Push)
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:

Triggers

workflow_dispatch schedule

Jobs

Jobs for Automatic Regular Releases
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: