Release collection #24
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 collection | |
# yamllint disable-line rule:truthy | |
on: | |
workflow_dispatch: | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
# Do not run in private forks | |
if: github.repository == 'kubevirt/kubevirt.core' | |
outputs: | |
tag_version: ${{ steps.version.outputs.VERSION }} | |
permissions: | |
contents: write | |
actions: write | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.x | |
cache: pip | |
- name: Get current version | |
id: version | |
run: | | |
VERSION=$(grep version galaxy.yml | awk -F'"' '{ print $2 }') | |
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT | |
- name: Check if tag exists | |
id: exists | |
run: | | |
EXISTS=$(git tag | grep ${{ steps.version.outputs.VERSION }} || true) | |
echo "EXISTS=$EXISTS" >> $GITHUB_OUTPUT | |
- name: Fail if tag exists | |
if: ${{ steps.version.outputs.VERSION == steps.exists.outputs.EXISTS }} | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
core.setFailed('Release tag already exists') | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install ansible-core antsibull | |
ansible-galaxy collection install -r requirements.yml \ | |
-p /home/runner/.ansible/collections --force-with-deps | |
sudo apt install -y sed hub | |
- name: Build collection | |
run: | | |
ansible-galaxy collection build . | |
- name: Create changelog and documentation | |
uses: ansible-middleware/collection-docs-action@main | |
with: | |
collection_fqcn: kubevirt.core | |
collection_repo: kubevirt/kubevirt.core | |
dependencies: false | |
commit_changelog: true | |
commit_ghpages: false | |
changelog_release: true | |
generate_docs: false | |
token: ${{ secrets.GITHUB_TOKEN }} | |
bot_email: [email protected] | |
bot_account: kubevirt-bot | |
- name: Publish collection | |
run: | | |
ansible-galaxy collection publish *.tar.gz \ | |
--api-key "$ANSIBLE_GALAXY_API_KEY" | |
env: | |
ANSIBLE_GALAXY_API_KEY: ${{ secrets.ANSIBLE_GALAXY_API_KEY }} | |
- name: Create release tag | |
run: | | |
git config user.name kubevirt-bot | |
git config user.email [email protected] | |
git tag -a ${{ steps.version.outputs.VERSION }} \ | |
-m "Release v${{ steps.version.outputs.VERSION }}" || true | |
git push origin --tags | |
- name: Publish Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
tag_name: ${{ steps.version.outputs.VERSION }} | |
files: "*.tar.gz" | |
body_path: gh-release.md | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run docs workflow | |
run: | | |
gh workflow run docs.yml --ref main | |
gh workflow run docs.yml \ | |
--ref ${{ steps.version.outputs.VERSION }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run ci workflow | |
run: gh workflow run ci.yml --ref main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |