--- name: Release collection on: workflow_dispatch: jobs: release: runs-on: ubuntu-latest if: github.repository == 'ansible-middleware/keycloak' permissions: actions: write checks: write contents: write deployments: write packages: write pages: write steps: - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 0 token: ${{ secrets.TRIGGERING_PAT }} - name: Set up Python uses: actions/setup-python@v1 with: python-version: "3.x" - name: Get current version id: get_version run: echo "::set-output name=TAG_VERSION::$(grep version galaxy.yml | awk -F'"' '{ print $2 }')" - name: Check if tag exists id: check_tag run: echo "::set-output name=TAG_EXISTS::$(git tag | grep ${{ steps.get_version.outputs.TAG_VERSION }})" - name: Fail if tag exists if: ${{ steps.get_version.outputs.TAG_VERSION == steps.check_tag.outputs.TAG_EXISTS }} uses: actions/github-script@v3 with: script: | core.setFailed('Release tag already exists') - name: Install dependencies run: | python -m pip install --upgrade pip pip install ansible-core antsibull 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: middleware_automation.keycloak collection_repo: ansible-middleware/keycloak dependencies: false commit_changelog: true commit_ghpages: false changelog_release: true generate_docs: false token: ${{ secrets.GITHUB_TOKEN }} - name: Publish collection env: ANSIBLE_GALAXY_API_KEY: ${{ secrets.ANSIBLE_GALAXY_API_KEY }} run: | ansible-galaxy collection publish *.tar.gz --api-key $ANSIBLE_GALAXY_API_KEY - name: Create release tag run: | git config user.name github-actions git config user.email github-actions@github.com git tag -a ${{ steps.get_version.outputs.TAG_VERSION }} -m "Release v${{ steps.get_version.outputs.TAG_VERSION }}" || true git push origin --tags - name: Publish Release uses: softprops/action-gh-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ steps.get_version.outputs.TAG_VERSION }} files: "*.tar.gz" body_path: gh-release.md dispatch: needs: release strategy: matrix: repo: ['ansible-middleware/cross-dc-rhsso-demo', 'ansible-middleware/flange-demo', 'ansible-middleware/ansible-middleware-ee'] runs-on: ubuntu-latest steps: - name: Repository Dispatch uses: peter-evans/repository-dispatch@v1 with: token: ${{ secrets.TRIGGERING_PAT }} repository: ${{ matrix.repo }} event-type: "Dependency released - Keycloak v${{ steps.get_version.outputs.TAG_VERSION }}" client-payload: '{ "github": ${{toJson(github)}} }'