Skip to content

Commit

Permalink
Add documentation.
Browse files Browse the repository at this point in the history
  • Loading branch information
felixfontein committed Jan 21, 2024
1 parent e1367bc commit d28df34
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 3 deletions.
File renamed without changes.
96 changes: 96 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# GitHub Action for building Ansible collections

[![Linting](https://github.com/ansible-community/github-action-build-collection/actions/workflows/yamllint.yml/badge.svg)](https://github.com/ansible-community/github-action-build-collection/actions/workflows/nox.yml)
[![REUSE status](https://api.reuse.software/badge/github.com/ansible-community/github-action-build-collection)](https://api.reuse.software/info/github.com/ansible-community/github-action-build-collection)

A composite GitHub Action that allows to build an Ansible collection artifact in GitHub Actions CI/CD workflows.


## Usage

To use the action, add the following step to your workflow file (for example `.github/workflows/build-collection.yml`):

```yaml
- name: Check out your collection repository
uses: actions/checkout@v4

- name: Build collection
id: build-collection
uses: ansible-community/github-action-build-collection@main

- name: Upload built collection as artifact
uses: actions/upload-artifact@v4
with:
name: my-collection
path: ${{ steps.build-collection.outputs.artifact-filename }}
```
## Options
The follow options can be provided to this GitHub Action.
### `python-version`

The Python version to use for running ansible-core.

**(DEFAULT: `3.12`)**

### `ansible-core-version`

The branch of tag name of ansible-core to install.
This is assumed to exist in https://github.com/ansible/ansible.

**(DEFAULT: `stable-2.16`)**

### `subdirectory`

The subdirectory in which the collection's sources can be found. Must contain the `galaxy.yml` file.

**(DEFAULT: `.`)**

### `collection-requirements-path`

If provided, the collection's requirements will be written as a Galaxy `requirements.yml` file to this path.

## Outputs

The GitHub Action provides the following outputs that can be used in further workflow steps.

### `collection-full-name`

The collection's full name (namespace.name).

### `collection-name`

The collection's name. For example `ansible.posix`'s name is `posix`.

### `collection-namespace`

The collection's namespace. For example `ansible.posix`'s namespace is `ansible`.

### `collection-version`

The collection's version. Will be set to `0.0.1` if no `version` field is present in `galaxy.yml`.

### `artifact-filename`

Filename of the built collection artifact.

### `artifact-path`

Path to the built collection artifact.

## Bundled shared workflow

This GitHub Action bundles a shared workflow, [build-collection.yaml](https://github.com/ansible-community/github-action-build-collection/blob/main/.github/workflows/build-collection.yml), which allows you to build a collection, and upload the built collection artifact together with its `requirements.yml` file as a GitHub artifact.

```yaml
jobs:
build-collection:
name: Build collection artifact
permissions:
contents: read
uses: ansible-community/github-action-build-collection/.github/workflows/build-collection.yml@main
```

Please check out the workflow for the options it supports, and for which outputs it provides.
7 changes: 4 additions & 3 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,20 @@ author: "Felix Fontein (@felixfontein)"
inputs:
python-version:
description: >-
The Python version to use.
The Python version to use for running ansible-core.
default: '3.12'
ansible-core-version:
description: >-
The branch of tag name of ansible-core to install.
This is assumed to exist in https://github.com/ansible/ansible.
default: 'stable-2.16'
subdirectory:
description: >-
The subdirectory in which the collection's sources can be found. Must contain the `galaxy.yml` file.
default: .
collection-requirements-path:
description: >-
If provided, the collection's requirements will be written as a Galaxy requirements.yml file to this path.
If provided, the collection's requirements will be written as a Galaxy `requirements.yml` file to this path.
outputs:
collection-full-name:
description: >-
Expand All @@ -38,7 +39,7 @@ outputs:
value: ${{ steps.collection-metadata.outputs.namespace }}
collection-version:
description: >-
The collection's version. Will be set to 0.0.1 if no `version` field is present in `galaxy.yml`.
The collection's version. Will be set to `0.0.1` if no `version` field is present in `galaxy.yml`.
value: ${{ steps.collection-metadata.outputs.version }}
artifact-filename:
description: >-
Expand Down

0 comments on commit d28df34

Please sign in to comment.