Release and Deploy collection #28
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Release and Deploy collection | |
on: # yamllint disable-line rule:truthy | |
workflow_dispatch: | |
jobs: | |
releaseanddeploy: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.10"] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Get current version | |
id: cversion | |
run: echo "::set-output name=version::$(grep 'version:' galaxy.yml | awk -F'"' '{ print $2 }')" | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade ansible | |
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | |
- name: Copy files and directories to source | |
run: | | |
mkdir -p build/src | |
cp $files build/src | |
cp -rf $directories build/src | |
env: | |
files: "README.md CHANGELOG.md galaxy.yml" # "README.md LICENSE ansible.cfg galaxy.yml" | |
directories: "roles meta plugins" # "inventories playbooks vars docs" | |
- name: Build Ansible Collection | |
run: ansible-galaxy collection build build/src --force | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: v${{ steps.cversion.outputs.version }} | |
release_name: Release v${{ steps.cversion.outputs.version }} | |
body: | | |
# Ansible Collection: ifalatik.docker | |
Install with: | |
ansible-galaxy collection install -r requirements.yml -f | |
The requirements.yml needs to have the following format and content: | |
--- | |
collections: | |
- https://github.com/ifalatik/ansible_collection_docker/releases/download/v${{ steps.cversion.outputs.version }}/ifalatik-docker-${{ steps.cversion.outputs.version }}.tar.gz | |
draft: false | |
prerelease: false | |
- name: Upload Release Asset | |
id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ifalatik-docker-${{ steps.cversion.outputs.version }}.tar.gz | |
asset_name: ifalatik-docker-${{ steps.cversion.outputs.version }}.tar.gz | |
asset_content_type: application/tar+gzip | |
- name: Deploy Ansible collection to Galaxy | |
run: ansible-galaxy collection publish ifalatik-docker-${{ steps.cversion.outputs.version }}.tar.gz --api-key ${{ secrets.GALAXY_API_KEY }} |