mirror of
https://github.com/prometheus-community/ansible
synced 2024-11-10 06:14:13 +00:00
Merge pull request #26 from gardar/ci/changelog
feat: semantic releases and automatic changelog.
This commit is contained in:
commit
4c2d82f8bb
15 changed files with 282 additions and 108 deletions
|
@ -1,2 +1,4 @@
|
||||||
---
|
---
|
||||||
profile: production
|
profile: production
|
||||||
|
warn_list:
|
||||||
|
- galaxy[version-incorrect] # until collection gets bumped to 1.x.x
|
||||||
|
|
52
.github/release-drafter.yml
vendored
Normal file
52
.github/release-drafter.yml
vendored
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
name-template: '$RESOLVED_VERSION'
|
||||||
|
tag-template: '$RESOLVED_VERSION'
|
||||||
|
categories:
|
||||||
|
- title: 'Major Changes'
|
||||||
|
labels:
|
||||||
|
- 'major' # c6476b
|
||||||
|
- title: 'Minor Changes'
|
||||||
|
labels:
|
||||||
|
- 'feature' # 006b75
|
||||||
|
- 'enhancement' # ededed
|
||||||
|
- 'refactoring'
|
||||||
|
- title: 'Bugfixes'
|
||||||
|
labels:
|
||||||
|
- 'bug' # fbca04
|
||||||
|
- title: 'Deprecations'
|
||||||
|
labels:
|
||||||
|
- 'deprecated' # fef2c0
|
||||||
|
exclude-labels:
|
||||||
|
- 'skip-changelog'
|
||||||
|
- 'duplicate'
|
||||||
|
version-resolver:
|
||||||
|
major:
|
||||||
|
labels:
|
||||||
|
- 'major'
|
||||||
|
minor:
|
||||||
|
labels:
|
||||||
|
- 'minor'
|
||||||
|
- 'feature'
|
||||||
|
- 'enhancement'
|
||||||
|
- 'refactoring'
|
||||||
|
patch:
|
||||||
|
labels:
|
||||||
|
- 'patch'
|
||||||
|
- 'bug'
|
||||||
|
- 'deprecated'
|
||||||
|
default: patch
|
||||||
|
autolabeler:
|
||||||
|
- label: 'skip-changelog'
|
||||||
|
title: '/chore/i'
|
||||||
|
- label: 'bug'
|
||||||
|
title: '/fix/i'
|
||||||
|
- label: 'enhancement'
|
||||||
|
title: '/(enhance|improve)/i'
|
||||||
|
- label: 'feature'
|
||||||
|
title: '/feature/i'
|
||||||
|
- label: 'dreprecated'
|
||||||
|
title: '/deprecat/i'
|
||||||
|
change-template: '* $TITLE by @$AUTHOR in #$NUMBER'
|
||||||
|
template: |
|
||||||
|
What's Changed
|
||||||
|
===
|
||||||
|
$CHANGES
|
4
.github/version-drafter.yml
vendored
Normal file
4
.github/version-drafter.yml
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
major-labels: ['semver:major', 'major', 'breaking']
|
||||||
|
minor-labels: ['semver:minor', 'minor', 'enhancement', 'deprecated', 'removed', 'security']
|
||||||
|
patch-labels: ['semver:patch', 'bug', 'trivial', 'bugfix']
|
12
.github/workflows/ansible-ci.yml
vendored
12
.github/workflows/ansible-ci.yml
vendored
|
@ -1,9 +1,19 @@
|
||||||
---
|
---
|
||||||
name: Ansible CI
|
name: Ansible CI
|
||||||
on: [push, pull_request]
|
on:
|
||||||
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- '!closed'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
ANSIBLE_FORCE_COLOR: true
|
ANSIBLE_FORCE_COLOR: true
|
||||||
|
ANSIBLE_GALAXY_SERVER_GALAXY_URL: "https://galaxy.ansible.com"
|
||||||
|
ANSIBLE_GALAXY_SERVER_GALAXY_TIMEOUT: 120
|
||||||
|
ANSIBLE_GALAXY_SERVER_LIST: "galaxy"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ansible-lint:
|
ansible-lint:
|
||||||
|
|
40
.github/workflows/conventional-label.yml
vendored
Normal file
40
.github/workflows/conventional-label.yml
vendored
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
---
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types: [opened, edited, synchronize, reopened]
|
||||||
|
name: Auto label pull request
|
||||||
|
jobs:
|
||||||
|
label:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: "Confirm correct pull request title"
|
||||||
|
uses: deepakputhraya/action-pr-title@master
|
||||||
|
with:
|
||||||
|
allowed_prefixes: 'feat,feature,fix,major,breaking,minor,enhancement,deprecated,removed,security,bug,bugfix,docs,packaging,test,refactor,refactoring,skip-release,skip_changelog'
|
||||||
|
|
||||||
|
- name: "Apply label"
|
||||||
|
if: github.event.pull_request.labels.length == 0
|
||||||
|
uses: bcoe/conventional-release-labels@v1
|
||||||
|
with:
|
||||||
|
type_labels: |
|
||||||
|
{
|
||||||
|
"feature": "enhancement",
|
||||||
|
"feat": "enhancement",
|
||||||
|
"fix": "bugfix",
|
||||||
|
"major": "major",
|
||||||
|
"breaking": "breaking",
|
||||||
|
"minor": "minor",
|
||||||
|
"enhancement": "enhancement",
|
||||||
|
"deprecated": "deprecated",
|
||||||
|
"removed": "removed",
|
||||||
|
"security": "security",
|
||||||
|
"bug": "bug",
|
||||||
|
"bugfix": "bugfix",
|
||||||
|
"docs": "trivial",
|
||||||
|
"packaging": "trivial",
|
||||||
|
"test": "trivial",
|
||||||
|
"refactor": "trivial",
|
||||||
|
"refactoring": "trivial",
|
||||||
|
"skip-release": "skip_changelog",
|
||||||
|
"skip_changelog": "skip_changelog"
|
||||||
|
}
|
27
.github/workflows/publish.yml
vendored
Normal file
27
.github/workflows/publish.yml
vendored
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
---
|
||||||
|
name: Ansible collection publish
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: "Install tools"
|
||||||
|
run: "python -m pip install ansible-base --disable-pip-version-check"
|
||||||
|
|
||||||
|
- name: "Build the collection"
|
||||||
|
run: ansible-galaxy collection build
|
||||||
|
|
||||||
|
- name: "Upload built collection to release"
|
||||||
|
uses: svenstaro/upload-release-action@v2
|
||||||
|
with:
|
||||||
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
file: prometheus-prometheus-*.tar.gz
|
||||||
|
file_glob: true
|
||||||
|
tag: ${{ github.ref }}
|
||||||
|
overwrite: true
|
89
.github/workflows/publish_latest.yml
vendored
89
.github/workflows/publish_latest.yml
vendored
|
@ -1,89 +0,0 @@
|
||||||
name: Publish Collection
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
release:
|
|
||||||
types:
|
|
||||||
- 'published'
|
|
||||||
|
|
||||||
env:
|
|
||||||
python-version: 3.9
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
publish-latest:
|
|
||||||
if: github.event_name == 'push'
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
working-directory: ansible_collections/prometheus/prometheus
|
|
||||||
steps:
|
|
||||||
- name: Check out code
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
path: ansible_collections/prometheus/prometheus
|
|
||||||
|
|
||||||
- name: Set up Python
|
|
||||||
uses: actions/setup-python@v1
|
|
||||||
with:
|
|
||||||
python-version: ${{ env.python-version }}
|
|
||||||
|
|
||||||
- name: Install ansible-base (devel)
|
|
||||||
run: pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check
|
|
||||||
|
|
||||||
- name: Build the collection
|
|
||||||
run: ansible-galaxy collection build
|
|
||||||
|
|
||||||
- name: Rename the build artifact
|
|
||||||
run: mv prometheus-prometheus-*.tar.gz prometheus-community-prometheus-latest.tar.gz
|
|
||||||
|
|
||||||
# Moving the tag leaves an orphan artifact. Just changing the artifact doesn't move the tag.
|
|
||||||
- name: Delete latest tag and release
|
|
||||||
uses: dev-drprasad/delete-tag-and-release@v0.1.2
|
|
||||||
with:
|
|
||||||
delete_release: true
|
|
||||||
tag_name: latest
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Upload files to release
|
|
||||||
uses: svenstaro/upload-release-action@v2
|
|
||||||
with:
|
|
||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
file: ansible_collections/prometheus/prometheus/prometheus-community-prometheus-latest.tar.gz
|
|
||||||
asset_name: prometheus-community-prometheus-latest.tar.gz
|
|
||||||
body: "Development release"
|
|
||||||
tag: latest
|
|
||||||
overwrite: true
|
|
||||||
|
|
||||||
publish-tagged:
|
|
||||||
if: github.event_name == 'release'
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
working-directory: ansible_collections/prometheus/prometheus
|
|
||||||
steps:
|
|
||||||
- name: Check out code
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
path: ansible_collections/prometheus/prometheus
|
|
||||||
|
|
||||||
- name: Set up Python
|
|
||||||
uses: actions/setup-python@v1
|
|
||||||
with:
|
|
||||||
python-version: ${{ env.python-version }}
|
|
||||||
|
|
||||||
- name: Install ansible-base (devel)
|
|
||||||
run: pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check
|
|
||||||
|
|
||||||
- name: Build the collection
|
|
||||||
run: ansible-galaxy collection build
|
|
||||||
|
|
||||||
- name: Upload files to release
|
|
||||||
uses: svenstaro/upload-release-action@v2
|
|
||||||
with:
|
|
||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
file: ansible_collections/prometheus/prometheus/prometheus-community-prometheus-*.tar.gz
|
|
||||||
file_glob: true
|
|
||||||
tag: ${{ github.ref }}
|
|
||||||
overwrite: true
|
|
61
.github/workflows/release.yml
vendored
Normal file
61
.github/workflows/release.yml
vendored
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
---
|
||||||
|
name: Ansible collection release
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- closed
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
if: |
|
||||||
|
github.event.pull_request.merged &&
|
||||||
|
github.ref == github.event.repository.default_branch &&
|
||||||
|
!contains(github.event.pull_request.labels.*.name, 'skip_changelog')
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: "Install tools"
|
||||||
|
run: "python -m pip install ansible-base antsibull-changelog --disable-pip-version-check"
|
||||||
|
|
||||||
|
- name: "Calculate next version"
|
||||||
|
id: version
|
||||||
|
uses: gardar/version-drafter-action@event-triggers # Until PR gets merged: https://github.com/patrickjahns/version-drafter-action/pull/343
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
|
||||||
|
- name: "Generate new version in changelog.yaml"
|
||||||
|
run: antsibull-changelog release -v --version "${{ steps.version.outputs.next-version }}"
|
||||||
|
|
||||||
|
- name: "Run antsichaut"
|
||||||
|
uses: rndmh3ro/antsichaut-action@main
|
||||||
|
with:
|
||||||
|
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
since_version: "${{ steps.version.outputs.current-version }}"
|
||||||
|
|
||||||
|
- name: "Update Changelog.rst"
|
||||||
|
run: "antsibull-changelog generate -v"
|
||||||
|
|
||||||
|
- name: "Update collection version"
|
||||||
|
uses: mikefarah/yq@master
|
||||||
|
with:
|
||||||
|
cmd: yq -i '.version = "${{ steps.version.outputs.next-version }}"' 'galaxy.yml'
|
||||||
|
|
||||||
|
- name: "Write changelog and version"
|
||||||
|
uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
|
with:
|
||||||
|
branch: ${{ github.event.pull_request.base.ref }}
|
||||||
|
commit_message: "chore: update version"
|
||||||
|
|
||||||
|
- name: "Checkout updated branch"
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event.pull_request.base.ref }}
|
||||||
|
|
||||||
|
- name: "Publish release"
|
||||||
|
id: release-publish
|
||||||
|
uses: release-drafter/release-drafter@v5
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
14
CHANGELOG.rst
Normal file
14
CHANGELOG.rst
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
===================================
|
||||||
|
Prometheus.Prometheus Release Notes
|
||||||
|
===================================
|
||||||
|
|
||||||
|
.. contents:: Topics
|
||||||
|
|
||||||
|
|
||||||
|
v0.0.1
|
||||||
|
======
|
||||||
|
|
||||||
|
Major Changes
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- Initial Release
|
|
@ -25,26 +25,24 @@ To have your code merged, see the expectations listed below.
|
||||||
|
|
||||||
You can find a well-written guide [here](https://help.github.com/articles/fork-a-repo).
|
You can find a well-written guide [here](https://help.github.com/articles/fork-a-repo).
|
||||||
|
|
||||||
Please follow common commit best-practices. Be explicit, have a short summary, a well-written description and
|
Please follow conventional commits for best-practices. Be explicit, have a short summary, a well-written description and
|
||||||
references. This is especially important for the merge-request.
|
references. This is especially important for the merge-request.
|
||||||
|
|
||||||
Some great guidelines can be found [here](https://wiki.openstack.org/wiki/GitCommitMessages) and
|
Some great guidelines can be found [here](https://www.conventionalcommits.org/).
|
||||||
[here](http://robots.thoughtbot.com/5-useful-tips-for-a-better-commit-message).
|
|
||||||
|
|
||||||
## Releases
|
## Releases
|
||||||
|
|
||||||
We try to stick to semantic versioning and our releases are automated. Release is created by assigning a keyword (in a
|
We try to stick to semantic versioning and our releases are automated. Release is created by assigning [conventional commits](https://www.conventionalcommits.org/)
|
||||||
way similar to circle ci keyword [`[ci skip]`](https://docs.travis-ci.com/user/customizing-the-build#Skipping-a-build))
|
to PR title. Available keywords are:
|
||||||
to a commit with merge request. Available keywords are (square brackets are important!):
|
|
||||||
|
|
||||||
* `[patch]`, `[fix]`, `[bugfix]` - for PATCH version release
|
* `[patch]`, `[fix]`, `[bug]`, `[bugfix]`, `[test]`, `[refactor]`, `[packaging]`, `[docs]` - for PATCH version release
|
||||||
* `[minor]`, `[feature]`, `[feat]` - for MINOR version release
|
* `[minor]`, `[enhancement]`, `[feature]`, `[feat]`, `[deprecated]`, `[removed]`, `[security]` - for MINOR version release
|
||||||
* `[major]`, `[breaking change]` - for MAJOR version release
|
* `[major]`, `[breaking]` - for MAJOR version release
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
This project uses [antsibull-changelog](https://docs.ansible.com/ansible/latest/dev_guide/developing_collections_changelogs.html#generating-changelogs) to generate changelogs.
|
||||||
Changelog is generated automatically during release process and all information is taken from github issues, PRs and
|
|
||||||
labels.
|
Changelog is generated automatically during release process and all information is taken from github PRs, commits and labels.
|
||||||
|
|
||||||
## Expectations
|
## Expectations
|
||||||
|
|
||||||
|
|
17
changelogs/.plugin-cache.yaml
Normal file
17
changelogs/.plugin-cache.yaml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
objects: {}
|
||||||
|
plugins:
|
||||||
|
become: {}
|
||||||
|
cache: {}
|
||||||
|
callback: {}
|
||||||
|
cliconf: {}
|
||||||
|
connection: {}
|
||||||
|
httpapi: {}
|
||||||
|
inventory: {}
|
||||||
|
lookup: {}
|
||||||
|
module: {}
|
||||||
|
netconf: {}
|
||||||
|
shell: {}
|
||||||
|
strategy: {}
|
||||||
|
vars: {}
|
||||||
|
version: 0.0.1
|
8
changelogs/changelog.yaml
Normal file
8
changelogs/changelog.yaml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
---
|
||||||
|
ancestor:
|
||||||
|
releases:
|
||||||
|
0.0.1:
|
||||||
|
changes:
|
||||||
|
major_changes:
|
||||||
|
- 'Initial Release'
|
||||||
|
release_date: '2023-02-17'
|
33
changelogs/config.yaml
Normal file
33
changelogs/config.yaml
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
---
|
||||||
|
changelog_filename_template: ../CHANGELOG.rst
|
||||||
|
changelog_filename_version_depth: 0
|
||||||
|
changes_file: changelog.yaml
|
||||||
|
changes_format: combined
|
||||||
|
ignore_other_fragment_extensions: true
|
||||||
|
keep_fragments: false
|
||||||
|
mention_ancestor: true
|
||||||
|
new_plugins_after_name: removed_features
|
||||||
|
notesdir: fragments
|
||||||
|
prelude_section_name: release_summary
|
||||||
|
prelude_section_title: "Release Summary"
|
||||||
|
sanitize_changelog: true
|
||||||
|
sections:
|
||||||
|
- - major_changes
|
||||||
|
- "Major Changes"
|
||||||
|
- - minor_changes
|
||||||
|
- "Minor Changes"
|
||||||
|
- - breaking_changes
|
||||||
|
- "Breaking Changes / Porting Guide"
|
||||||
|
- - deprecated_features
|
||||||
|
- "Deprecated Features"
|
||||||
|
- - removed_features
|
||||||
|
- "Removed Features (previously deprecated)"
|
||||||
|
- - security_fixes
|
||||||
|
- "Security Fixes"
|
||||||
|
- - bugfixes
|
||||||
|
- "Bugfixes"
|
||||||
|
- - known_issues
|
||||||
|
- "Known Issues"
|
||||||
|
title: Prometheus.Prometheus
|
||||||
|
trivial_section_name: trivial
|
||||||
|
use_fqcn: true
|
|
@ -1,13 +1,11 @@
|
||||||
---
|
---
|
||||||
namespace: prometheus
|
namespace: prometheus
|
||||||
name: prometheus
|
name: prometheus
|
||||||
version: 1.0.0
|
version: 0.0.1
|
||||||
|
|
||||||
readme: README.md
|
readme: README.md
|
||||||
authors:
|
authors:
|
||||||
- "Ben Kochie (https://github.com/SuperQ)"
|
- "Ben Kochie (https://github.com/SuperQ)"
|
||||||
- "Paweł Krupa (https://github.com/paulfantom)"
|
- "Paweł Krupa (https://github.com/paulfantom)"
|
||||||
|
|
||||||
description: "Ansible Collection for Prometheus"
|
description: "Ansible Collection for Prometheus"
|
||||||
license_file: LICENSE
|
license_file: LICENSE
|
||||||
tags:
|
tags:
|
||||||
|
@ -19,16 +17,13 @@ tags:
|
||||||
- alerts
|
- alerts
|
||||||
- alerting
|
- alerting
|
||||||
- cloud
|
- cloud
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
community.crypto: '>=2.0.0'
|
community.crypto: '>=2.0.0'
|
||||||
community.general: '>=1.0.0'
|
community.general: '>=1.0.0'
|
||||||
|
|
||||||
repository: "https://github.com/prometheus-community/ansible"
|
repository: "https://github.com/prometheus-community/ansible"
|
||||||
documentation: "https://github.com/prometheus-community/ansible/blob/main/docs"
|
documentation: "https://github.com/prometheus-community/ansible/blob/main/docs"
|
||||||
homepage: "https://prometheus.io"
|
homepage: "https://prometheus.io"
|
||||||
issues: "https://github.com/prometheus-community/ansible/issues"
|
issues: "https://github.com/prometheus-community/ansible/issues"
|
||||||
|
|
||||||
build_ignore:
|
build_ignore:
|
||||||
- 'tests/*'
|
- 'tests/*'
|
||||||
- '*.tar.gz'
|
- '*.tar.gz'
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
antsibull-changelog
|
||||||
|
antsichaut
|
||||||
molecule
|
molecule
|
||||||
docker
|
docker
|
||||||
ansible-lint
|
ansible-lint
|
||||||
|
|
Loading…
Reference in a new issue