Skip to content

Add Bump.sh to Microcks adopters (#37) #72

Add Bump.sh to Microcks adopters (#37)

Add Bump.sh to Microcks adopters (#37) #72

# Thanks to @derberg for the original code:
# https://github.com/derberg/manage-files-in-multiple-repositories?tab=readme-ov-file
name: Global workflow to rule replicate files in all repositories
on:
push:
branches: [main]
paths:
- ".github/workflows/**"
- "*.md"
workflow_dispatch:
inputs:
repo_name:
description: |
You can specify the repository's name where workflows should be pushed manually, as long as workflow settings do not ignore the repository.
If you do not specify the exact repository name, the workflow will try to replicate all missing changes to all repositories.
required: false
jobs:
# Set environment variables for all repositories concerned by this global workflow
set-env:
runs-on: ubuntu-latest
outputs:
CODE_OF_CONDUCT: ${{ steps.step-set-env.outputs.CODE_OF_CONDUCT }}
ADOPTERS: ${{ steps.step-set-env.outputs.ADOPTERS }}
BACKERS: ${{ steps.step-set-env.outputs.BACKERS }}
ROADMAP: ${{ steps.step-set-env.outputs.ROADMAP }}
CHANGELOG: ${{ steps.step-set-env.outputs.CHANGELOG }}
GOVERNANCE: ${{ steps.step-set-env.outputs.GOVERNANCE }}
STALE-ISSUES: ${{ steps.step-set-env.outputs.STALE-ISSUES }}
CONTRIBUTING: ${{ steps.step-set-env.outputs.CONTRIBUTING }}
MAINTAINERS: ${{ steps.step-set-env.outputs.MAINTAINERS }}
DEPENDENCY_POLICY: ${{ steps.step-set-env.outputs.DEPENDENCY_POLICY }}
WELCOME-NEW-USERS: ${{ steps.step-set-env.outputs.WELCOME-NEW-USERS }}
steps:
- id: step-set-env
run: |
# Define environment variables for all repositories concerned by this global workflow
DELIVERED_COMPONENTS="microcks,microcks-cli,microcks-operator,microcks-ansible-operator,microcks-postman-runtime,microcks-testcontainers-java,microcks-testcontainers-go,microcks-testcontainers-node,microcks-quarkus,microcks-java-client,microcks-go-client,microcks-docker-desktop-extension,microcks-backstage-provider,microcks-jenkins-plugin,microcks-spectral-ruleset,import-github-action,test-github-action,hub.microcks.io"
DEMONSTRATIONS="microcks-testcontainers-java-spring-demo,microcks-testcontainers-node-nest-demo,microcks-testcontainers-go-demo,api-lifecycle,api-tooling"
DOCUMENTATION="microcks.io"
COMMUNITY_RESOURCES=".github,community,microcks-quickstarters,community-mocks"
EXCLUDED_ARCHIVED_REPOS="microcks-keycloak,microcks-go-operator,microcks-azure"
EXCLUDED_REPOS="microcks.github.io"
# Set environment variables for all repositories concerned by this global workflow
# See this issue for more details: https://github.com/microcks/.github/issues/16
# Concatenate environment variables to ignore and assign them to CODE_OF_CONDUCT
echo "CODE_OF_CONDUCT=$EXCLUDED_ARCHIVED_REPOS,$EXCLUDED_REPOS" >> "$GITHUB_OUTPUT"
# Concatenate environment variables to ignore and assign them to ADOPTERS & BACKERS
echo "ADOPTERS=$EXCLUDED_ARCHIVED_REPOS,$EXCLUDED_REPOS,$DEMONSTRATIONS,$DOCUMENTATION" >> "$GITHUB_OUTPUT"
echo "BACKERS=$EXCLUDED_ARCHIVED_REPOS,$EXCLUDED_REPOS,$DEMONSTRATIONS,$DOCUMENTATION" >> "$GITHUB_OUTPUT"
# Concatenate environment variables to ignore and assign them to ROADMAP
echo "ROADMAP=$EXCLUDED_ARCHIVED_REPOS,$EXCLUDED_REPOS,$DEMONSTRATIONS,$DOCUMENTATION,$COMMUNITY_RESOURCES" >> "$GITHUB_OUTPUT"
# Concatenate environment variables to ignore and assign them to CHANGELOG
echo "CHANGELOG=$EXCLUDED_ARCHIVED_REPOS,$EXCLUDED_REPOS,$DEMONSTRATIONS,$DOCUMENTATION,$COMMUNITY_RESOURCES" >> "$GITHUB_OUTPUT"
# Concatenate environment variables to ignore and assign them to GOVERNANCE
echo "GOVERNANCE=$EXCLUDED_ARCHIVED_REPOS,$EXCLUDED_REPOS,$DEMONSTRATIONS" >> "$GITHUB_OUTPUT"
# Concatenate environment variables to ignore and assign them to STALE-ISSUES
echo "STALE-ISSUES=$EXCLUDED_ARCHIVED_REPOS,$EXCLUDED_REPOS,$DEMONSTRATIONS,$DOCUMENTATION,$COMMUNITY_RESOURCES" >> "$GITHUB_OUTPUT"
# Concatenate environment variables to ignore and assign them to CONTRIBUTING
echo "CONTRIBUTING=$EXCLUDED_ARCHIVED_REPOS,$EXCLUDED_REPOS,$DEMONSTRATIONS" >> "$GITHUB_OUTPUT"
# Concatenate environment variables to ignore and assign them to MAINTAINERS
echo "MAINTAINERS=$EXCLUDED_ARCHIVED_REPOS,$EXCLUDED_REPOS" >> "$GITHUB_OUTPUT"
# Concatenate environment variables to ignore and assign them to DEPENDENCY_POLICY
echo "DEPENDENCY_POLICY=$EXCLUDED_ARCHIVED_REPOS,$EXCLUDED_REPOS,$DEMONSTRATIONS,$DOCUMENTATION,$COMMUNITY_RESOURCES" >> "$GITHUB_OUTPUT"
# Concatenate environment variables to ignore and assign them to WELOME-NEW-USERS
echo "WELCOME-NEW-USERS=$EXCLUDED_ARCHIVED_REPOS,$EXCLUDED_REPOS" >> "$GITHUB_OUTPUT"
# Replicate .github/CODE_OF_CONDUCT.md file in all repositories as described here: https://github.com/microcks/.github/issues/16
replicate_coc:
if: startsWith(github.repository, 'microcks/')
name: Replicate Code of Conduct in all repositories
runs-on: ubuntu-latest
needs: set-env
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Replicating file
uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25
with:
github_token: ${{ secrets.BOT_GH_TOKEN }}
patterns_to_include: CODE_OF_CONDUCT.md
exclude_private: true
exclude_forked: true
repos_to_ignore: ${{needs.set-env.outputs.CODE_OF_CONDUCT}}
committer_username: microcks-bot
committer_email: info@microcks.io
commit_message: |
chore: update CODE_OF_CONDUCT.md from global .github repo
Signed-off-by: microcks-bot <info@microcks.io>
# Replicate .github/ADOPTERS file in all repositories concerned as described here: https://github.com/microcks/.github/issues/16
replicate_adopters:
if: startsWith(github.repository, 'microcks/')
name: Replicate Adopters public list file in all repositories concerned
runs-on: ubuntu-latest
needs: set-env
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Replicating file
uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25
with:
github_token: ${{ secrets.BOT_GH_TOKEN }}
patterns_to_include: ADOPTERS.md
exclude_private: true
exclude_forked: true
repos_to_ignore: ${{needs.set-env.outputs.ADOPTERS}}
committer_username: microcks-bot
committer_email: info@microcks.io
commit_message: |
chore: update ADOPTERS.md from global .github repo
Signed-off-by: microcks-bot <info@microcks.io>
# Replicate .github/BACKERS file in all repositories concerned as described here: https://github.com/microcks/.github/issues/16
replicate_backers:
if: startsWith(github.repository, 'microcks/')
name: Replicate Backers public list file in all repositories concerned
runs-on: ubuntu-latest
needs: set-env
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Replicating file
uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25
with:
github_token: ${{ secrets.BOT_GH_TOKEN }}
patterns_to_include: BACKERS.md
exclude_private: true
exclude_forked: true
repos_to_ignore: ${{needs.set-env.outputs.BACKERS}}
committer_username: microcks-bot
committer_email: info@microcks.io
commit_message: |
chore: update BACKERS.md from global .github repo
Signed-off-by: microcks-bot <info@microcks.io>
# Replicate .github/ROADMAP file in all repositories concerned as described here: https://github.com/microcks/.github/issues/16
replicate_roadmap:
if: startsWith(github.repository, 'microcks/')
name: Replicate Roadmap file in all repositories concerned
runs-on: ubuntu-latest
needs: set-env
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Replicating file
uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25
with:
github_token: ${{ secrets.BOT_GH_TOKEN }}
patterns_to_include: ROADMAP.md
exclude_private: true
exclude_forked: true
repos_to_ignore: ${{needs.set-env.outputs.ROADMAP}}
committer_username: microcks-bot
committer_email: info@microcks.io
commit_message: |
chore: update ROADMAP.md from global .github repo
Signed-off-by: microcks-bot <info@microcks.io>
# Replicate .github/CHANGELOG file in all repositories concerned as described here:
replicate_changelog:
if: startsWith(github.repository, 'microcks/')
name: Replicate Changelog file in all repositories concerned
runs-on: ubuntu-latest
needs: set-env
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Replicating file
uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25
with:
github_token: ${{ secrets.BOT_GH_TOKEN }}
patterns_to_include: CHANGELOG.md
exclude_private: true
exclude_forked: true
repos_to_ignore: ${{needs.set-env.outputs.CHANGELOG}}
committer_username: microcks-bot
committer_email: info@microcks.io
commit_message: |
chore: update CHANGELOG.md from global .github repo
Signed-off-by: microcks-bot <info@microcks.io>
# Replicate .github/GOVERNANCE file in all repositories concerned as described here:
replicate_governance:
if: startsWith(github.repository, 'microcks/')
name: Replicate Governance file in all repositories concerned
runs-on: ubuntu-latest
needs: set-env
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Replicating file
uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25
with:
github_token: ${{ secrets.BOT_GH_TOKEN }}
patterns_to_include: GOVERNANCE.md
exclude_private: true
exclude_forked: true
repos_to_ignore: ${{needs.set-env.outputs.GOVERNANCE}}
committer_username: microcks-bot
committer_email: info@microcks.io
commit_message: |
chore: update GOVERNANCE.md from global .github repo
Signed-off-by: microcks-bot <info@microcks.io>
# Replicate .github/STALE-ISSUES file in all repositories concerned as described here:
replicate_stale_issues:
if: startsWith(github.repository, 'microcks/')
name: Replicate Stale issues file in all repositories concerned
runs-on: ubuntu-latest
needs: set-env
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Replicating file
uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25
with:
github_token: ${{ secrets.BOT_GH_TOKEN }}
patterns_to_include: .github/workflows/stale-issues-prs.yml
exclude_private: true
exclude_forked: true
repos_to_ignore: ${{needs.set-env.outputs.STALE-ISSUES}}
committer_username: microcks-bot
committer_email: info@microcks.io
commit_message: |
ci: update STALE-ISSUES workflow from global .github repo
Signed-off-by: microcks-bot <info@microcks.io>
# Replicate .github/CONTRIBUTING file in all repositories concerned as described here:
replicate_contributing:
if: startsWith(github.repository, 'microcks/')
name: Replicate Contributing file in all repositories concerned
runs-on: ubuntu-latest
needs: set-env
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Replicating file
uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25
with:
github_token: ${{ secrets.BOT_GH_TOKEN }}
patterns_to_include: CONTRIBUTING.md
exclude_private: true
exclude_forked: true
repos_to_ignore: ${{needs.set-env.outputs.CONTRIBUTING}}
committer_username: microcks-bot
committer_email: info@microcks.io
commit_message: |
chore: update CONTRIBUTING workflow from global .github repo
Signed-off-by: microcks-bot <info@microcks.io>
# Replicate .github/MAINTAINERS.md file in all repositories as described here: https://github.com/microcks/.github/issues/16
replicate_maintainers:
if: startsWith(github.repository, 'microcks/')
name: Replicate Maintainers in all repositories
runs-on: ubuntu-latest
needs: set-env
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Replicating file
uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25
with:
github_token: ${{ secrets.BOT_GH_TOKEN }}
patterns_to_include: MAINTAINERS.md
exclude_private: true
exclude_forked: true
repos_to_ignore: ${{needs.set-env.outputs.MAINTAINERS}}
committer_username: microcks-bot
committer_email: info@microcks.io
commit_message: |
chore: update MAINTAINERS.md from global .github repo
Signed-off-by: microcks-bot <info@microcks.io>
# Replicate .github/DEPENDENCY_POLICY.md file in all repositories as described here: https://github.com/microcks/.github/issues/16
replicate_dependency_policy:
if: startsWith(github.repository, 'microcks/')
name: Replicate Dependency Policy in all repositories
runs-on: ubuntu-latest
needs: set-env
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Replicating file
uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25
with:
github_token: ${{ secrets.BOT_GH_TOKEN }}
patterns_to_include: DEPENDENCY_POLICY.md
exclude_private: true
exclude_forked: true
repos_to_ignore: ${{needs.set-env.outputs.DEPENDENCY_POLICY}}
committer_username: microcks-bot
committer_email: info@microcks.io
commit_message: |
chore: update DEPENDENCY_POLICY.md from global .github repo
Signed-off-by: microcks-bot <info@microcks.io>
# Replicate .github/WELCOME-NEW-USERS.md file in all repositories as described here: https://github.com/microcks/.github/issues/16
replicate_welcome_new_users:
if: startsWith(github.repository, 'microcks/')
name: Replicate Welcome New Users file in all repositories concerned
runs-on: ubuntu-latest
needs: set-env
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Replicating file
uses: derberg/manage-files-in-multiple-repositories@beecbe897cf5ed7f3de5a791a3f2d70102fe7c25
with:
github_token: ${{ secrets.BOT_GH_TOKEN }}
patterns_to_include: .github/workflows/welcome-new-users.yml
exclude_private: true
exclude_forked: true
repos_to_ignore: ${{needs.set-env.outputs.WELCOME-NEW-USERS}}
committer_username: microcks-bot
committer_email: info@microcks.io
commit_message: |
ci: update WELCOME-NEW-USERS workflow from global .github repo
Signed-off-by: microcks-bot <info@microcks.io>