-
Notifications
You must be signed in to change notification settings - Fork 0
88 lines (82 loc) · 2.89 KB
/
ansible-roles-release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
name: Create release
on:
workflow_call:
secrets:
gh_token:
required: true
galaxy_api_key:
required: true
jobs:
build:
name: Ansible linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Lint Ansible Playbook
uses: ansible/ansible-lint-action@main
- name: Install Dependencies
run: pip install ansible
- name: Create ansible.cfg with correct roles_path
run: printf '[defaults]\nroles_path=../:./' >ansible.cfg
# - name: Run ansible syntax-check
# run: ansible-playbook tests/test.yml -i tests/inventory --syntax-check
prepare-release:
name: Prepare Release
runs-on: ubuntu-latest
steps:
- name: Set RELEASE_VERSION
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- uses: actions/checkout@v2
with:
ref: ${{ github.ref }}
fetch-depth: 0
- name: Create release branch
run: git checkout -b release/$RELEASE_VERSION && git push --set-upstream origin release/$RELEASE_VERSION
- name: Install auto-changelog
run: sudo npm install -g auto-changelog
- name: Set current version
run: echo $RELEASE_VERSION > ./VERSION
- name: Create changelog
run: auto-changelog --ignore-commit-pattern "^\[?ci|docu|Merge|meta\]?|fixup" --release-summary
- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: "meta: Update changelog, bump version"
file_pattern: ./VERSION ./CHANGELOG.md
commit_user_name: GitHub Actions
commit_user_email: ci@wyssmann.com
commit_author: Papanito <papanito@wyssmann.com>
push_options: --force
create-release:
name: Create Release
runs-on: ubuntu-latest
steps:
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Checkout code
uses: actions/checkout@v2
- name: Install auto-changelog
run: sudo npm install -g auto-changelog
- name: Create release notes
run: auto-changelog --ignore-commit-pattern "^\[?ci|docu|Merge|meta\]?|fixup" --starting-version $RELEASE_VERSION -o RELEASENOTES.md --release-summary
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.gh_token }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body_path: ./RELEASENOTES.md
draft: false
prerelease: false
needs:
- build
- prepare-release
import-role:
runs-on: ubuntu-latest
needs: create-release
steps:
- name: Publish Ansible role to Galaxy
uses: hspaans/ansible-galaxy-action@v1
with:
api_key: ${{ secrets.galaxy_api_key }}