@@ -5,13 +5,17 @@ executors:
5
5
python :
6
6
docker :
7
7
- image : cimg/python:3.9
8
+ publisher :
9
+ docker :
10
+ - image : quay.io/cloudalchemy/publisher:latest
8
11
9
12
jobs :
10
13
lint :
11
14
executor : python
12
15
steps :
13
16
- checkout
14
- - run : pip install ansible-lint yamllint flake8
17
+ - run : pip install ansible ansible-lint yamllint flake8
18
+ - run : mkdir -p .cache/roles && ln -s ../.. .cache/roles/${CIRCLE_PROJECT_REPONAME}
15
19
- run : ansible-lint
16
20
- run : yamllint .
17
21
- run : flake8
@@ -21,70 +25,34 @@ jobs:
21
25
parameters :
22
26
ansible :
23
27
type : string
24
- environment :
25
- ANSIBLE : " << parameters.ansible >>"
26
28
steps :
27
29
- checkout
28
30
- setup_remote_docker
29
31
- run : ln -s ~/project ~/${CIRCLE_PROJECT_REPONAME}
32
+ - run : pip install "ansible~=<<parameters.ansible >>.0"
30
33
- run : pip install -r test-requirements.txt
31
34
- run : molecule test -s default --destroy always
32
35
- run : |
33
36
if [[ -d 'molecule/alternative' ]]; then
34
- molecule test -s alternative --destroy never
37
+ molecule test -s alternative --destroy always
35
38
else
36
39
echo 'No alternative test'
37
40
fi
38
41
- run : |
39
- if [[ -z "${CIRCLE_PULL_REQUEST}" ]]; then
40
- molecule test -s latest --destroy never
42
+ if [[ -z "${CIRCLE_PULL_REQUEST}" ]] && [[ -d 'molecule/latest' ]] ; then
43
+ molecule test -s latest --destroy always
41
44
else
42
45
echo 'Not running latest on PR'
43
46
fi
44
47
release :
45
- executor : python
46
- environment :
47
-
48
- GIT_USER : cloudalchemybot
48
+ executor : publisher
49
49
steps :
50
50
- checkout
51
- - setup_remote_docker
52
- - run : pip install git-semver
53
- - run : git config --global user.email "${GIT_MAIL}"
54
- - run : git config --global user.name "${GIT_USER}"
55
51
- run : |
56
- GIT_TAG=none
57
- GIT_COMMIT_DESC=$(git log --format=%B -n 1 ${CIRCLE_SHA1})
58
- echo "Last commit message: ${GIT_COMMIT_DESC}"
59
- case "${GIT_COMMIT_DESC}" in
60
- *"[patch]"*|*"[fix]"*|*"[bugfix]"* ) GIT_TAG=$(git semver --next-patch) ;;
61
- *"[minor]"*|*"[feat]"*|*"[feature]"* ) GIT_TAG=$(git semver --next-minor) ;;
62
- *"[major]"*|*"[breaking change]"* ) GIT_TAG=$(git semver --next-major) ;;
63
- *) echo "Keyword not detected. Doing nothing" && circleci-agent step halt ;;
64
- esac
65
- echo "GIT_TAG=${GIT_TAG}" >> $BASH_ENV
66
- - run : |
67
- docker run -it --rm \
68
- -v "${CIRCLE_WORKING_DIRECTORY}:/role" \
69
- -w "/role" \
70
- ferrarimarco/github-changelog-generator:1.15.2 \
71
- --user "${CIRCLE_PROJECT_USERNAME}" \
72
- --project "${CIRCLE_PROJECT_REPONAME}" \
73
- --token "${GH_TOKEN}" \
74
- --release-url "https://galaxy.ansible.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME#ansible-}" \
75
- --unreleased-label "**Next release**" --no-compare-link \
76
- --future-release "${GIT_TAG}"
77
- - run : git add CHANGELOG.md
78
- - run : git commit -m "[ci skip] Automatic changelog update"
79
- - run : git push "https://${GH_TOKEN}:@${GIT_URL}" || circleci-agent step halt
80
- - run : |
81
- ghr \
82
- -t ${GH_TOKEN} \
83
- -u ${CIRCLE_PROJECT_USERNAME} \
84
- -r ${CIRCLE_PROJECT_REPONAME} \
85
- -n ${GIT_TAG} \
86
- -b "$(sed -n -e '/## \[0.22.0\]/,/## \[/ p' CHANGELOG.md | sed -e '$ d')" \
87
- ${GIT_TAG}
52
+ PROJECT_USERNAME="${CIRCLE_PROJECT_USERNAME}" \
53
+ PROJECT_REPONAME="${CIRCLE_PROJECT_REPONAME}" \
54
+ create_release
55
+
88
56
galaxy :
89
57
executor : python
90
58
steps :
0 commit comments