Skip to content

antsibull-build

antsibull-build #158

---
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
name: antsibull-build
'on':
push:
branches: [main]
pull_request:
branches: [main]
# Run once per week (Thursday at 04:00 UTC)
schedule:
- cron: '0 4 * * 4'
workflow_dispatch:
jobs:
build:
name: 'Build Ansible community distribution (${{ matrix.name }})'
runs-on: ubuntu-latest
strategy:
matrix:
include:
# Using ansible_version as X.99.0 since it is unreleased so new deps are generated
- name: Ansible 9
ansible_version: 9.99.0
ansible_major_version: 9
- name: Ansible 10
ansible_version: 10.99.0
ansible_major_version: 10
- name: Ansible 11
ansible_version: 11.99.0
ansible_major_version: 11
steps:
- name: Check out antsibull
uses: actions/checkout@v4
with:
repository: ansible-community/antsibull
ref: main
path: antsibull
- name: Check out antsibull-core
uses: actions/checkout@v4
with:
repository: ansible-community/antsibull-core
ref: main
path: antsibull-core
- name: Check out antsibull-changelog
uses: actions/checkout@v4
with:
repository: ansible-community/antsibull-changelog
ref: main
path: antsibull-changelog
- name: Check out antsibull-docutils
uses: actions/checkout@v4
with:
repository: ansible-community/antsibull-docutils
ref: main
path: antsibull-docutils
- name: Check out antsibull-fileutils
uses: actions/checkout@v4
with:
repository: ansible-community/antsibull-fileutils
ref: main
path: antsibull-fileutils
- name: Pre-create build directory
run: mkdir -p antsibull/build
# This is where the antsibull build-release role expects it by default
- name: Check out ansible-build-data under antsibull build directory
uses: actions/checkout@v4
with:
path: antsibull/build/ansible-build-data
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
working-directory: antsibull
run: |
python3 -m pip install --upgrade pip
python3 -m pip install ansible-core . ../antsibull-core ../antsibull-changelog ../antsibull-docutils ../antsibull-fileutils
ansible-galaxy collection install 'git+https://github.com/ansible-collections/community.general.git'
- name: Lint collection metadata
working-directory: antsibull/build/ansible-build-data/${{ matrix.ansible_major_version }}
run: |
antsibull-build lint-build-data ${{ matrix.ansible_major_version }}
- name: Test building a release with the defaults
working-directory: antsibull
run: |
ansible-playbook -vv playbooks/build-single-release.yaml \
-e antsibull_data_reset=false \
-e 'antsibull_ansible_version="${{ matrix.ansible_version }}"' \
-e 'antsibull_data_dir="{{ antsibull_data_git_dir }}/${{ matrix.ansible_major_version }}"' \
-e 'antsibull_build_file="ansible-${{ matrix.ansible_major_version }}.build"'
env:
# Make result better readable
ANSIBLE_CALLBACK_RESULT_FORMAT: yaml