--- 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@v6 with: fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v6 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@v8 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: kubevirtbot@redhat.com 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 kubevirtbot@redhat.com 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@v2 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 }}