351 Commits

Author SHA1 Message Date
9b57371358 build(version): bump version 0.6.1 → 0.7.0rc0 2024-02-02 08:22:51 +00:00
Jon
fc9f37617c feat(sub_module_update): wbsite-template
!44
2024-02-02 17:47:38 +09:30
Jon
3fa71fe91a fix(mkdocs): correct mkdocs image name
!73
2024-02-02 17:04:34 +09:30
Jon
6700cdbc90 Merge branch 'mkdocs-update' into 'development'
feat: Mkdocs update

Closes #43

See merge request nofusscomputing/projects/gitlab-ci!73
2024-02-02 07:28:55 +00:00
Jon
955ce37520 refactor(mkdocs): set env name to gitlab pages
!73 fixes #43
2024-02-02 16:57:20 +09:30
Jon
3fbd4317c0 feat(mkdocs): update requirements.txt to current versions
!73 nofusscomputing/infrastructure/website-template!13 nofusscomputing/infrastructure/website!44
2024-02-02 16:45:19 +09:30
Jon
c4087c7069 feat(mkdocs): update python to 3.11.2
!73 nofusscomputing/infrastructure/website-template!13 nofusscomputing/infrastructure/website!44
2024-02-02 16:19:44 +09:30
Jon
bd22ff566c Merge branch '44-fix-commit-footer-refs' into 'development'
fix(commit_footer_refs): enable automated jobs without MR to succeed.

Closes #44

See merge request nofusscomputing/projects/gitlab-ci!72
2023-11-18 06:42:22 +00:00
Jon
0f6e06c50f fix(commit_footer_refs): enable automated jobs without MR to succeed.
automated jobs use !not for MR

fixes #44 !72
2023-11-18 16:11:26 +09:30
Jon
67199ccc55 Merge branch '42-fix-commit-foot-refs' into 'development'
fix(commit_footer_refs): dont update git submodules

Closes #42

See merge request nofusscomputing/projects/gitlab-ci!71
2023-11-12 05:03:22 +00:00
Jon
b8199586b4 fix(commit_footer_refs): dont update git submodules
this ci job requires only the gitlab-ci submodule with other submodules being not applicable.

!71 fixes #42 nofusscomputing/infrastructure/configuration-management/project-production!2
2023-11-12 14:30:53 +09:30
265bafde54 build(version): bump version 0.6.1rc8 → 0.6.1 2023-11-06 08:15:59 +00:00
Jon
5036fc1ccc Merge branch 'minor-fixes' into 'development'
chore: minor fixes

Closes #40

See merge request nofusscomputing/projects/gitlab-ci!70
2023-11-06 08:11:00 +00:00
Jon
3918686e48 feat(conventional_commits): do not run on master branch
!70 fixes #40
2023-11-06 17:36:55 +09:30
Jon
52f4ebda54 Merge branch '39-feat-git-submodule' into 'development'
feat: git submodule custome git message type

Closes #39

See merge request nofusscomputing/projects/gitlab-ci!69
2023-10-28 05:09:49 +00:00
Jon
8eb57c5809 feat(sub_module_update): enable passing commit type and category
!69 closes #39 nofusscomputing/projects/ansible/git_configuration!122 nofusscomputing/projects/gitlab-ci#39 nofusscomputing/projects/ansible/ansible-roles!96 nofusscomputing/infrastructure/config!28
2023-10-28 13:56:43 +09:30
Jon
a5a9fa4437 Merge branch '37-fix-builds' into 'development'
fix: builds

Closes #37

See merge request nofusscomputing/projects/gitlab-ci!68
2023-09-02 06:01:17 +00:00
Jon
86a0292faf feat(deploy): add new nfc repos
!68
2023-09-02 15:28:43 +09:30
Jon
535d0b4293 docs: update docker tag build
!68 #37
2023-09-02 15:28:43 +09:30
Jon
282128410d chore: remove commented code
!68 closes #37
2023-09-02 15:28:43 +09:30
Jon
837311c022 feat(release): annotate git tag with changelog
!68
2023-09-02 15:28:43 +09:30
Jon
e8758c4cce feat(build): no docs/docker build on master push, only tag
as a push to master branch is to create a release, no building should occur.

!68
2023-09-02 15:00:11 +09:30
Jon
0d7974152c feat(docker): add debugging to publish
required to determin if #36 is still an issue

!68 #36 nofusscomputing/projects/ansible/execution_environment#11
2023-09-02 14:53:10 +09:30
Jon
359c664d97 fix(docker): always build on tag
!68 fixes #37
2023-09-02 14:45:39 +09:30
Jon
975de7aca2 Merge branch 'chores-to-mr-pipeline' into 'development'
refactor: Chores to mr pipeline

See merge request nofusscomputing/projects/gitlab-ci!67
2023-07-04 02:01:23 +00:00
Jon
1a168593eb feat(deploy): added ansible.docker.os repo
!67
2023-07-04 11:30:38 +09:30
Jon
d21692f788 refactor(ansible): move submodule/issue patch to mr pipeline
!67
2023-07-04 11:27:23 +09:30
Jon
ebc3d93304 Merge branch 'fix-image-pull-policy' into 'development'
fix(build): adjust to enforce

See merge request nofusscomputing/projects/gitlab-ci!66
2023-06-28 04:30:30 +00:00
Jon
799de6c98c fix(build): adjust to enforce
!66
2023-06-28 13:58:19 +09:30
Jon
6a3ef23c61 Merge branch '38-fix-docker-build' into 'development'
feat(docker_publish): on merge to dev always publish

See merge request nofusscomputing/projects/gitlab-ci!65
2023-06-28 03:50:30 +00:00
Jon
9489c99fe4 feat(docker_publish): on merge to dev always publish
!65
2023-06-28 13:18:23 +09:30
Jon
fd570fa3df Merge branch '38-fix-docker-build' into 'development'
fix: docker build

See merge request nofusscomputing/projects/gitlab-ci!64
2023-06-28 03:12:52 +00:00
Jon
4ea999cec9 fix(docker): ensure on any changes to directory path, build occurs
!64 #38 nofusscomputing/projects/ansible/execution_environment!76
2023-06-28 12:40:27 +09:30
Jon
2492fdb17f Merge branch 'gitlab-issue-patch-automation' into 'development'
ci(deploy): added docker management repo

See merge request nofusscomputing/projects/gitlab-ci!63
2023-06-28 02:09:59 +00:00
Jon
f35d99dc43 ci(deploy): added docker management repo
!63
2023-06-28 11:37:51 +09:30
Jon
de2ec6a736 Merge branch 'gitlab-issue-patch-automation' into 'development'
fix(template): issue comment patch remove setting role path

See merge request nofusscomputing/projects/gitlab-ci!62
2023-06-28 02:06:45 +00:00
Jon
4da44b77df fix(template): issue comment patch remove setting role path
!62
2023-06-28 11:34:38 +09:30
Jon
cf33e1faf1 Merge branch 'gitlab-issue-patch-automation' into 'development'
feat: autojob mr from git patch found in gitlab issues

See merge request nofusscomputing/projects/gitlab-ci!61
2023-06-28 01:48:11 +00:00
Jon
da40e02737 feat(template): added auto job mr from issue comment patch
!61
2023-06-28 11:14:52 +09:30
Jon
d91605e377 Merge branch 'docs' into 'development'
docs: working on

See merge request nofusscomputing/projects/gitlab-ci!59
2023-06-15 04:22:50 +00:00
Jon
d9b303edc1 docs: expand
!59
2023-06-11 10:48:24 +09:30
1a03324ecc build(version): bump version 0.6.1rc7 → 0.6.1rc8 2023-06-08 05:41:34 +00:00
Jon
869faedf57 Merge branch 'fix-immediate' into 'development'
docs: added notes

See merge request nofusscomputing/projects/gitlab-ci!58
2023-06-08 05:37:59 +00:00
Jon
469255f450 docs: added notes
!58
2023-06-08 15:06:24 +09:30
Jon
606b19151e Merge branch 'fix-immediate' into 'development'
fix(ci): correct dockerhub tag

See merge request nofusscomputing/projects/gitlab-ci!57
2023-06-08 05:03:58 +00:00
Jon
4462ec0426 fix(lint): all lint to immediatly start job
!57
2023-06-08 14:27:04 +09:30
Jon
9b00af996f fix(ci): correct dockerhub tag
!57
2023-06-08 14:24:27 +09:30
Jon
ae8b936c5d Merge branch 'fix-immediate' into 'development'
fix(ci): remove spaces from regex exists and changes

See merge request nofusscomputing/projects/gitlab-ci!56
2023-06-08 03:45:19 +00:00
Jon
6af454be4d fix(ci): remove spaces from regex exists and changes
!56
2023-06-08 13:13:50 +09:30
Jon
0054a21e19 Merge branch 'fix-immediate' into 'development'
fix: immediate

Closes #33

See merge request nofusscomputing/projects/gitlab-ci!55
2023-06-08 02:37:25 +00:00
Jon
46d85bcf49 fix(ansible_lint): enable first level dir paths
!55
2023-06-08 12:04:19 +09:30
Jon
0ec520f023 feat(ci): add resource groups
!55 fixes #33
2023-06-07 16:50:45 +09:30
Jon
e75464c7c4 feat(sync): immediatee git sync
!55
2023-06-07 15:40:24 +09:30
Jon
755fcac06e feat(latest_artifacts): ensure artifats for jobs are always avail on branches
if the job is not available on the branches last run pipeline, any job
that tries to download the latest artifact by name will not find any
artifacts.

!54 See nofusscomputing/projects/gitlab-ci#34 gitlab-org/gitlab#331232
2023-06-07 13:37:51 +09:30
Jon
11b6209992 fix(docker_build): on success push container to docker hub
!53
2023-06-07 13:37:51 +09:30
Jon
0b5680deac Merge branch 'fix-immediate' into 'development'
fix(docker_build) init submodule submodules

See merge request nofusscomputing/projects/gitlab-ci!53
2023-06-07 03:47:37 +00:00
Jon
e90b938bba fix(docker_build): init submodule submodules
due to commit e2852ebe292bc838d95048515a8dca0d93ccbc24 the submodules submodules are not being initialized, which prevents that repos files from being used.

!53
2023-06-07 13:15:00 +09:30
Jon
f5bd9acebc Merge branch '34-workaround-job-not-available' into 'development'
refactor: latest job artifacts as specified by name are not available

See merge request nofusscomputing/projects/gitlab-ci!52
2023-06-07 03:23:47 +00:00
Jon
22dd4985be feat(latest_artifacts): ensure artifats for jobs are always avail on branches
if the job is not available on the branches last run pipeline, any job
that tries to download the latest artifact by name will not find any
artifacts.

!52 See nofusscomputing/projects/gitlab-ci#34 gitlab-org/gitlab#331232
2023-06-07 12:50:58 +09:30
928d625469 build(version): bump version 0.6.1rc6 → 0.6.1rc7 2023-06-05 19:08:10 +00:00
Jon
e57f7f0908 Merge branch 'fix-non-urgent' into 'development'
fix(mkdocs): adjust rules to match lint

See merge request nofusscomputing/projects/gitlab-ci!51
2023-06-05 18:57:56 +00:00
Jon
5ffc68d724 fix(mkdocs): adjust rules to match lint
!51
2023-06-06 04:26:28 +09:30
Jon
1e21ff2709 Merge branch 'fix-non-urgent' into 'development'
fix: non urgent

See merge request nofusscomputing/projects/gitlab-ci!50
2023-06-05 02:33:04 +00:00
Jon
6a149f6ed6 feat(ansible_lint): added inventory & playbooks directories
!50 nofusscomputing/infrastructure/config#22 nofusscomputing/infrastructure/config!27
2023-06-04 13:05:34 +09:30
Jon
1dcb3ed521 feat(ci): dont git submodule recurse
!50
2023-06-03 15:19:12 +09:30
Jon
f3256c5858 feat(commit_footer_refs): only run on changes
!50
2023-06-03 14:22:13 +09:30
Jon
097725c1be fix(docker): detect canges in include path corrected
!50
2023-06-03 13:20:23 +09:30
Jon
6201afaf7e Merge branch 'fix-pipeline-submodule' into 'development'
fix(ci): typo in docker build

See merge request nofusscomputing/projects/gitlab-ci!49
2023-06-03 02:05:12 +00:00
Jon
9e098245d7 fix(ci): typo in docker build
!49 nofusscomputing/projects/ansible/execution_environment!20
2023-06-03 11:33:24 +09:30
Jon
5b780df6fa Merge branch 'fix-pipeline-submodule' into 'development'
fix: pipeline submodule

See merge request nofusscomputing/projects/gitlab-ci!48
2023-06-03 01:36:14 +00:00
Jon
d8a6d5f7ec feat(ci): git gubmodule update trigger moved to api call via curl
this was done so that the environment keyword could be used and
then shown in the MR

!48 nofusscomputing/projects/ansible/git_configuration!62
2023-06-03 10:46:25 +09:30
Jon
35cfa92cd9 feat(ci): git submodule job moved to own definition
!48 nofusscomputing/projects/ansible/git_configuration!62
2023-06-03 10:46:07 +09:30
Jon
a86d17eff2 feat(ansible_playbook): rules set to never 'ONLY'
this was done as the configured rules were specifically for git
submodule scheduled jobs. that job will be moved to it's own definition.

!48 nofusscomputing/projects/ansible/git_configuration!62
2023-06-03 10:42:13 +09:30
Jon
fc6db1bdd9 Merge branch 'preperation-32-when-anchors' into 'development'
fix(ansible_playbook): No4 enable parent pipelines

See merge request nofusscomputing/projects/gitlab-ci!47
2023-06-02 07:28:07 +00:00
Jon
13ee3bf535 fix(ansible_playbook): No4 enable parent pipelines
!47
2023-06-02 16:57:07 +09:30
Jon
8ae6f35df1 Merge branch 'preperation-32-when-anchors' into 'development'
fix(ansible_playbook): No3 enable parent pipelines

See merge request nofusscomputing/projects/gitlab-ci!46
2023-06-02 07:18:55 +00:00
Jon
3c0543f7ad fix(ansible_playbook): No3 enable parent pipelines
!45
2023-06-02 16:47:24 +09:30
Jon
476eec71bc Merge branch 'preperation-32-when-anchors' into 'development'
fix(ansible_playbook): enable parent pipelines

See merge request nofusscomputing/projects/gitlab-ci!45
2023-06-02 07:09:04 +00:00
Jon
f3fa9c5a41 fix(ansible_playbook): enable parent pipelines
!45
2023-06-02 16:37:18 +09:30
Jon
41e68d0944 Merge branch 'preperation-32-when-anchors' into 'development'
fix(ansible_playbook): enable parent pipelines

See merge request nofusscomputing/projects/gitlab-ci!44
2023-06-02 06:52:36 +00:00
Jon
3ee48daa10 fix(ansible_playbook): enable parent pipelines
!44
2023-06-02 16:21:07 +09:30
a08bc7abc4 build(version): bump version 0.6.1rc5 → 0.6.1rc6 2023-06-02 06:42:05 +00:00
Jon
de45dc26ed Merge branch 'preperation-32-when-anchors' into 'development'
fix(md_lint): lint on git tag

See merge request nofusscomputing/projects/gitlab-ci!43
2023-06-02 06:39:39 +00:00
Jon
ba43bb9c8d fix(md_lint): lint on git tag
job required for build

!43
2023-06-02 16:08:08 +09:30
8c7de45d84 build(version): bump version 0.6.1rc4 → 0.6.1rc5 2023-06-02 06:36:01 +00:00
Jon
5fe9c7c06e Merge branch 'preperation-32-when-anchors' into 'development'
fix(commit_footer_check): run on non master/dev branches only

See merge request nofusscomputing/projects/gitlab-ci!42
2023-06-02 06:29:02 +00:00
Jon
efa6271057 fix(gitlab_yaml_lint): adjust logic to detect changes
!42
2023-06-02 15:57:33 +09:30
Jon
6accd8633c fix(commit_footer_check): run on non master/dev branches only
!42
2023-06-02 15:50:42 +09:30
Jon
41790dc1e6 Merge branch 'preperation-32-when-anchors' into 'development'
feat: define yaml when anchors

See merge request nofusscomputing/projects/gitlab-ci!41
2023-06-02 06:17:07 +00:00
Jon
86b0533885 feat(submodule_update_trigger): only update own submodule
now the trigger job passes the name of the repo, which should match the
module name. this then updates that submodule only.

!41 nofusscomputing/projects/ansible/git_configuration#16 nofusscomputing/projects/ansible/git_configuration!60
2023-06-02 15:43:18 +09:30
Jon
ff8c43c1ea feat(mkdocs_build): always build on git tag
this allows the built files to always be available under the
latest tag job for downloading by the parent site.

!41
2023-06-02 15:40:50 +09:30
Jon
04e7e928e0 feat(ci_rules): add exists and changes for rules
now defined jobs check for existance of file and for changes
to launch a job

!41 #32
2023-06-02 15:26:35 +09:30
Jon
862176f9dc feat(yaml_anchors): initial conditional checks
currently this wont be implemented due to issues with gitlab
ci not importing the anchor file

!41 #32
2023-06-02 14:52:59 +09:30
Jon
6a2266177b Merge branch 'ansible-roles-restructure-ops-74' into 'development'
refactor: ansible-roles

See merge request nofusscomputing/projects/gitlab-ci!40
2023-06-01 05:18:58 +00:00
Jon
9d767282ff refactor(ci): update ansible-role repo path
!40 nofusscomputing/ops#74
2023-06-01 14:47:13 +09:30
Jon
b3c8483677 Merge branch 'feat-trigger-submodule' into 'development'
feat: trigger submodule

See merge request nofusscomputing/projects/gitlab-ci!39
2023-06-01 02:59:23 +00:00
Jon
6f810f8084 feat(ci): add more repos to update
!39
2023-06-01 12:20:32 +09:30
2b57d0b160 build(version): bump version 0.6.1rc3 → 0.6.1rc4 2023-05-31 05:33:21 +00:00
Jon
e9713b31c8 Merge branch 'feat-trigger-submodule' into 'development'
feat: trigger submodule updates

See merge request nofusscomputing/projects/gitlab-ci!38
2023-05-31 05:16:24 +00:00
Jon
7018440dcb feat(ci): on push to dev, update git sub modules on specified
!38
2023-05-31 14:44:40 +09:30
Jon
8e0ca2352d Merge branch 'feat-trigger-submodule' into 'development'
fix: image not pulling

See merge request nofusscomputing/projects/gitlab-ci!37
2023-05-31 04:31:01 +00:00
Jon
73ea66e60d fix(ansible_playbook): always pull image
!37
2023-05-31 13:59:23 +09:30
Jon
3e068f98c5 Merge branch 'website-10-lint-jobs-fix' into 'development'
refactor: work as part of other projects

See merge request nofusscomputing/projects/gitlab-ci!36
2023-05-31 02:18:02 +00:00
Jon
5e4912857a feat(mkdocs_build_docs): keyword needs does not belong in definition
!36
2023-05-31 11:42:34 +09:30
Jon
c47be42184 fix(mkdocs_build): ensure config file exists when run on branch
!36
2023-05-31 11:41:54 +09:30
Jon
9ebd0a27f6 feat(lint_markdown_docs): ensure also detects website
!36
2023-05-31 11:40:34 +09:30
Jon
f375a1298f Merge branch '31-fix-ansible-playbook-trigger' into 'development'
fix: ansible playbook trigger

Closes #31

See merge request nofusscomputing/projects/gitlab-ci!35
2023-05-29 04:30:42 +00:00
Jon
8ced1720e0 fix(automagic): fix git submodule so it runs on schedule
removed variables from job definition as these are for the end
user to specify.

!35 fixes #31
2023-05-29 13:59:04 +09:30
Jon
3383d5a086 Merge branch 'big-fixes' into 'development'
chore: general fixes and dev

Closes #30, #27, and #26

See merge request nofusscomputing/projects/gitlab-ci!34
2023-05-29 02:31:48 +00:00
Jon
871654508c docs: refine
!34
2023-05-29 11:44:24 +09:30
Jon
95bc6a5b03 docs(automagic): added initial autmagic docs
!34
2023-05-29 11:32:47 +09:30
Jon
e79b554550 refactor: rename website to documentation
!34
2023-05-29 11:28:17 +09:30
Jon
d7be011370 revert: "refactor(ci): update deploy job name"
This reverts commit 681b8f1a02.

job must be named pages so that it deploys to gitlab pages

!34
2023-05-29 11:17:04 +09:30
Jon
398815055e docs(ansible_playbook): document ci job definition
!34 closes #26 closes #27
2023-05-29 11:05:36 +09:30
Jon
681b8f1a02 refactor(ci): update deploy job name
!34
2023-05-29 10:42:24 +09:30
Jon
b68f6cb4b4 fix(docs_environment): don't define empty env path
this empty variable was preventing the upstream var from being used.

!34
2023-05-29 10:41:04 +09:30
Jon
91ac4476fb fix(doc_pages): use updated job name
!34 #30
2023-05-29 10:40:14 +09:30
Jon
0598e813d4 chore: remove jobs duplicated by automagic template
!34
2023-05-29 10:39:22 +09:30
Jon
75968b140c fix(ansible_lint): only run if tasks/main.yaml exists
should only lint an ansible role

!34
2023-05-29 10:28:08 +09:30
Jon
440765537d feat(ci): use automagic ci template
!34
2023-05-29 10:15:54 +09:30
Jon
0bc7255453 fix(mkdocs_build_website): renamed and normalized
renamed from website to docs and normalized the rules.
this template is for building docs for our website, so it's name should
reflect this

!34 fixes #30
2023-05-29 10:08:26 +09:30
Jon
18bc18c29b feat(automagic): add ansible template
!34
2023-05-28 16:24:32 +09:30
Jon
203a99903c fix(sub_folder_changelog): dont create changelog for docs
!34
2023-05-28 16:24:12 +09:30
Jon
e32db8dcfd Merge branch 'concurrent-work' into 'development'
feat: work as part of other projects

See merge request nofusscomputing/projects/gitlab-ci!33
2023-05-28 05:38:34 +00:00
Jon
a010f7bab1 fix(jobs): jobs that occur on push should also run on 'trigger'
!33 #26
2023-05-28 13:23:34 +09:30
Jon
fff7d31498 feat(ansible_play): force output colour in job logs
!33
2023-05-28 12:30:43 +09:30
Jon
29f68ee1f7 Merge branch '28-fix-automagic-job-docker' into 'development'
fix(docker_publish): job only run on dockerfile exists

See merge request nofusscomputing/projects/gitlab-ci!32
2023-05-28 01:24:40 +00:00
Jon
79855cdb99 fix(docker_publish): job only run on dockerfile exists
!32 #28
2023-05-28 10:53:03 +09:30
Jon
32324c841d Merge branch '28-fix-automagic-job-docker' into 'development'
fix(docker): job only run on dockerfile exists

Closes #28

See merge request nofusscomputing/projects/gitlab-ci!31
2023-05-28 01:17:24 +00:00
Jon
7b4b01bdab refactor(docker_hub): move needs to template
needs should not exists in definition as it is dynamic.
moved dockerhub publish to docker template

!31
2023-05-28 10:45:41 +09:30
Jon
502f12c216 fix(docker): job only run on dockerfile exists
!31 fixes #28
2023-05-28 10:44:23 +09:30
1c4258d645 build(version): bump version 0.6.1rc2 → 0.6.1rc3 2023-05-28 01:07:50 +00:00
Jon
040a56cd6b Merge branch 'restructure' into 'development'
fix: ensure scheduled pipeline only triggers schedulable jobs

Closes #29

See merge request nofusscomputing/projects/gitlab-ci!30
2023-05-28 01:05:02 +00:00
Jon
bade89c533 fix(scheduled_pipelines): if scheduled pipeline only run schedualable jobs
!30 fixes #29
2023-05-28 10:31:26 +09:30
Jon
573f47ba7c Merge branch 'restructure' into 'development'
feat(automation): job to run ansible playbooks

Closes #25

See merge request nofusscomputing/projects/gitlab-ci!29
2023-05-27 05:57:13 +00:00
Jon
19dde28526 chore: fix linting error
!29 #26
2023-05-27 15:24:21 +09:30
Jon
c5d27e832e feat(auto_jobs): created initial template to auto-create jobs
!29 #26
2023-05-27 15:21:27 +09:30
Jon
f9af921e6b refactor(ansible_playbook): final logic adjustment for job
these will be used for pipeline running

!29 #25
2023-05-27 15:20:40 +09:30
Jon
158cc94d1a feat(variables): added pipeline trigger and schedule
these will be used for pipeline running

!29 #26
2023-05-27 15:18:51 +09:30
Jon
1f6ee9ea27 refactor(automation): final logic changes
!29 closes #25
2023-05-27 14:04:10 +09:30
Jon
0d3eaa6ac2 feat(automation): job to run ansible playbooks
!29 nofusscomputing/projects/ansible/execution_environment!8 nofusscomputing/projects/ansible-roles!25 nofusscomputing/projects/ansible/git_configuration#5
2023-05-26 16:29:23 +09:30
0a17fe1aa3 build(version): bump version 0.6.1rc1 → 0.6.1rc2 2023-05-24 04:40:52 +00:00
Jon
511a247886 Merge branch 'restructure' into 'development'
fix: general fixes

See merge request nofusscomputing/projects/gitlab-ci!28
2023-05-24 04:38:34 +00:00
Jon
0482c0144e fix(sub_folder_changelog): dont create in git submodules
!28 task in #23
2023-05-24 13:43:25 +09:30
Jon
b2af2b8c74 chore(git): website-template update to current HEAD
!28
2023-05-24 13:33:46 +09:30
Jon
df2ab75e6a Merge branch 'restructure' into 'development'
chore: restructure work

See merge request nofusscomputing/projects/gitlab-ci!27
2023-05-23 05:35:45 +00:00
Jon
e26f590ebc fix(md_linting): must lint on git tag
!27 nofusscomputing/projects/docker-mail!3
2023-05-23 13:40:13 +09:30
Jon
bcb80358d9 ci(pages): add pages slug
!27
2023-05-23 12:42:16 +09:30
Jon
bef76847ec feat(template_website): enable specifying the url slug
!27
2023-05-23 12:37:40 +09:30
Jon
3324ce2002 Merge branch 'concurrent-work' into 'development'
chore: concurrent work related to other projects

See merge request nofusscomputing/projects/gitlab-ci!26
2023-05-23 00:41:30 +00:00
Jon
28c04fb2e8 docs: add job definitions to page
!26
2023-05-23 10:00:27 +09:30
Jon
7a9aca3a54 fix(mkdocs): default to docs directory as root
!26
2023-05-23 09:46:43 +09:30
Jon
657df7a5ce docs: add job definition to page
!26
2023-05-23 09:33:21 +09:30
Jon
bb2cddf70b chore: remove unneeded fils from docs
!26
2023-05-23 09:22:18 +09:30
Jon
a8f675c102 feat(docs): temp adding of requirements
this file can be removed as soon as the website-template
repo has the contents of this file

!26
2023-05-23 09:17:49 +09:30
Jon
7c385b7552 refactor(docs): pages dir renamed to docs
as the contents are docs, renamed to make obvious

!26
2023-05-23 09:10:19 +09:30
Jon
71a335c266 feat(mkdocs): install website-template requirements
only installs if they exist

!26 nofusscomputing/infrastructure/website-template!7
2023-05-22 18:05:24 +09:30
Jon
e75ae1a585 Merge branch 'ansible-role' into 'development'
feat: ansible role and docs

See merge request nofusscomputing/projects/gitlab-ci!25
2023-05-22 07:13:52 +00:00
Jon
0bc3451bc2 docs: added edit url
!25
2023-05-22 15:46:50 +09:30
Jon
4fb85408b8 docs: move readme to project pages index
!25
2023-05-22 15:36:26 +09:30
Jon
b66abc1947 docs: notate under development
!25
2023-05-22 14:45:44 +09:30
Jon
61200e526e docs: update structure
!25
2023-05-22 14:27:27 +09:30
Jon
480502a763 feat(pages): don't include projects in nav
this is done so that only the current project is shown in the
navigation bar

!25
2023-05-22 14:16:45 +09:30
Jon
e40310fc21 docs(template): add index and website
!25
2023-05-22 14:10:32 +09:30
Jon
0b9e7375c9 fix(template): use correct path for build artifact
!25
2023-05-22 13:45:03 +09:30
Jon
065bcbf517 chore(lint): correct lint errors
!25
2023-05-22 13:43:28 +09:30
Jon
8e2a233814 feat(template): always deploy to pages on dev manual other
!25
2023-05-22 13:20:54 +09:30
Jon
a0b6d05a0f feat(mkdocs_build): always build
!25
2023-05-22 13:20:27 +09:30
Jon
1b59d62348 refactor(template_website): adjust names of jobs
!25
2023-05-22 13:13:59 +09:30
Jon
18af7f831a fix(markdown_lint): use new lint path
!25
2023-05-22 13:05:21 +09:30
Jon
12d3a412ac fix(markdown_lint): typo in config variable
!25
2023-05-22 13:04:11 +09:30
Jon
6d2e50e947 feat(mkdocs_build): add manual build
!25
2023-05-22 13:01:18 +09:30
Jon
4fa90d4c42 feat(template): use md lint config from website-template
!25
2023-05-22 12:57:08 +09:30
Jon
38d469007a feat(markdown_lint): enable specifying the lint config path
!25
2023-05-22 12:00:25 +09:30
Jon
bce7396d8b refactor(markdown_lint): move md linting to lint folder
!25
2023-05-22 11:50:28 +09:30
Jon
55061ad5ef docs: use project template
!25
2023-05-21 17:10:57 +09:30
Jon
3a2a135d0a refactor(docs): markdown linting errors fix
!25
2023-05-21 17:04:38 +09:30
Jon
157501245d feat(pages): use repo name
!25
2023-05-21 16:50:52 +09:30
Jon
16d47d5e35 feat(website): add pages job for website
!25
2023-05-21 16:40:44 +09:30
Jon
f42b0ecf60 fix(mkdocs): add placeholder pages
!25
2023-05-21 16:12:11 +09:30
Jon
dacb9f22dd refactor(mkdocs): use locked version from website repo
!25
2023-05-21 15:59:14 +09:30
Jon
91a50eb15b feat(template): created website job template
!25
2023-05-21 15:53:54 +09:30
Jon
5556a57ea5 feat(mkdocs): only run on success
!25
2023-05-21 15:43:45 +09:30
Jon
1ec2666e85 docs(mkdocs): moved to pages folder
!25
2023-05-21 15:41:05 +09:30
Jon
70dfb826d1 docs(conventional_commits): added config file requirement
!25
2023-05-21 03:01:52 +09:30
Jon
588956b27e Merge branch 'ansible-role' into 'development'
refactor: move ansible lint job to linting folder

See merge request nofusscomputing/projects/gitlab-ci!24
2023-05-20 16:23:28 +00:00
Jon
088c9fb04c feat(conventional_commits): ensure .cz.yaml exists
if the cz.yaml config file does not exist, dont run commitizen jobs

!24
2023-05-21 01:48:53 +09:30
Jon
f604c6e27d fix(docker): ensure qemu binfmt is loaded
the docker run command ensures that the binfmt is loaded.
see https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/1861
for further details

!24 gitlab-org/gitlab-runner!1861
2023-05-21 01:47:15 +09:30
Jon
a90ccb8177 refactor(docker): move docker jobs to their own file
!24
2023-05-17 15:41:09 +09:30
Jon
c34e382a22 refactor: use name that makes sense
!24
2023-05-17 15:38:11 +09:30
Jon
6765894ceb feat(docker_build): enable spcifying the dockerfile to use
!24
2023-05-17 15:22:21 +09:30
Jon
8e0f16c585 fix(docker_hub): push correct image
!24
2023-05-16 15:17:18 +09:30
Jon
a754aa81ed fix(lint): use correct path for requirements.txt
!24
2023-05-15 15:27:13 +09:30
Jon
67f39d9694 feat(template): added a ansible-role job template
!24
2023-05-15 15:15:23 +09:30
Jon
539e40e300 refactor: move ansible and yaml lint job to linting folder
!24
2023-05-15 15:06:11 +09:30
Jon
18a2808787 fix(gitlab_release): allow skip on dev branch
!17
2023-05-15 10:25:48 +09:30
Jon
40fca792bd Merge branch 'restructure' into 'development'
feat(gitlab_release): dont automagic run on dev

See merge request nofusscomputing/projects/gitlab-ci!23
2023-05-15 00:51:42 +00:00
Jon
d89941df05 feat(gitlab_release): dont automagic run on dev
see nofusscomputing/projects/ansible/git_configuration!4 and #21

!23 #21 nofusscomputing/projects/ansible/git_configuration!4
2023-05-15 10:19:49 +09:30
a3fdca83bf build(version): bump version 0.6.1rc0 → 0.6.1rc1 2023-05-15 00:18:38 +00:00
Jon
f8e7973c60 Merge branch 'restructure' into 'development'
fix: gitlab release

See merge request nofusscomputing/projects/gitlab-ci!22
2023-05-15 00:13:05 +00:00
Jon
b0024c99b0 fix(ci): v no longer suffix to tag
!22
2023-05-15 09:41:53 +09:30
Jon
1233d6ad90 ci: disable licence scanning until fixed
!22
2023-05-15 09:38:33 +09:30
Jon
93931cb907 feat(conventional): job not to run when bot pushes change
this is not requied to run on bot push as it's already been run multiple times

!22
2023-05-15 09:32:15 +09:30
Jon
72f5289886 fix(docker): setup ROOT_DIR
this var is required to determin if inclusion is as submodule or not
see failed jobs nofusscomputing/projects/ansible/execution_environment!3
and
nofusscomputing/projects/docker-buildx-qemu!1

!22 nofusscomputing/projects/ansible/execution_environment!3 nofusscomputing/projects/docker-buildx-qemu!1
2023-05-15 09:29:19 +09:30
Jon
76db5b1757 fix(conventional_commits): never run on git tag
no requirement to run on git tag as a MR is required
see nofusscomputing/projects/ansible/git_configuration!7 for failed job.

!22 nofusscomputing/projects/ansible/git_configuration!7
2023-05-15 09:23:02 +09:30
Jon
a073dd0bad Merge branch 'restructure' into 'development'
refactor: restructure repo

Closes #16 and #19

See merge request nofusscomputing/projects/gitlab-ci!21
2023-05-14 06:32:22 +00:00
Jon
a925db1464 docs(yaml_lint): update docs for new variables
!21
2023-05-14 15:50:23 +09:30
Jon
8581981a43 fix(markdown_lint): fix search paths
!21
2023-05-14 15:45:30 +09:30
Jon
02e9e5f4f4 refactor(ci): inconsistant tabs
!21
2023-05-14 14:10:06 +09:30
Jon
ca60625bf1 ci(yaml_lint): update to python 11 2023-05-14 14:01:05 +09:30
Jon
a04b272c16 fix(yaml_lint): remove extra var creation
!21
2023-05-14 14:00:41 +09:30
Jon
47e3984916 ci(markdown_linting): exclude .gitlab and changelog
!21
2023-05-14 13:59:29 +09:30
Jon
3b686a461b fix(yaml_lint): ensure config is within double quote
!21
2023-05-14 13:59:13 +09:30
Jon
7ed3f92dd7 feat(ci): exclude website-template from yaml lint
!21
2023-05-14 13:19:18 +09:30
Jon
bbbf9e35e2 feat(ci): set correct search path
!21
2023-05-14 13:19:09 +09:30
Jon
adc720bbfa refactor: cleanup non-needed dir
!21
2023-05-14 13:13:49 +09:30
Jon
52c6ceda83 fix(yaml_lint): scan all
!21
2023-05-14 13:12:19 +09:30
Jon
0d59871a1a fix(yaml_lint): enable specifying additional config
this allows scan exclude paths to be added

!21
2023-05-14 13:11:43 +09:30
Jon
492824572b ci: dont lint git submodule website-template
!21
2023-05-14 12:44:46 +09:30
Jon
cf10e289d2 fix(markdown_lint): enable job for md in sub folders
!21 fixes #19 nofusscomputing/internal/automation/documentation!2
2023-05-14 12:44:08 +09:30
Jon
0b4e85c313 feat(yaml_lint): added var to prevent job from runnng
!21
2023-05-14 12:12:07 +09:30
Jon
d389d14192 fix: validation jobs on all except merge
!21
2023-05-14 12:11:42 +09:30
Jon
e06ffef66c feat(gitlab_release): run on merge to development
the dev branch will create a RC tag to denote alpha release

!21
2023-05-14 11:46:28 +09:30
Jon
199ea1f23c feat(gitlab_release): never run on merge or git tag
as this job creates a release and tag don't run on those pipelines

!21
2023-05-14 11:45:24 +09:30
Jon
a745ceac5e fix(gitlab_release): fixed rule to match nfc_bot
this hould have been done as part of MR !20

!21 !20
2023-05-14 11:44:20 +09:30
Jon
1fa7fec38a refactor(gitlab_release): show debug before command
!21
2023-05-14 11:41:47 +09:30
Jon
1db2209dfb feat(git_push_mirror): always sync git tag
!21
2023-05-14 11:41:18 +09:30
Jon
e76378dd06 fix(gitlab_release): only run on master on_success
!21 fixes #16
2023-05-14 11:39:53 +09:30
Jon
934a401a96 fix(ci): specify the commitizen version
as the repo has not been updated in a while, locked to a version that
works with the current project

!21
2023-05-14 09:56:35 +09:30
Jon
72f8eb720d ci(docs): added mkdocs config
!21
2023-05-13 15:38:25 +09:30
Jon
1aeb9ec9b9 build(docs): added website template as submodule
this repo is reqired to build the docs for nfc website deployment

!21
2023-05-13 15:37:39 +09:30
Jon
8b9a0356de feat(template): added new template for ci pipeline for docker containers
!21
2023-05-13 15:36:31 +09:30
Jon
408e4eab9e refactor: move docs as part of restructure
!21
2023-05-13 15:35:28 +09:30
Jon
9670fc4740 feat(common): created a common ci file for inclusion
this file is intended to be included by repos that haave this repo as a sub
module.

!21
2023-05-13 11:50:55 +09:30
Jon
8d512a9a4b feat(commit_footer_refs): ability to disable job with variable
!21
2023-05-13 11:49:52 +09:30
Jon
a37acbfc7d feat(gitlab_release): ability to disable job with variable
!21
2023-05-13 11:48:47 +09:30
Jon
81445c06e4 feat(git_push_mirror): ability to disable job with variable
!21
2023-05-13 11:47:56 +09:30
Jon
9e7d357bab feat(conventional_commits): ability to disable job with variable
!21
2023-05-13 11:47:21 +09:30
Jon
36ce0b0b76 Merge branch 'nfc_bot-details-update' into 'development'
refactor: update nfc_bot commit details

See merge request nofusscomputing/projects/gitlab-ci!20
2022-02-12 10:33:07 +00:00
Jon
9a7ae7106e refactor: set correct commit details for nfc_bot
Change made so that the commits from the
bot show up in it's profile

MR !20
2022-02-12 10:27:01 +00:00
Jon
f6d7ebeeb2 Merge branch '18-fix-markdown-lint' into 'development'
fix(markdown_lint): linter not finding markdown files.

Closes #18

See merge request nofusscomputing/projects/gitlab-ci!19
2022-01-31 00:59:36 +00:00
d75e95998b feat(markdown_lint): artifact locations to be hard set
setting the artifact location to be hard set enables
the finding of artifacts easier.

having dynamic artifacts folders adds complexity to finding
artifacts.

MR !19
2022-01-31 10:19:16 +09:30
8391bf659b fix(markdown_lint): remove quotes from search path variable.
The quotes should not be part of the search path as they
are only used in the lint commands path to ensure paths
with spaces are a single value.

fixes #18
2022-01-31 10:15:54 +09:30
ce1cc017e2 build(version): bump version 0.6.0 → 0.6.1rc0 2022-01-25 00:08:05 +00:00
Jon
ed75d0ee05 Merge branch 'bug-lint-markdown' into 'development'
fix: Bug lint markdown

See merge request nofusscomputing/projects/gitlab-ci!18
2022-01-25 00:01:28 +00:00
e0402ecfb2 fix(lint_markdown): ensure the correct path for the job directory is used
issue discovered during nofusscomputing/infrastructure/website!2

MR !18
2022-01-25 09:23:42 +09:30
46cc1fbb6a build(version): bump version 0.5.0 → 0.6.0 2022-01-24 06:33:24 +00:00
Jon
d71def2f2a Merge branch '12-15-mkdocs-build-markdown-linting' into 'development'
feat: Markdown linting and mkdocs build

Closes #15 and #12

See merge request nofusscomputing/projects/gitlab-ci!15
2022-01-24 05:45:45 +00:00
3096d7ee0a ci(markdown_lint): Added Linting of Markdown for files in this repository.
THis is required as the md files will be used for docs.

MR !15
2022-01-24 14:49:36 +09:30
Jon
b6dcb47b1d docs(markdown_lint): removed no longer needed requirement.
MR !15
2022-01-24 05:14:54 +00:00
a2d705deb1 ci(mkdcos): mkdocs requirements.txt had a '\n' in the filename. renamed.
this name was added using the gitlab interface. it should have been sanitized.

MR !15
2022-01-24 14:08:14 +09:30
39a76a0869 ci(dependency_scanning): delete all python 'requirements.txt' files that are not the specified one to be scanned.
Due to a bug reported in gitlab-org/gitlab#350949, variable 'PIP_REQUIREMENTS_FILE'
does not set the pipfile to be scanned, as a consequence, the first found
pipfile is scanned.

MR !15
2022-01-24 14:07:59 +09:30
4e1da5e872 ci(dependency_scanning): python 3.7 not available for dependecy scanning.
Disable the updates for ansible modules that are only available for
python 3.7/3.8 and above.

MR !15
2022-01-24 13:37:23 +09:30
a6afa76600 ci(dependency_scanning): increase python version to 3.7
MR !15
2022-01-24 13:25:15 +09:30
7153f9b425 ci(dependency_scanning): check python version as pillow 9.0 reported as not found.
MR !15
2022-01-24 13:22:28 +09:30
996ee64ab4 ci(dependency_scanning): scanner set to use python 3.6
MR !15
2022-01-24 13:17:38 +09:30
Jon
725bfaf829 ci: debug logging for dep scanning
MR !15
2022-01-23 08:56:58 +00:00
Jon
b844083207 chore: test wich path works for specifying pip file.
MR !15
2022-01-23 07:56:05 +00:00
Jon
41c5e0ca82 chore: remove dependency scan rules not required
MR !15
2022-01-23 07:50:01 +00:00
Jon
2fffa866d8 ci(python_dependency_scan): disabled main job and manual setup for all ci jobs.
Python dependency scan does not work for multiple pip files. Had to setup manual jobs.

MR !15
2022-01-23 07:36:49 +00:00
Jon
6668c2fb8d refactor: test specifying must equal.
MR !15
2022-01-23 07:14:32 +00:00
Jon
fd48316ae7 docs(markdown_lint): updated docs on how to use and view rules.
MR !15
2022-01-23 06:53:57 +00:00
Jon
9ab336fbdd feat(markdown_lint): include junit configuration file '.markdownlint-cli2.jsonc' in ci job.
MR !15
2022-01-23 06:48:42 +00:00
Jon
e46dc57b16 chore(markdown_lint): add empty junit test file.
MR !15
2022-01-23 06:39:23 +00:00
Jon
0df60b12db fix(ansible): remove duplicate lines that last code review didn't remove.
MR !15
2022-01-23 06:12:35 +00:00
Jon
484d98792a fix(ansible): fix typo in job pip file
MR !15
2022-01-23 05:57:43 +00:00
Jon
e1894ec0c4 fix(dependency_scanning): upgraded versions from vulnerability scan.
MR !15
2022-01-23 05:46:31 +00:00
Jon
906f09e2d3 feat(mkdocs_build): use a pip file for job so that licence scanning can function.
MR !15
2022-01-23 05:31:06 +00:00
Jon
18c2e23128 chore(mkdocs): move mkdocs jobs to its own directory.
MR ;15
2022-01-23 05:18:27 +00:00
Jon
83cce72af2 ci(licence_finder): set to recursive scan so all licence's can be detected.
MR !15
2022-01-23 05:02:52 +00:00
Jon
5a41962a99 feat(mkdocs_build): move ci job dependencies to a pip file so that the ci dependency job can check versions.
MR !15
2022-01-23 04:25:35 +00:00
Jon
7665e512a5 chore: add mkdocs dir for pip file.
MR !15
2022-01-23 04:22:38 +00:00
Jon
fc816192be ci(scanners): Added dependency and licence scanners
MR !15
2022-01-23 04:16:34 +00:00
Jon
5c872f163e ci: Added a test stage for gitlab specific tests.
MR !15
2022-01-23 04:10:03 +00:00
Jon
2115964317 chore: review fixes.
MR !1
2022-01-23 03:21:43 +00:00
Jon
e0d8885d52 ci(artifacts): markdown lint and mkdocs build artifacts to expire after 24 hours
MR !15
2022-01-23 03:19:58 +00:00
Jon
347597e3c1 docs(mkdocs_build): include mandatory vars in template ci file.
MR !15
2022-01-23 03:18:34 +00:00
1ef0e2245f docs(mkdocs): Completed the mkdocs build readme
fixes #15 !15
2022-01-23 11:07:47 +09:30
6363ea377c docs(markdown_lint): completed the job docs.
fixes #12
2022-01-23 11:05:07 +09:30
5c05ed7605 docs(mkdocs): initial adding of mkdocs build readme.
MR !15 #5
2022-01-23 10:55:42 +09:30
6383cde3bf docs(markdown_lint): initial adding of the docs
MR !15 #12
2022-01-23 10:43:54 +09:30
50b5e8542b feat(build): initial add of mkdocs build job
builds a mkdocs static pages using the repositories requirements.txt
for extensions and ONLY if a mkdocs.yml file is present in the root directory
of the repository.

MR !15 #15
2022-01-23 10:31:14 +09:30
954aa28dbf feat(validation): Added a Markdown linting validation job.
MR !15 #12
2022-01-23 10:03:02 +09:30
bc67e939fa chore: initial add of build and validation jobs for mkdocs and markdown linting
copied from nofusscomputing/infrastructure/website/3dd3130a037b4ee7c3b55d3961e68703c5e5d49c

MR !15 #12 #15
2022-01-23 09:52:30 +09:30
1ef6c41818 build(version): bump version 0.4.0 → 0.5.0 2022-01-16 00:09:42 +00:00
Jon
1093b380cb Merge branch '6-fix-merging-jobs-failing' into 'development'
fix: merge jobs failing

See merge request nofusscomputing/projects/gitlab-ci!13
2022-01-16 00:05:29 +00:00
f4670844cc docs(README.md): Added project header template
MR !13
2022-01-16 09:23:54 +09:30
140985c3a4 feat(.yaml_lint_defaults): Always run on all branches as this denotes quality.
must run on all branches as quality is an expectation that should be displayed
for all branches.

MR !13
2022-01-16 09:04:52 +09:30
82c6c9f5d5 feat(commit_footer_refs): never run on development or master.
this job checks for gitlab references in the commit footer. It
has been stopped from running on dev and master as checks are already
done on the developers branch that is being worked on prior to the
merging to dev or master branches.

MR !13
2022-01-16 09:02:44 +09:30
31517b4bf0 ci(MR_Title): save the merge request title as a variable and debug output in job log.
job now stores the fetched MR title in a variable that is output to the
job log for end user to view in job log.

MR !13
2022-01-16 09:02:02 +09:30
73918f2f5e fix(commit.py): filter merge request search to 'opened' and on current branch.
Merge request search now filters to 'opened' and to ones on the current branch.
if none were found, outputs 'ci: No Merge Request found, MR count "0"'

any other error with finding the merge request will output
'failed to fetch Merge Request title' this enables further debugging for
potential errors.

fixes #6 !13
2022-01-16 08:48:24 +09:30
5c9000a748 build(version): bump version 0.3.1 → 0.4.0 2022-01-15 03:53:53 +00:00
Jon
745622c214 Merge branch '6-10-11-fix-bugs' into 'development'
fix: numerous bugs

See merge request nofusscomputing/projects/gitlab-ci!12
2022-01-15 03:50:56 +00:00
e5531fc77b feat(commit.py): throw an error if no token was supplied. i.e. empty variable.
A check is done on the supplied token,
if 'None', throws an error that can be viewed in the output log and
in the job output.

fixes #11 !12
2022-01-15 13:14:58 +09:30
6b7ad95fc0 feat(commit.py): confirm a merge request was found, if not output 'ci: No Merge Request found'
issue #11 !12
2022-01-15 13:07:56 +09:30
c543c47af8 feat(commit.py): try to us CI_JOB_TOKEN before the specified token, if any.
issue #11 !12
2022-01-15 13:05:30 +09:30
99bdc2a092 fix(commit.py): fix typo that caused exception
issue #6 !12
2022-01-15 12:29:23 +09:30
d03d9fefc9 fix(conventional_commits): fetch all branches prior to check for parent branch
issue #6 !12
2022-01-15 12:23:54 +09:30
b01550e09f feat(commit.py): removed ability to fetch first commit or target branch
no longer required due to fix on #6.

issue #6 !12
2022-01-15 12:18:15 +09:30
d5782d95e8 fix(ci): added variable 'GIT_SUBMODULE_STRATEGY' to be 'recursive'
fixes #10 !12
2022-01-15 12:04:16 +09:30
42ad02ee5d fix(conventional_commits): use git show-branch to find origin branch
using git branch then filtering after '* [current-branch]' with branches
that contain 'origin/' and removing 'HEAD' and 'current-branch' leaves the
parent branch

fixes #6 !11
2022-01-15 12:04:07 +09:30
7751fd9494 build(version): bump version 0.3.0 → 0.3.1 2022-01-11 07:03:09 +00:00
Jon
49a2e1185b Merge branch 'issue-2' into 'development'
docs(readme): Update project usage in own repo

See merge request nofusscomputing/projects/gitlab-ci!10
2021-08-13 02:12:35 +00:00
8ac36de8e0 docs(readme): Updated with an example .gitlab-ci.yml example
fixes #2 !10
2021-08-13 11:37:10 +09:30
Jon
aa28ef6553 Merge branch 'code-quality' into 'development'
style: improve python code quality

See merge request nofusscomputing/projects/gitlab-ci!9
2021-08-12 05:42:48 +00:00
4b6cc3176f fix(pylint): install the required packages for files being checked
closes #7
2021-08-12 15:06:07 +09:30
936299aefc fix(pylint): fix bug introduced in code quality commit
#7
2021-08-12 14:49:00 +09:30
2ac22c0e91 fix(commit_footer): fix bug introduced in code quality commit
#7
2021-08-12 14:46:26 +09:30
ccc601f641 style(cz_nfc): code quality on cz_nfc.py
#7
2021-08-12 14:42:16 +09:30
5676c5ee37 style(commit_footer): code quality on setup.py
#7
2021-08-12 14:27:41 +09:30
3d69e57714 style(commit_footer): code quality on __main__.py
#7
2021-08-12 14:26:43 +09:30
c093c31cbd style(commit_footer): code quality on commits.py
#7
2021-08-12 14:21:34 +09:30
73e061e649 build(pylint): added .pylintrc to exclude some rules
.pylintrc had rules ignore docs strings for module, function and class. this can be customised by the end user.

!9 #7
2021-08-12 14:04:32 +09:30
389bc08d76 build(version): bump version 0.3.0rc1 → 0.3.0 2021-08-12 03:32:36 +00:00
Jon
f455eb2e27 Merge branch 'style-readme' into 'development'
style(readme): fix badge table.

See merge request nofusscomputing/projects/gitlab-ci!7
2021-08-12 03:25:10 +00:00
3360a15fde fix(commit_message): fixed commit message check if there is only one commit to the branch
!7
2021-08-12 12:47:23 +09:30
2c61651d9c style(readme): fix formatting of badge table
The badge table did not render on github,
adjuested so that each row is on one line for github markdown to function

!7
2021-08-12 12:45:40 +09:30
Jon
a629e39f59 Merge branch 'update-readme' into 'development'
docs(readme): added how to use repo

See merge request nofusscomputing/projects/gitlab-ci!5
2021-08-11 06:37:28 +00:00
0653766c93 docs(readme): Updated badges and intro
!5
2021-08-11 15:52:28 +09:30
d610562438 feat(python_linting): added ci job, python linting, code quality and scoring
Added a job to lint python files and ouput a code quality report for gitlab MR.

A html report is also available within the artifacts. if the badge is used,
the badge links to the html code quality report.

 Changes to be committed:
	modified:   .gitlab-ci.yml
	new file:   python/.gitlab-ci.yml
	new file:   python/README.md
	new file:   python/requirements.txt

issue #1
2021-08-11 15:51:45 +09:30
def31ef562 style(yaml_lint): fixed yaml lint errors
yaml lint was producing linting errors. Amended affected lines.

#1
2021-08-11 13:47:34 +09:30
d20a56fa0c feat(yaml_lint): Added job yaml lint for checking yaml files
defaults to checking subfolder/.gitlab-ci.yml.

 Changes to be committed:
	modified:   .gitlab-ci.yml
	new file:   yaml_lint/.gitlab-ci.yml
	new file:   yaml_lint/.yamllint.yaml
	new file:   yaml_lint/README.md
	new file:   yaml_lint/requirements.txt

issue #1
2021-08-11 13:41:42 +09:30
9f7a24c1eb docs(gitlab_templates): added issue and merge request templates
#1
2021-08-11 12:44:22 +09:30
da8eb5c338 docs(template): added template readme for CI job folders
#1
2021-08-11 12:41:51 +09:30
ace7a03456 docs(readme): explain sync and using github to link gitlab-ci
!5 #1
2021-08-11 12:40:30 +09:30
8790917e7d docs(readme): explain repo layout and versioning
!5
2021-08-11 12:30:30 +09:30
19900945e7 docs(readme): added how to update gitlab-ci
!5
2021-08-11 12:26:18 +09:30
63af1efb4f fix(commit_footer_refs): Use the current git branch for comparison.
dynamically select the current branch so that it can be compared to the dev branch

!5 #1
2021-08-11 12:17:50 +09:30
8a988ebf09 docs(readme): Added how to use this repository
!5
2021-08-11 12:07:56 +09:30
Jon
f4ee55daa5 Merge branch 'changelog-footer-toggle' into 'development'
feat(changelog): be able to switch changelog references inclusion.

See merge request nofusscomputing/projects/gitlab-ci!4
2021-08-08 06:35:41 +00:00
dc13d4f284 docs(gitlab_release): Added user docs to fix errors from ci job 'commit footer refs'
User documentation provided as it is linked from the junit test report in the gitlab interface.

closes #3 closes #4
2021-08-08 15:57:50 +09:30
22136f7dd2 feat(gitlab_release): Toggle var added to enable switching changelog references.
using var 'CHANGELOG_FOOTER_REFERENCES' set to False when generating a changelog
with 'cz' will not add the commit footer refrences to the changelog.

issue #3
2021-08-08 15:28:00 +09:30
eb0bf4c174 refactor(gitlab_release): file link to be in local repository for helping fix commit footer ref check failures
issue #4
2021-08-08 15:18:11 +09:30
81776223c5 refactor(gitlab_release): use a name for failed test to denote the issue
issue #4
2021-08-08 15:05:35 +09:30
756b9406dd feat(gitlab_release): be able to toggle commit footer check job
if var CHANGELOG_FOOTER_REFERENCES=False, dont conduct validation job.

issue #4
2021-08-08 15:03:12 +09:30
7cb676eb98 ci(gitlab_release): Add a validation job to check if commit messages contain a gitlab reference in the footer
#4
2021-08-08 14:51:57 +09:30
11e156619d feat(gitlab_release): python module to check if a commit message has gitlab references in the footer
#4
2021-08-08 14:50:34 +09:30
d2d4ac0afa build(.gitignore): ignore python build files
!4
2021-08-08 14:47:49 +09:30
Jon
d929c1d3b0 Merge branch 'changelog-footer' into 'development'
feat(changelog): Add commit footer to Changelog

See merge request nofusscomputing/projects/gitlab-ci!3
2021-08-07 07:53:17 +00:00
35edb7cfc5 docs(changelog): Updated changelog to new layout
Changelog now adds issue and merge request references from the commit footer line.

!3 #3
2021-08-07 17:17:29 +09:30
8699c41219 feat(gitlab_release): Add commit footer to changelog
!1 #3
2021-08-07 17:11:17 +09:30
Jon
cc2f23b091 Merge branch 'fix-releases' into 'development'
fix(gitlab_releases): version increment workflow from RC-release -> full-release

See merge request nofusscomputing/projects/gitlab-ci!2
2021-08-07 05:31:59 +00:00
5f273ce23a docs(gitlab_release): Updated docs with new instructions on version incrementing
BREAKING CHANGE: !2
2021-08-07 14:56:51 +09:30
f76cabeeb0 fix(gitlab_release): Adjust release workflow
Previous release workflow only allowed version increment of RC on development brnach.

adjust to the following workflow:
    master branch: automatically increment the version
    development branch: option to manually increment version (RC increment only)

!2
2021-08-07 14:31:19 +09:30
eb5cc8a0e2 build(version): bump version 0.3.0rc0 → 0.3.0rc1 2021-08-04 03:23:08 +00:00
cb78ab8218 docs(changelog): regenerated so that all entries use the new url format
#1
2021-08-04 12:49:46 +09:30
09dcb65b09 build(version): bump version 0.2.1 → 0.3.0rc0 2021-08-04 03:13:54 +00:00
3e8c3ce7cd feat(gitlab_release): On the development brnach, releases to be 'rc' to denote considered non-stable
#1
2021-08-04 12:39:01 +09:30
cc3fabdaa2 refactor(gitlab_release): Use Short commit SHA1 in main changelog link to gitlab
#1
2021-08-04 12:24:02 +09:30
4453b433c8 build(version): bump version 0.2.0 → 0.2.1 2021-08-04 02:49:45 +00:00
588698df26 fix(gitlab_release): Correctly fetch the CI_PROJECT_URL for the environment 2021-08-04 12:05:01 +09:30
84 changed files with 4234 additions and 391 deletions

View File

@ -2,6 +2,6 @@ commitizen:
bump_message: "build(version): bump version $current_version \u2192 $new_version"
changelog_incremental: false
name: cz_conventional_commits
tag_format: v$major.$minor.$patch$prerelease
tag_format: $major.$minor.$patch$prerelease
update_changelog_on_bump: true
version: 0.2.0
version: 0.7.0rc0

4
.gitignore vendored
View File

@ -11,3 +11,7 @@ dev_env/
# ignore gitlab-ci artifacts
artifacts/
__pycache__
*.egg-info

View File

@ -1,28 +1,197 @@
variables:
JOB_ROOT_DIR: '.'
MY_PROJECT_ID: "28543717"
stages:
- validation
- release
- sync
- chores
- validation
- build
- prepare
- test
- release
- sync
- deploy
- publish
include:
- local: $JOB_ROOT_DIR/lint/yaml.gitlab-ci.yaml
- local: $JOB_ROOT_DIR/template/automagic.gitlab-ci.yaml
- local: $JOB_ROOT_DIR/conventional_commits/.gitlab-ci.yml
- local: $JOB_ROOT_DIR/git_push_mirror/.gitlab-ci.yml
- local: $JOB_ROOT_DIR/gitlab_release/.gitlab-ci.yml
- local: $JOB_ROOT_DIR/lint/markdown.gitlab-ci.yaml
- local: $JOB_ROOT_DIR/python/.gitlab-ci.yml
- template: Security/Dependency-Scanning.gitlab-ci.yml
#- template: Security/License-Scanning.gitlab-ci.yml
Gitlab Release:
variables:
MY_COMMAND: ./sub-folder_changlog.sh
extends:
- .gitlab_release
variables:
JOB_ROOT_DIR: '.'
SECURE_LOG_LEVEL: debug
GIT_SUBMODULE_STRATEGY: normal
GIT_SYNC_URL: "https://$GITHUB_USERNAME_ROBOT:$GITHUB_TOKEN_ROBOT@github.com/NoFussComputing/gitlab-ci.git"
MY_PROJECT_ID: "28543717"
LICENSE_FINDER_CLI_OPTS: '--recursive'
MDLINT_PATHS: "**/*.md **/**/*.md **/**/**/*.md **/**/**/**/*.md **/**/**/**/**/**/*.md #**CHANGELOG.md #CHANGELOG.md #website-template/** #.gitlab/**"
PAGES_ENVIRONMENT_PATH: projects/gitlab-ci/
# Scanner doesn't Pickup multiple pip files. Disable and specify jobs with pip file.
gemnasium-python-dependency_scanning:
rules:
- when: never
# source: https://gitlab.com/gitlab-org/gitlab/-/blob/2f33a8cb4dcea7b875e360d4cd9e016e027d2973/lib/gitlab/ci/templates/Security/Dependency-Scanning.gitlab-ci.yml
.gemnasium-python-dependency_scanning:
extends: .ds-analyzer
image:
name: "$DS_ANALYZER_IMAGE"
variables:
# Python 3.7 not available
# DS_PYTHON_VERSION: "3.7"
# DS_ANALYZER_IMAGE is an undocumented variable used internally to allow QA to
# override the analyzer image with a custom value. This may be subject to change or
# breakage across GitLab releases.
DS_ANALYZER_IMAGE: "$SECURE_ANALYZERS_PREFIX/gemnasium-python:$DS_MAJOR_VERSION"
# Stop reporting Pipenv and Setuptools as "pip".
# See https://gitlab.com/gitlab-org/gitlab/-/issues/338252
DS_REPORT_PACKAGE_MANAGER_PIP_WHEN_PYTHON: "false"
# Can't find pillow 9.0, check python version. 3.6 only available, 3.7 not.
before_script:
- python --version
# Bug reported at gitlab-org/gitlab#350949.
# workaround, delete all other pip files except the one to be scanned
# Delete all existing pipfiles except the one to be scanned.
- for found_file in $(find . -type f -name 'requirements.txt'); do if [ $found_file != "./$PIP_REQUIREMENTS_FILE" ]; then echo "[DEBUG] Removing '$found_file' due to bug reported at gitlab-org/gitlab#350949"; rm -f $found_file; fi done;
rules:
- if: $DEPENDENCY_SCANNING_DISABLED
when: never
# Support passing of $PIP_REQUIREMENTS_FILE
# See https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#configuring-specific-analyzers-used-by-dependency-scanning
- if: $CI_COMMIT_BRANCH &&
$GITLAB_FEATURES =~ /\bdependency_scanning\b/ &&
$DS_DEFAULT_ANALYZERS =~ /gemnasium-python/ &&
$PIP_REQUIREMENTS_FILE &&
( $CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "pipeline")
Ansible Dependencies:
extends: .gemnasium-python-dependency_scanning
variables:
PIP_REQUIREMENTS_FILE: ansible/requirements.txt
conventional_commits Dependencies:
extends: .gemnasium-python-dependency_scanning
variables:
PIP_REQUIREMENTS_FILE: conventional_commits/requirements.txt
Github (Push --mirror):
variables:
GIT_SYNC_URL: "https://$GITHUB_USERNAME_ROBOT:$GITHUB_TOKEN_ROBOT@github.com/NoFussComputing/gitlab-ci.git"
extends:
- .git_push_mirror
gitlab_release Dependencies:
extends: .gemnasium-python-dependency_scanning
variables:
PIP_REQUIREMENTS_FILE: gitlab_release/requirements.txt
mkdocs Dependencies:
extends: .gemnasium-python-dependency_scanning
variables:
PIP_REQUIREMENTS_FILE: mkdocs/requirements.txt
python Dependencies:
extends: .gemnasium-python-dependency_scanning
variables:
PIP_REQUIREMENTS_FILE: python/requirements.txt
yaml_lint Dependencies:
extends: .gemnasium-python-dependency_scanning
variables:
PIP_REQUIREMENTS_FILE: lint/requirements.txt
PyLint:
extends:
- .PyLint
image: python:3.6-slim
gilab-ci.yml Lint (python 3.11):
extends:
- .Gitlab_CI.Lint.YAML
image: python:3.11-slim
Ansible_docker_os.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/projects/ansible/ansible_docker_os
Ansible_playbooks.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/projects/ansible/ansible_playbooks
Ansible-roles.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/projects/ansible/ansible-roles
config.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/infrastructure/config
Docker_Mail.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/projects/docker-mail
docker-buildx-qemu.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/projects/docker-buildx-qemu
docker-glpi.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/projects/docker-glpi
docker_management.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/projects/ansible/docker_management
execution_environment.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/projects/ansible/execution_environment
git_configuration.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/projects/ansible/git_configuration
nodered_ldap_self_service.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/projects/nodered_ldap_self_service
Ops.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/ops
Website.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/infrastructure/website

16
.gitlab-ci_common.yaml Normal file
View File

@ -0,0 +1,16 @@
variables:
JOB_ROOT_DIR: 'gitlab-ci'
GIT_SUBMODULE_STRATEGY: normal
#PIPELINE_RUN_TRIGGER: 'false'
PIPELINE_RUN_SCHEDULE: 'true'
stages:
- chores
- validation
- build
- prepare
- test
- release
- sync
- deploy
- publish

0
.gitlab/.gitkeep Normal file
View File

View File

View File

@ -0,0 +1,84 @@
## :new: Ansible Role - {new ansible role name}
<!--
- provide a summary of the role and what you propose including what the role will do. ensure all explainations are detailed.
- include any templates here using the collapsable sections. remove/add as many as is required and name as to what it is.
- you can add/delete any details section as required.
- emojis ref: https://github.com/yodamad/gitlab-emoji
-->
<details>
<summary>:clipboard: template filename.extension</summary>
``` yaml
your yaml playbook here
```
</details>
### Playbook usage
<!--
provide examples on how this role would be used in a playbook.
include a playbook example i.e.
<details>
<summary>:clipboard: example playbook</summary>
``` yaml
your yaml playbook here
```
</details>
-->
<!-- provide a summary here -->
<details>
<summary>:clipboard: example playbook</summary>
``` yaml
your yaml playbook here
```
</details>
### :ledger: Documentation
<!-- provide a summary of what is required or even better contribute by writing the docs here -->
<details>
<summary>:clipboard: contribution - Documentation</summary>
<!-- if you are contributing docs write them here. -->
</details>
## :link: Links
<!-- Add a list of links to items relevant to this issue-->
- link 1
- issue #number
## :ballot_box_with_check: Tasks
<!--
don't delete tasks from the list strike them through to denote not-applicable use double tidle '~~'. i.e. '~~[ ] a random task~~'
tasks are used as part of the development stage
-->
- [ ] ~Documentation Added
- [ ] (dev) Merge request opened and linked to this issue
<!-- don't adjust the below slash commands -->
/label ~"workflow::not started"
/label ~"category::feature"

View File

View File

@ -0,0 +1,34 @@
## :books: Summary
<!-- your summary here emojis ref: https://github.com/yodamad/gitlab-emoji-->
-----
| :link: **Related Issue(s)** | :link: **Related Merge Request(s)** |
|:----:|:----:|
| <!-- example #1 <br> #2 <br> #3 etc. if none enter *none* --> | <!-- example !1 <br> !2 <br> !3 etc. if none enter *none* --> |
### :construction_worker: Tasks
<!-- dont remove tasks strike through including the checkbox by enclosing in double tidle '~~' -->
- [ ] merging to correct branch?
- [ ] issue linked to this MR?
- related issues:
- [ ] closed in a commit message
- [ ] Manually closed
- [ ] All related issues tasks complete?
<!-- don't adjust the below slash commands -->
/label ~"workflow::not started"
/label ~"category::feature"

4
.gitmodules vendored Normal file
View File

@ -0,0 +1,4 @@
[submodule "website-template"]
path = website-template
url = https://gitlab.com/nofusscomputing/infrastructure/website-template.git
branch=development

48
.templates/README.md Normal file
View File

@ -0,0 +1,48 @@
# {CI Job Name}
Summary of job here
This job provides the following badge:
{A badge here}
## Dependencies
- {dependent job name}
## your .gitlab-ci.yml changes
To use this job add the following to your `.gitlab-ci.yml` file
``` yaml
variables:
VARNAME: "a var value"
stages:
- {new stage name}
include:
- local: CI/{job name}/.gitlab-ci.yml
```
## CI/CD Variables required
| var name | Description |
|:----:|:----|
| NEW VAR | this var does this and bka |
## Job Workflow
## Artifacts
## License
To view the license for this folder and any sub-folders, refer [here](https://gitlab.com/nofusscomputing/projects/gitlab-ci)

View File

@ -1,44 +1,506 @@
## 0.7.0rc0 (2024-02-02)
### Bug Fixes
- **mkdocs**: [3fa71fe9](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3fa71fe91ad1e874b76fab7323e02496ac757f5d) - correct mkdocs image name [ [!73](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/73) ]
- **commit_footer_refs**: [0f6e06c5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0f6e06c50f7cae602cdc2ca00bbce7fe1fd72c32) - enable automated jobs without MR to succeed. [ [#44](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/44) [!72](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/72) ]
- **commit_footer_refs**: [b8199586](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/b8199586b4fe4c9f93efe68a908eaa8582f064c3) - dont update git submodules [ [!71](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/71) [#42](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/42) [!2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/2) ]
### Code Refactor
- **mkdocs**: [955ce375](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/955ce3752050e78085c2037fe66714db41114c9e) - set env name to gitlab pages [ [!73](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/73) [#43](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/43) ]
### Features
- **sub_module_update**: [fc9f3761](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/fc9f37617cd26b3e44326161ba10183eb13444dd) - wbsite-template [ [!44](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/44) ]
- **mkdocs**: [3fbd4317](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3fbd4317c0388fb8e406eb78614e3943375496ed) - update requirements.txt to current versions [ [!73](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/73) [!13](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/13) [!44](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/44) ]
- **mkdocs**: [c4087c70](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/c4087c7069524df573a43db29c399940600ddba7) - update python to 3.11.2 [ [!73](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/73) [!13](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/13) [!44](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/44) ]
## 0.6.1 (2023-11-06)
### Bug Fixes
- **docker**: [359c664d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/359c664d97c516bd3b35fb46961288c74f6bd940) - always build on tag [ [!68](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/68) [#37](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/37) ]
- **build**: [799de6c9](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/799de6c98c0925ef4a85cf246512041fc89534db) - adjust to enforce [ [!66](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/66) ]
- **docker**: [4ea999ce](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4ea999cec96824c2670c5d448dff8c06b1582adc) - ensure on any changes to directory path, build occurs [ [!64](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/64) [#38](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/38) [!76](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/76) ]
- **template**: [4da44b77](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4da44b77dfbc015d28fda34fcfe54d70a6542943) - issue comment patch remove setting role path [ [!62](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/62) ]
### Code Refactor
- **ansible**: [d21692f7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d21692f7886986db1808befb00b045c1a9a65a8f) - move submodule/issue patch to mr pipeline [ [!67](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/67) ]
### Continious Integration
- **deploy**: [f35d99dc](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/f35d99dc436d1e9ab200a8b94052de2fa23608fc) - added docker management repo [ [!63](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/63) ]
### Documentaton / Guides
- [535d0b42](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/535d0b42938fc66f94fd57018dd81e2111ad3abe) - update docker tag build [ [!68](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/68) [#37](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/37) ]
- [d9b303ed](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d9b303edc1f61f1d7a4785b5b5396625cc98a179) - expand [ [!59](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/59) ]
### Features
- **conventional_commits**: [3918686e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3918686e483f6fabb6c487be6f2d7105da08d11a) - do not run on master branch [ [!70](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/70) [#40](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/40) ]
- **sub_module_update**: [8eb57c58](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8eb57c580973fa49bd3ffb12553cc24e39c5afac) - enable passing commit type and category [ [!69](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/69) [#39](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/39) [!122](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/122) [#39](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/39) [!96](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/96) [!28](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/28) ]
- **deploy**: [86a0292f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/86a0292fafa0fb139f068106dacfa2ee6917f4d4) - add new nfc repos [ [!68](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/68) ]
- **release**: [837311c0](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/837311c0221820b93072e9bfcba2191a8b96b9ea) - annotate git tag with changelog [ [!68](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/68) ]
- **build**: [e8758c4c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e8758c4ccecdbf0c22a5e67bf086762c68c6b915) - no docs/docker build on master push, only tag [ [!68](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/68) ]
- **docker**: [0d797415](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0d7974152c26200c8beaa3a1ddecf504f4406ee3) - add debugging to publish [ [#36](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/36) [!68](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/68) [#36](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/36) [#11](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/11) ]
- **deploy**: [1a168593](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1a168593eb0fd234885982a16bc216804e76d293) - added ansible.docker.os repo [ [!67](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/67) ]
- **docker_publish**: [9489c99f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9489c99fe489c9b9b9e29fc2013d5ff6a990094a) - on merge to dev always publish [ [!65](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/65) ]
- **template**: [da40e027](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/da40e027376c163ca4915f3edcf322b6e0b0c278) - added auto job mr from issue comment patch [ [!61](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/61) ]
## 0.6.1rc8 (2023-06-08)
### Bug Fixes
- **lint**: [4462ec04](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4462ec04268c5b967f0672828d1cd7b3995894d9) - all lint to immediatly start job [ [!57](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/57) ]
- **ci**: [9b00af99](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9b00af996ff96f58a26b83066004e5a9e94ac155) - correct dockerhub tag [ [!57](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/57) ]
- **ci**: [6af454be](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6af454be4d2b658e0c362392ff502b3fb3da2cbf) - remove spaces from regex exists and changes [ [!56](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/56) ]
- **ansible_lint**: [46d85bcf](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/46d85bcf49ea73545a5af4324c28af51a17acd3c) - enable first level dir paths [ [!55](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/55) ]
- **docker_build**: [11b62099](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/11b6209992294e45a051e26963d772d75014e516) - on success push container to docker hub [ [!53](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/53) ]
- **docker_build**: [e90b938b](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e90b938bba092bdaecbc1a43758218da0058427b) - init submodule submodules [ [!53](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/53) ]
### Documentaton / Guides
- [469255f4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/469255f450e946a712d379415e45a74eb8c07995) - added notes [ [!58](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/58) ]
### Features
- **ci**: [0ec520f0](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0ec520f02328b69642f929a19e8517c7d475a988) - add resource groups [ [!55](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/55) [#33](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/33) ]
- **sync**: [e75464c7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e75464c7c409fd17864624d48c9fec8e6e3544e9) - immediatee git sync [ [!55](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/55) ]
- **latest_artifacts**: [755fcac0](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/755fcac06e9f265789b02a88eb90df35ab1dbf07) - ensure artifats for jobs are always avail on branches [ [!54](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/54) [#34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/34) [#331232](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/331232) ]
- **latest_artifacts**: [22dd4985](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/22dd4985be315be95be55b2b4edff5ae4ba1eeb4) - ensure artifats for jobs are always avail on branches [ [!52](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/52) [#34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/34) [#331232](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/331232) ]
## 0.6.1rc7 (2023-06-05)
### Bug Fixes
- **mkdocs**: [5ffc68d7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5ffc68d7241bb0c729a990b4a5b060bd6488ea8c) - adjust rules to match lint [ [!51](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/51) ]
- **docker**: [097725c1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/097725c1be5d155cebada0cf2cbb17ddbd041e6e) - detect canges in include path corrected [ [!50](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/50) ]
- **ci**: [9e098245](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9e098245d7a6272fd51aee0a479af3a233fdb30e) - typo in docker build [ [!49](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/49) [!20](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/20) ]
- **ansible_playbook**: [13ee3bf5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/13ee3bf535dadf7cada645ddec74e2e29872ac2c) - No4 enable parent pipelines [ [!47](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/47) ]
- **ansible_playbook**: [3c0543f7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3c0543f7ad0673bcb6600e6ff20693be5f784f23) - No3 enable parent pipelines [ [!45](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/45) ]
- **ansible_playbook**: [f3fa9c5a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/f3fa9c5a416295cb2a0362a31f05995336ea9155) - enable parent pipelines [ [!45](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/45) ]
- **ansible_playbook**: [3ee48daa](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3ee48daa10eee6dd80b79ed076c4ad4d1ff9bb57) - enable parent pipelines [ [!44](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/44) ]
### Features
- **ansible_lint**: [6a149f6e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6a149f6ed6d514c42d67b6b04cea114aa32067b8) - added inventory & playbooks directories [ [!50](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/50) [#22](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/22) [!27](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/27) ]
- **ci**: [1dcb3ed5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1dcb3ed521538de47745ed00148bb4123708d90d) - dont git submodule recurse [ [!50](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/50) ]
- **commit_footer_refs**: [f3256c58](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/f3256c5858e1b5b2b6444f9d8ae63f556f4acb30) - only run on changes [ [!50](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/50) ]
- **ci**: [d8a6d5f7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d8a6d5f7ec1f73d5ae506301666383aac843708d) - git gubmodule update trigger moved to api call via curl [ [!48](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/48) [!62](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/62) ]
- **ci**: [35cfa92c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/35cfa92cd900e7ed7008695bf0b65aaf147bb0ec) - git submodule job moved to own definition [ [!48](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/48) [!62](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/62) ]
- **ansible_playbook**: [a86d17ef](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a86d17eff267750c3713968852d5013ef00ee226) - rules set to never 'ONLY' [ [!48](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/48) [!62](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/62) ]
## 0.6.1rc6 (2023-06-02)
### Bug Fixes
- **md_lint**: [ba43bb9c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/ba43bb9c8de87d723abcd0b4b7519c88d8c3b162) - lint on git tag [ [!43](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/43) ]
## 0.6.1rc5 (2023-06-02)
### Bug Fixes
- **gitlab_yaml_lint**: [efa62710](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/efa62710571e48872d700a8a8802a526fb86b1f6) - adjust logic to detect changes [ [!42](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/42) ]
- **commit_footer_check**: [6accd863](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6accd8633ca0579de084d9762f610711ae1e5715) - run on non master/dev branches only [ [!42](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/42) ]
### Code Refactor
- **ci**: [9d767282](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9d767282ffa86c48077bd08b605cf50be76a9b07) - update ansible-role repo path [ [!40](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/40) [#74](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/74) ]
### Features
- **submodule_update_trigger**: [86b05338](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/86b05338854f94997cb5cf09fad0561c09f86461) - only update own submodule [ [!41](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/41) [#16](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/16) [!60](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/60) ]
- **mkdocs_build**: [ff8c43c1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/ff8c43c1ea2126cabf0ad2f400a784a9f90ec1ac) - always build on git tag [ [!41](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/41) ]
- **ci_rules**: [04e7e928](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/04e7e928e0f4f2212078fd08fd87b2e024dd5257) - add exists and changes for rules [ [!41](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/41) [#32](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/32) ]
- **yaml_anchors**: [862176f9](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/862176f9dca8cf8ee998456db0cc12f7084f7fc0) - initial conditional checks [ [!41](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/41) [#32](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/32) ]
- **ci**: [6f810f80](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6f810f8084e54f0afc9ebb47bfcc855536046a08) - add more repos to update [ [!39](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/39) ]
## 0.6.1rc4 (2023-05-31)
### Bug Fixes
- **ansible_playbook**: [73ea66e6](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/73ea66e60d9cdb235aebda839e0a734212c997bc) - always pull image [ [!37](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/37) ]
- **mkdocs_build**: [c47be421](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/c47be42184c96855f0702c0258931da9730df517) - ensure config file exists when run on branch [ [!36](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/36) ]
- **automagic**: [8ced1720](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8ced1720e00f984e75c51bf8985e45d07aac8c09) - fix git submodule so it runs on schedule [ [!35](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/35) [#31](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/31) ]
- **docs_environment**: [b68f6cb4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/b68f6cb4b4a571dee52cb765ddb6a5a70c78b364) - don't define empty env path [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) ]
- **doc_pages**: [91ac4476](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/91ac4476fbefd2476d1c147c1681a1a53cc40201) - use updated job name [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) [#30](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/30) ]
- **ansible_lint**: [75968b14](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/75968b140ca0b2734d6af14e78e7c598b6221600) - only run if tasks/main.yaml exists [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) ]
- **mkdocs_build_website**: [0bc72554](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0bc72554534488d147356d148d635d490b8a1007) - renamed and normalized [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) [#30](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/30) ]
- **sub_folder_changelog**: [203a9990](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/203a99903c28201f74304ca8689fae25a7a28aa0) - dont create changelog for docs [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) ]
- **jobs**: [a010f7ba](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a010f7bab19fc89f71c8bc5a81a3d1944f4bdc05) - jobs that occur on push should also run on 'trigger' [ [!33](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/33) [#26](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/26) ]
- **docker_publish**: [79855cdb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/79855cdb99762fd444bedddb6be59cb4ba41fe50) - job only run on dockerfile exists [ [!32](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/32) [#28](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/28) ]
- **docker**: [502f12c2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/502f12c21689f86675a000e51ca415019fcad184) - job only run on dockerfile exists [ [!31](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/31) [#28](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/28) ]
### Code Refactor
- [e79b5545](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e79b554550dbabe5df429d6c57fe15cb2b144432) - rename website to documentation [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) ]
- **ci**: [681b8f1a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/681b8f1a0293986a0b67ba13c72bf8dd92ca692a) - update deploy job name [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) ]
- **docker_hub**: [7b4b01bd](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7b4b01bdab2c4299e892071ef3c19b324bf3768c) - move needs to template [ [!31](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/31) ]
### Documentaton / Guides
- [87165450](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/871654508cd183afc1240c9c5de16e9f762c89ee) - refine [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) ]
- **automagic**: [95bc6a5b](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/95bc6a5b036d809ef4bce8af6f70568c595785eb) - added initial autmagic docs [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) ]
- **ansible_playbook**: [39881505](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/398815055e013059afc6c4d99fa97bdeeb003909) - document ci job definition [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) [#26](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/26) [#27](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/27) ]
### Features
- **ci**: [7018440d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7018440dcbd09c2eb406817eab7df3e24e19687d) - on push to dev, update git sub modules on specified [ [!38](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/38) ]
- **mkdocs_build_docs**: [5e491285](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5e4912857aea43678b2ef61230df3817f193d684) - keyword needs does not belong in definition [ [!36](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/36) ]
- **lint_markdown_docs**: [9ebd0a27](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9ebd0a27f65b36b289b3e7c0647e839b5f7a2798) - ensure also detects website [ [!36](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/36) ]
- **ci**: [44076553](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/440765537dcc4370d6558ec5d41fe7f87a5f7f4d) - use automagic ci template [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) ]
- **automagic**: [18bc18c2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/18bc18c29b4ae08963d4c744e9479622b2cd921c) - add ansible template [ [!34](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/34) ]
- **ansible_play**: [fff7d314](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/fff7d31498d486b1c39f1672df9b283ad02c21d8) - force output colour in job logs [ [!33](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/33) ]
## 0.6.1rc3 (2023-05-28)
### Bug Fixes
- **scheduled_pipelines**: [bade89c5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bade89c5333ca853844e224f46a2d3dafab7179d) - if scheduled pipeline only run schedualable jobs [ [!30](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/30) [#29](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/29) ]
### Code Refactor
- **ansible_playbook**: [f9af921e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/f9af921e6b6ec10f9f77ec6a016c6cbb9559d1bf) - final logic adjustment for job [ [!29](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/29) [#25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/25) ]
- **automation**: [1f6ee9ea](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1f6ee9ea27824df1c82bf85e1e239f57f2145bdf) - final logic changes [ [!29](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/29) [#25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/25) ]
### Features
- **auto_jobs**: [c5d27e83](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/c5d27e832e100156cb99c5ca580fd5a8eb600e0f) - created initial template to auto-create jobs [ [!29](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/29) [#26](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/26) ]
- **variables**: [158cc94d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/158cc94d1a817f89b6603e9bac7678196b21d1d5) - added pipeline trigger and schedule [ [!29](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/29) [#26](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/26) ]
- **automation**: [0d3eaa6a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0d3eaa6ac2dc448505b18c6aecd4a72e28ffde83) - job to run ansible playbooks [ [!29](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/29) [!8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/8) [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) [#5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/5) ]
## 0.6.1rc2 (2023-05-24)
### Bug Fixes
- **sub_folder_changelog**: [0482c014](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0482c0144ede393996449a22f1f7742c2e512ac2) - dont create in git submodules [ [!28](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/28) [#23](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/23) ]
- **md_linting**: [e26f590e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e26f590ebcf284be949be4e1d337e1f587755446) - must lint on git tag [ [!27](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/27) [!3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/3) ]
- **mkdocs**: [7a9aca3a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7a9aca3a54b1faacb7e286bade84aff0ff4fd2e5) - default to docs directory as root [ [!26](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/26) ]
- **template**: [0b9e7375](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0b9e7375c911d65e06b0d801755449ab31cb45ea) - use correct path for build artifact [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **markdown_lint**: [18af7f83](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/18af7f831ad2399a6ae9809c51e87f19450db1a7) - use new lint path [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **markdown_lint**: [12d3a412](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/12d3a412ac73baff16b77488db143efd7311b542) - typo in config variable [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **mkdocs**: [f42b0ecf](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/f42b0ecf60def9d0f8d366d09ab91006b6fe32c6) - add placeholder pages [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **docker**: [f604c6e2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/f604c6e27d2e7704491f4c78979db40cf89764c0) - ensure qemu binfmt is loaded [ [!24](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/24) [!1861](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/1861) ]
- **docker_hub**: [8e0f16c5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8e0f16c585978ded46164c80559b402c0cb2edf2) - push correct image [ [!24](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/24) ]
- **lint**: [a754aa81](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a754aa81edf1570b4e8e2e7d4a23025c8b99f314) - use correct path for requirements.txt [ [!24](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/24) ]
- **gitlab_release**: [18a28087](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/18a280878799fe077efa0ed5b11bceedd53eb5c8) - allow skip on dev branch [ [!17](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/17) ]
### Code Refactor
- **docs**: [7c385b75](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7c385b7552945699eb87ec3ec43169df0cb77297) - pages dir renamed to docs [ [!26](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/26) ]
- **template_website**: [1b59d623](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1b59d62348465cc9cc069d5ee23e759316fa9b3c) - adjust names of jobs [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **markdown_lint**: [bce7396d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bce7396d8bbf5ec6600a3a34a05198a87c4fcc70) - move md linting to lint folder [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **docs**: [3a2a135d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3a2a135d0af50a9360870e0a7f362c3820543e40) - markdown linting errors fix [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **mkdocs**: [dacb9f22](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/dacb9f22dd9aee1ff741c7ac8078912d9a2b0dbf) - use locked version from website repo [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **docker**: [a90ccb81](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a90ccb81772e295cebe89d7a9c32ab700e19884d) - move docker jobs to their own file [ [!24](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/24) ]
- [c34e382a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/c34e382a22cd39874abd8fb5116e831e888db8af) - use name that makes sense [ [!24](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/24) ]
- [539e40e3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/539e40e3008e24411f62f439d394db4b5e69a066) - move ansible and yaml lint job to linting folder [ [!24](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/24) ]
### Continious Integration
- **pages**: [bcb80358](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bcb80358d9adb6b3a89fab1003f4434fb2949bdc) - add pages slug [ [!27](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/27) ]
### Documentaton / Guides
- [28c04fb2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/28c04fb2e854521167367161d13b09650829d17d) - add job definitions to page [ [!26](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/26) ]
- [657df7a5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/657df7a5ceb59798c7bb072aed5bf7ef82aef9b6) - add job definition to page [ [!26](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/26) ]
- [0bc3451b](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0bc3451bc20e7705a32d89e9f601af363523d946) - added edit url [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- [4fb85408](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4fb85408b8f4e8b87eb97a43db50c86399d8e350) - move readme to project pages index [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- [b66abc19](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/b66abc1947676a624d32b4895a9a05000105f36a) - notate under development [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- [61200e52](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/61200e526efcb71bcec9f27ac4bd7c6f02fc23a6) - update structure [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **template**: [e40310fc](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e40310fc21b6af684f6db7858196e8180b6e03df) - add index and website [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- [55061ad5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/55061ad5efd303cf5a53c4672409f7d159113c62) - use project template [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **mkdocs**: [1ec2666e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1ec2666e8565d5206aefaf5462f0f83f74fbbcb7) - moved to pages folder [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **conventional_commits**: [70dfb826](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/70dfb826d100432265e3f3b08948bb808855e0aa) - added config file requirement [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
### Features
- **template_website**: [bef76847](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bef76847ec686fcff92229d7b9be0bcfc7b267da) - enable specifying the url slug [ [!27](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/27) ]
- **docs**: [a8f675c1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a8f675c102d0027f23b4490aa3620b504d0193cc) - temp adding of requirements [ [!26](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/26) ]
- **mkdocs**: [71a335c2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/71a335c2667505c199bd67446327cd8794de5f52) - install website-template requirements [ [!26](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/26) [!7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/7) ]
- **pages**: [480502a7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/480502a7638f346be8334d3c03d5b00ec18f0c2f) - don't include projects in nav [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **template**: [8e2a2338](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8e2a233814bd76ebff3dd8ed5a79afe307a84755) - always deploy to pages on dev manual other [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **mkdocs_build**: [a0b6d05a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a0b6d05a0f3f0fa84c825007f6ec9f28c945f3ef) - always build [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **mkdocs_build**: [6d2e50e9](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6d2e50e947839576f098bd7700e00b9d6ab4be1e) - add manual build [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **template**: [4fa90d4c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4fa90d4c4249ed8929e7dde2e7bd0e8581d0d8a7) - use md lint config from website-template [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **markdown_lint**: [38d46900](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/38d469007a388312c71a61916275d6a12aad8bbd) - enable specifying the lint config path [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **pages**: [15750124](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/157501245d7c347670055352f9263917a2c3f445) - use repo name [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **website**: [16d47d5e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/16d47d5e350e1c78f72c97780ed1732a43927fcc) - add pages job for website [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **template**: [91a50eb1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/91a50eb15bd92ca65481a73c6f095681281941fe) - created website job template [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **mkdocs**: [5556a57e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5556a57ea5588d4f0cd1434bfdde5cd77e3b4f5c) - only run on success [ [!25](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/25) ]
- **conventional_commits**: [088c9fb0](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/088c9fb04c80961f4de8d2b129955ae8cd0b9529) - ensure .cz.yaml exists [ [!24](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/24) ]
- **docker_build**: [6765894c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6765894cebc958df92fd3f42d93bd205101d1966) - enable spcifying the dockerfile to use [ [!24](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/24) ]
- **template**: [67f39d96](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/67f39d9694b80ad0d2d08800d4faadf594fb6623) - added a ansible-role job template [ [!24](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/24) ]
- **gitlab_release**: [d89941df](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d89941df05bfed4b0ad1277e715b224d232e7949) - dont automagic run on dev [ [!4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/4) [#21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/21) [!23](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/23) [#21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/21) [!4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/4) ]
## 0.6.1rc1 (2023-05-15)
### Bug Fixes
- **ci**: [b0024c99](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/b0024c99b0cd06e12f95882749b3668a639cf24c) - v no longer suffix to tag [ [!22](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/22) ]
- **docker**: [72f52898](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/72f52898869fe23174e649f0bf8327732fd52147) - setup ROOT_DIR [ [!3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/3) [!1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/1) [!22](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/22) [!3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/3) [!1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/1) ]
- **conventional_commits**: [76db5b17](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/76db5b17578d8585ed31e0728dbfb37ea2fae153) - never run on git tag [ [!7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/7) [!22](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/22) [!7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/7) ]
- **markdown_lint**: [8581981a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8581981a43c31d6903865f067fa3f77adae949e5) - fix search paths [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **yaml_lint**: [a04b272c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a04b272c167dae27940211b7c77a4adcb33b2086) - remove extra var creation [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **yaml_lint**: [3b686a46](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3b686a461be22b682642eb1143f2bd2ea2d3ef17) - ensure config is within double quote [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **yaml_lint**: [52c6ceda](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/52c6ceda83b04e1e18eaa9c32b1a41733dc26497) - scan all [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **yaml_lint**: [0d59871a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0d59871a1a73178c248b2189dfae2cd93f21c469) - enable specifying additional config [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **markdown_lint**: [cf10e289](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/cf10e289d21a5cc529bbe7effb189aab65875510) - enable job for md in sub folders [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) [#19](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/19) [!2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/2) ]
- [d389d141](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d389d14192e1e483fbd48fa9b5c5bee25db14a20) - validation jobs on all except merge [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **gitlab_release**: [a745ceac](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a745ceac5ebce458b46593311e5285f40dcba349) - fixed rule to match nfc_bot [ [!20](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/20) [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) [!20](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/20) ]
- **gitlab_release**: [e76378dd](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e76378dd068e200a1198f1811efb9d3bec7878f5) - only run on master on_success [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) [#16](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/16) ]
- **ci**: [934a401a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/934a401a9620891b09a5fe9c9b0e50a97b43fa9b) - specify the commitizen version [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **markdown_lint**: [8391bf65](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8391bf659bf5dd39edf31205a68c699851e78be3) - remove quotes from search path variable. [ [#18](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/18) ]
### Code Refactor
- **ci**: [02e9e5f4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/02e9e5f4f4cc0b93ae92c7ba3a2cfb38305af64c) - inconsistant tabs [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- [adc720bb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/adc720bbfa0dd8ff66f70fe56678b5f388ce8d0c) - cleanup non-needed dir [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **gitlab_release**: [1fa7fec3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1fa7fec38a54b7ddf460b1394a7024ef161fab24) - show debug before command [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- [408e4eab](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/408e4eab9e1f61004f1e38af6d1531747b7da99b) - move docs as part of restructure [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- [9a7ae710](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9a7ae7106e80a038b31cdc9fc172bb1f974ecb94) - set correct commit details for nfc_bot [ [!20](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/20) ]
### Continious Integration
- [1233d6ad](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1233d6ad90032f3a6c5a3a6ff0c92510d0ef298a) - disable licence scanning until fixed [ [!22](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/22) ]
- **yaml_lint**: [ca60625b](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/ca60625bf171924e91ea6eea5aa3decc51b7f0dc) - update to python 11
- **markdown_linting**: [47e39849](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/47e3984916bf671e6dbc39e05160a2409fc78b6b) - exclude .gitlab and changelog [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- [49282457](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/492824572b963f048af993fc36d8696f9b0fe41e) - dont lint git submodule website-template [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **docs**: [72f8eb72](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/72f8eb720d5266b7aa83b5e2974da075a1c06875) - added mkdocs config [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
### Documentaton / Guides
- **yaml_lint**: [a925db14](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a925db14641e709572b832278f43aabe48d153f7) - update docs for new variables [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
### Features
- **conventional**: [93931cb9](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/93931cb9076e0db238f4e297abe3d8f37bd71b80) - job not to run when bot pushes change [ [!22](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/22) ]
- **ci**: [7ed3f92d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7ed3f92dd75397ad4623ada8469633dc8b0caf5f) - exclude website-template from yaml lint [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **ci**: [bbbf9e35](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bbbf9e35e2ad5d0fdf1c4c697f127dfe68d5e0da) - set correct search path [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **yaml_lint**: [0b4e85c3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0b4e85c3134ff9f126056113383383559cdfb227) - added var to prevent job from runnng [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **gitlab_release**: [e06ffef6](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e06ffef66c4a0ba1f48f109c175239560909e698) - run on merge to development [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **gitlab_release**: [199ea1f2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/199ea1f23c6a3df2b40ae3d9a5668719301500d9) - never run on merge or git tag [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **git_push_mirror**: [1db2209d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1db2209dfb36fbdda28d68388aec9f62f85b57bc) - always sync git tag [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **template**: [8b9a0356](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8b9a0356dec7d99a63c4ed744b78ae707155e9f3) - added new template for ci pipeline for docker containers [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **common**: [9670fc47](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9670fc47401630ef6c407bd7eaccd3db64195543) - created a common ci file for inclusion [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **commit_footer_refs**: [8d512a9a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8d512a9a4bd7f4895645436f057c4bab3efb864e) - ability to disable job with variable [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **gitlab_release**: [a37acbfc](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a37acbfc7d3ea20ece7cb76e15a14858b26f8508) - ability to disable job with variable [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **git_push_mirror**: [81445c06](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/81445c06e43bce10761e3a7fbad7df97f82d6bc2) - ability to disable job with variable [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **conventional_commits**: [9e7d357b](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9e7d357bab2b92704d37ad5621df9fe8d1e31a26) - ability to disable job with variable [ [!21](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/21) ]
- **markdown_lint**: [d75e9599](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d75e95998b4a195cfcc36683ffa6f058bf7b05be) - artifact locations to be hard set [ [!19](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/19) ]
## v0.6.1rc0 (2022-01-25)
### Bug Fixes
- **lint_markdown**: [e0402ecf](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e0402ecfb2ab662a74bb70df7937b02576d5e41b) - ensure the correct path for the job directory is used [ [!2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/2) [!18](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/18) ]
## v0.6.0 (2022-01-24)
### Bug Fixes
- **ansible**: [0df60b12](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0df60b12dbfff983ca3a671b90ab1be126597e52) - remove duplicate lines that last code review didn't remove.
- **ansible**: [484d9879](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/484d98792a27c9d967331e9d3cd1afdca435bdd6) - fix typo in job pip file
- **dependency_scanning**: [e1894ec0](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e1894ec0c4fe7504901682f008c2ff0db7e351fe) - upgraded versions from vulnerability scan.
### Code Refactor
- [6668c2fb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6668c2fb8d7545b4f9052ad3065e58f00d11be62) - test specifying must equal.
### Continious Integration
- **markdown_lint**: [3096d7ee](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3096d7ee0a86d104de04e77b4b734ec0d266020d) - Added Linting of Markdown for files in this repository. [ [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) ]
- **mkdcos**: [a2d705de](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a2d705deb1f3898b6d5fa4d55bd995b1a7ad4b68) - mkdocs requirements.txt had a '\n' in the filename. renamed. [ [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) ]
- **dependency_scanning**: [39a76a08](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/39a76a08691dbdf487405f7c5e6b717eb862d80f) - delete all python 'requirements.txt' files that are not the specified one to be scanned. [ [#350949](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/350949) [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) ]
- **dependency_scanning**: [4e1da5e8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4e1da5e87281284e021791a4b600a1bff53b8431) - python 3.7 not available for dependecy scanning. [ [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) ]
- **dependency_scanning**: [a6afa766](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a6afa76600e07d40e8b94fa2d8385ad78634e3b0) - increase python version to 3.7 [ [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) ]
- **dependency_scanning**: [7153f9b4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7153f9b42591e177112d279d2134fc0db1f5a14d) - check python version as pillow 9.0 reported as not found. [ [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) ]
- **dependency_scanning**: [996ee64a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/996ee64ab43f926ca52ab3154ab43e20b6d48fcb) - scanner set to use python 3.6 [ [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) ]
- [725bfaf8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/725bfaf829069002e3b2cb944556d2ce5facb426) - debug logging for dep scanning
- **python_dependency_scan**: [2fffa866](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/2fffa866d84f460893c8d9711bc21a74908edb3e) - disabled main job and manual setup for all ci jobs. [ [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) ]
- **licence_finder**: [83cce72a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/83cce72af22b09bd8a245af99e9134d3be129eac) - set to recursive scan so all licence's can be detected.
- **scanners**: [fc816192](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/fc816192be680f64ee1b4b96cccd0d605c529b86) - Added dependency and licence scanners
- [5c872f16](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5c872f163e4de5834efd74a78e3e948d242916ec) - Added a test stage for gitlab specific tests.
- **artifacts**: [e0d8885d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e0d8885d52319a6188c779e80c2064b773721184) - markdown lint and mkdocs build artifacts to expire after 24 hours
### Documentaton / Guides
- **markdown_lint**: [b6dcb47b](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/b6dcb47b1d1831784d36f482fd99c0ce5e56f088) - removed no longer needed requirement.
- **markdown_lint**: [fd48316a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/fd48316ae763282fc106b7da184c05b35d9ae052) - updated docs on how to use and view rules.
- **mkdocs_build**: [347597e3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/347597e3c1cb20eaa32d1e1cbb2d9d13661a663a) - include mandatory vars in template ci file.
- **mkdocs**: [1ef0e224](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1ef0e2245facffb760ba2ad9a57af1d6178a2d1a) - Completed the mkdocs build readme [ [#15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/15) [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) ]
- **markdown_lint**: [6363ea37](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6363ea377cd008bbc839e6f4ee4fca337b77bc19) - completed the job docs. [ [#12](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/12) ]
- **mkdocs**: [5c05ed76](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5c05ed7605ddbecb1a3c7046716afa07829c264f) - initial adding of mkdocs build readme. [ [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) [#5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/5) ]
- **markdown_lint**: [6383cde3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6383cde3bf9985b2cb43908bc2486d1dc67b7026) - initial adding of the docs [ [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) [#12](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/12) ]
### Features
- **markdown_lint**: [9ab336fb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9ab336fbddd6cba1d29c5a001ab52772ed4554b6) - include junit configuration file '.markdownlint-cli2.jsonc' in ci job.
- **mkdocs_build**: [906f09e2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/906f09e2d3285681bd982d65eda3f56cf5a5169e) - use a pip file for job so that licence scanning can function.
- **mkdocs_build**: [5a41962a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5a41962a994a54d99a3e7ab1bc0d7379ea14c1c2) - move ci job dependencies to a pip file so that the ci dependency job can check versions.
- **build**: [50b5e854](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/50b5e8542b827e6b6cf70f3f4c26b4c1737fe0c1) - initial add of mkdocs build job [ [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) [#15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/15) ]
- **validation**: [954aa28d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/954aa28dbf1073be05a3dd6d13da818a0bc7cb4e) - Added a Markdown linting validation job. [ [!15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/15) [#12](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/12) ]
## v0.5.0 (2022-01-16)
### Bug Fixes
- **commit.py**: [73918f2f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/73918f2f5e19440d0e300da3a20712739c316d88) - filter merge request search to 'opened' and on current branch. [ [#6](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/6) [!13](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/13) ]
### Continious Integration
- **MR_Title**: [31517b4b](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/31517b4bf00c1f177ef925d09b1a6714577f62c5) - save the merge request title as a variable and debug output in job log. [ [!13](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/13) ]
### Documentaton / Guides
- **README.md**: [f4670844](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/f4670844cc0961bf38fbf760f8eee505a54ab495) - Added project header template [ [!13](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/13) ]
### Features
- **.yaml_lint_defaults**: [140985c3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/140985c3a4ea07cf30f7fe8c970fb07cc61b776d) - Always run on all branches as this denotes quality. [ [!13](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/13) ]
- **commit_footer_refs**: [82c6c9f5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/82c6c9f5d53594544cea9a7bc59a10ab1e9ebedd) - never run on development or master. [ [!13](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/13) ]
## v0.4.0 (2022-01-15)
### Bug Fixes
- **commit.py**: [99bdc2a0](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/99bdc2a0929d4e7036e50e8ce22ce9b0f90f0736) - fix typo that caused exception [ [#6](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/6) [!12](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/12) ]
- **conventional_commits**: [d03d9fef](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d03d9fefc916dd6730d9ffa778c11d48d621318e) - fetch all branches prior to check for parent branch [ [#6](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/6) [!12](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/12) ]
- **ci**: [d5782d95](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d5782d95e825d406ea805c425cfefd6752fb6e35) - added variable 'GIT_SUBMODULE_STRATEGY' to be 'recursive' [ [#10](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/10) [!12](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/12) ]
- **conventional_commits**: [42ad02ee](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/42ad02ee5db65c3c6c33ad14fe0371c9916897bf) - use git show-branch to find origin branch [ [#6](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/6) [!11](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/11) ]
### Features
- **commit.py**: [e5531fc7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e5531fc77b5bdb1ccc0741e388df2d8d25ba6ade) - throw an error if no token was supplied. i.e. empty variable. [ [#11](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/11) [!12](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/12) ]
- **commit.py**: [6b7ad95f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6b7ad95fc0ccccf79ff645bad3f86660f5096a4e) - confirm a merge request was found, if not output 'ci: No Merge Request found' [ [#11](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/11) [!12](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/12) ]
- **commit.py**: [c543c47a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/c543c47af8c7c386ae57f5a7a50904d396758c3a) - try to us `CI_JOB_TOKEN` before the specified token, if any. [ [#11](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/11) [!12](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/12) ]
- **commit.py**: [b01550e0](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/b01550e09f273edc8a57f4ad4b41ee2d67705d41) - removed ability to fetch first commit or target branch [ [#6](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/6) [#6](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/6) [!12](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/12) ]
## v0.3.1 (2022-01-11)
### Bug Fixes
- **pylint**: [4b6cc317](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4b6cc3176fc4acc3b7dbb954162802af9cbb4c68) - install the required packages for files being checked [ [#7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/7) ]
- **pylint**: [936299ae](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/936299aefc6eadf9cbfec3152b352b321969cfab) - fix bug introduced in code quality commit [ [#7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/7) ]
- **commit_footer**: [2ac22c0e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/2ac22c0e914016a8944ff9b94640f3e87f409069) - fix bug introduced in code quality commit [ [#7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/7) ]
### Documentaton / Guides
- **readme**: [8ac36de8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8ac36de8e0f113ce17d54dfce1345a0adab41bc8) - Updated with an example .gitlab-ci.yml example [ [#2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/2) [!10](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/10) ]
## v0.3.0 (2021-08-12)
### BREAKING CHANGE
- !2
### Bug Fixes
- **commit_message**: [3360a15f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3360a15fde12682edfd9044d2541dc819615b838) - fixed commit message check if there is only one commit to the branch [ [!7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/7) ]
- **commit_footer_refs**: [63af1efb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/63af1efb4fd92a9f8755f766728a18d8f390b805) - Use the current git branch for comparison. [ [!5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/5) [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **gitlab_release**: [f76cabee](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/f76cabeeb04b028a231dc1c232862db5fcad4345) - Adjust release workflow [ [!2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/2) ]
### Code Refactor
- **gitlab_release**: [eb0bf4c1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/eb0bf4c1740dbd7a47ceb031c0d1c854899a1e40) - file link to be in local repository for helping fix commit footer ref check failures [ [#4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/4) ]
- **gitlab_release**: [81776223](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/81776223c5cb392c12c7ca63488a1df10290e9d1) - use a name for failed test to denote the issue [ [#4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/4) ]
### Continious Integration
- **gitlab_release**: [7cb676eb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7cb676eb98a7de30d47a6b49a87067116684cfd2) - Add a validation job to check if commit messages contain a gitlab reference in the footer [ [#4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/4) ]
### Documentaton / Guides
- **readme**: [0653766c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0653766c935cb117082bfe1481ae83e4a1b2bb5c) - Updated badges and intro [ [!5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/5) ]
- **gitlab_templates**: [9f7a24c1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9f7a24c1ebc0bdb5a153977dcb1c53d7ec2fb140) - added issue and merge request templates [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **template**: [da8eb5c3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/da8eb5c3381379f6e405c3ebe14d9a883c52f41a) - added template readme for CI job folders [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **readme**: [ace7a034](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/ace7a03456861d59e2f904405f45409c53e831ab) - explain sync and using github to link gitlab-ci [ [!5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/5) [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **readme**: [8790917e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8790917e7d959aa7b8305912bb443ba6b72200c6) - explain repo layout and versioning [ [!5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/5) ]
- **readme**: [19900945](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/19900945e763249b6ef7a9e2e2cbcf11748b1eea) - added how to update gitlab-ci [ [!5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/5) ]
- **readme**: [8a988ebf](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8a988ebf09015211f8f6566acc0ba71c1f00bee1) - Added how to use this repository [ [!5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/5) ]
- **gitlab_release**: [dc13d4f2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/dc13d4f2841038c085dcf29dfb0b0c5d2f00f099) - Added user docs to fix errors from ci job 'commit footer refs' [ [#3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/3) [#4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/4) ]
- **changelog**: [35edb7cf](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/35edb7cfc59e2d147bdb5cb5d03710ec747073ae) - Updated changelog to new layout [ [!3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/3) [#3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/3) ]
- **gitlab_release**: [5f273ce2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5f273ce23a331eaf11623207ec4aba8b856c14f0) - Updated docs with new instructions on version incrementing [ [!2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/2) ]
### Features
- **python_linting**: [d6105624](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d61056243804728e059b99fce1644a8cc37230bb) - added ci job, python linting, code quality and scoring [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **yaml_lint**: [d20a56fa](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d20a56fa0ca492e3fc2ad7c548fc891cc8ffc8ec) - Added job yaml lint for checking yaml files [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **gitlab_release**: [22136f7d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/22136f7dd22b9487d362a7ed63ca1b76e52b9cc7) - Toggle var added to enable switching changelog references. [ [#3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/3) ]
- **gitlab_release**: [756b9406](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/756b9406dde8cf0bf0030ac72855a054ece3a883) - be able to toggle commit footer check job [ [#4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/4) ]
- **gitlab_release**: [11e15661](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/11e156619d0d820e534897bafd5f39e6f9defcbf) - python module to check if a commit message has gitlab references in the footer [ [#4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/4) ]
- **gitlab_release**: [8699c412](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8699c41219d70e6f41f42dc7f2c1bcf542b3f723) - Add commit footer to changelog [ [!1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests/1) [#3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/3) ]
## v0.3.0rc1 (2021-08-04)
### Documentaton / Guides
- **changelog**: [cb78ab82](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/cb78ab82182a9edcd568a8b4c315490041539149) - regenerated so that all entries use the new url format [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
## v0.3.0rc0 (2021-08-04)
### Code Refactor
- **gitlab_release**: [cc3fabda](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/cc3fabdaa28f97c3e1600e4a0d95a05bb547e772) - Use Short commit SHA1 in main changelog link to gitlab [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
### Features
- **gitlab_release**: [3e8c3ce7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3e8c3ce7cd64a6e9110818d32c15c3602fefb76c) - On the development brnach, releases to be 'rc' to denote considered non-stable [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
## v0.2.1 (2021-08-04)
### Bug Fixes
- **gitlab_release**: [588698df](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/588698df2668853a97fe60901ab324310f34f279) - Correctly fetch the CI_PROJECT_URL for the environment
## v0.2.0 (2021-08-04)
### Code Refactor
- **gitlab_release**: [7a69685b53cbe5bd7341a176bf63fd17d36bc7f0]($CI_PROJECT_URL/-/commit/7a69685b53cbe5bd7341a176bf63fd17d36bc7f0) - Dont conduct any release, git push or tag delete if the version was not bumped
- **gitlab_release**: [72e8b6c84defdb903c5741e3469651987769713f]($CI_PROJECT_URL/-/commit/72e8b6c84defdb903c5741e3469651987769713f) - build gitlab commit url for changelog so that there is a weblink to the changes
- **gitlab_release**: [7a69685b](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7a69685b53cbe5bd7341a176bf63fd17d36bc7f0) - Dont conduct any release, git push or tag delete if the version was not bumped
- **gitlab_release**: [72e8b6c8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/72e8b6c84defdb903c5741e3469651987769713f) - build gitlab commit url for changelog so that there is a weblink to the changes [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
### Documentaton / Guides
- **gitlab_release**: [eebe8e30dcb11cd239f35fcb98216b2ae4d20ece]($CI_PROJECT_URL/-/commit/eebe8e30dcb11cd239f35fcb98216b2ae4d20ece) - Include custom command instructions
- **gitlab_release**: [eebe8e30](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/eebe8e30dcb11cd239f35fcb98216b2ae4d20ece) - Include custom command instructions [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
### Features
- **gitlab_release**: [287b4c954dddfaaf0a66af387676ea438cc80e61]($CI_PROJECT_URL/-/commit/287b4c954dddfaaf0a66af387676ea438cc80e61) - Include code refactor as part of the changelog
- **gitlab_release**: [287b4c95](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/287b4c954dddfaaf0a66af387676ea438cc80e61) - Include code refactor as part of the changelog [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
## v0.1.0 (2021-08-04)
### Bug Fixes
- **gitlab_release**: 80ca3618ee56d0f2a2c012416cb6206599a4f3f6 - A 'feat' commit must do a MINOR bump to version
- **gitlab_release**: ed5be7fd3c16e86d48e179a2cded53a38f79e1d9 - ci image is alpine, use '/bin/sh' and add the changlogs to git cache for commiting
- **gitlab_release**: 7706085b09f3cd9b7c09f7f93b182fd425f6525a - All tasks run as part of script including user custom script
- **gitlab_release**: 1446c28ed2bfe2efec99bc2fc83b111717bcb2af - Use a user token to access the git repo for pushing commits back
- **ansible**: 2a3266fb537e22dddf47708d0af101945027128f - Ensure the default ci directory is populated
- **gitlab_release**: [80ca3618](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/80ca3618ee56d0f2a2c012416cb6206599a4f3f6) - A 'feat' commit must do a MINOR bump to version [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **gitlab_release**: [ed5be7fd](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/ed5be7fd3c16e86d48e179a2cded53a38f79e1d9) - ci image is alpine, use '/bin/sh' and add the changlogs to git cache for commiting [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **gitlab_release**: [7706085b](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7706085b09f3cd9b7c09f7f93b182fd425f6525a) - All tasks run as part of script including user custom script [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **gitlab_release**: [1446c28e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1446c28ed2bfe2efec99bc2fc83b111717bcb2af) - Use a user token to access the git repo for pushing commits back [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **ansible**: [2a3266fb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/2a3266fb537e22dddf47708d0af101945027128f) - Ensure the default ci directory is populated [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
### Code Refactor
- **gitlab_release**: [2035ed27](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/2035ed27af7fc1f3f5b2c42aa5874219fc5fe323) - use 'git log' to get current commit hash [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
### Continious Integration
- **git_push_mirror**: b593505698b3d3359569f29f97c90e17e211f304 - Push repo to github NoFussComputing/gitlab-gi
- **conventional_commits**: a2174104d1eb05d329bacd44700bf81ac709dcac - Add conventional commits job to check commits and MR titles
- **git_push_mirror**: [b5935056](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/b593505698b3d3359569f29f97c90e17e211f304) - Push repo to github NoFussComputing/gitlab-gi [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **conventional_commits**: [a2174104](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a2174104d1eb05d329bacd44700bf81ac709dcac) - Add conventional commits job to check commits and MR titles [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
### Documentaton / Guides
- **README.md**: 247264e36bc0b6c86d2f06f8dae09ff7447fc156 - Added readme for the repo
- **git_push_mirror**: 7ffb20418cfa8e6fa20cca60e42155171961d1ce - Update workflow and typos
- **README.md**: [247264e3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/247264e36bc0b6c86d2f06f8dae09ff7447fc156) - Added readme for the repo [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **git_push_mirror**: [7ffb2041](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7ffb20418cfa8e6fa20cca60e42155171961d1ce) - Update workflow and typos [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
### Features
- **job_changelog**: 1ecd857c0bf8ef009ad2482ad1d52604adadc0ed - Create a changelog per job folder
- **git_release**: 6678a3dbab2763addc185e766cbaffbc074a6e98 - Migrated from ansible-roles
- **ansible**: 2413daefb1e7e5a9e7a3cbb2d8cff2214f4a98ae - Added ansible validation job for linting
- **git_push_mirror**: 9b28ae5952adfb3d61e660814074ad3c7b42ff61 - Added a job that syncs to a remote git repo
- **conventional_commits**: 392a200fd469c4161dbab5f2b59031a7a64f20a2 - Added conventional commit job
- **job_changelog**: [1ecd857c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1ecd857c0bf8ef009ad2482ad1d52604adadc0ed) - Create a changelog per job folder [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **git_release**: [6678a3db](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6678a3dbab2763addc185e766cbaffbc074a6e98) - Migrated from ansible-roles [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **ansible**: [2413daef](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/2413daefb1e7e5a9e7a3cbb2d8cff2214f4a98ae) - Added ansible validation job for linting [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **git_push_mirror**: [9b28ae59](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9b28ae5952adfb3d61e660814074ad3c7b42ff61) - Added a job that syncs to a remote git repo [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
- **conventional_commits**: [392a200f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/392a200fd469c4161dbab5f2b59031a7a64f20a2) - Added conventional commit job [ [#1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues/1) ]
## v0.0.1 (2021-08-03)

View File

@ -1,23 +1,67 @@
# Ansible Roles
<div align="center" width="100%">
[![Gitlab build status - stable](https://img.shields.io/badge/dynamic/json?color=ff782e&label=Build%20%5B%20Stable%20%5D&query=0.status&url=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects%2F28543717%2Fpipelines%3Fref%3Dmaster&logo=gitlab&style=plastic)](https://gitlab.com/nofusscomputing/projects/gitlab-ci)
# No Fuss Computing - Gitlab-CI
<br>
![Project Status - Active](https://img.shields.io/badge/Project%20Status-Active-green?logo=gitlab&style=plastic)
<br>
![Gitlab forks count](https://img.shields.io/badge/dynamic/json?label=Forks&query=%24.forks_count&url=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects%2F28543717%2F&color=ff782e&logo=gitlab&style=plastic) ![Gitlab stars](https://img.shields.io/badge/dynamic/json?label=Stars&query=%24.star_count&url=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects%2F28543717%2F&color=ff782e&logo=gitlab&style=plastic) [![Open Issues](https://img.shields.io/badge/dynamic/json?color=ff782e&logo=gitlab&style=plastic&label=Open%20Issues&query=%24.statistics.counts.opened&url=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects%2F28543717%2Fissues_statistics)](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues)
![GitHub forks](https://img.shields.io/github/forks/NoFussComputing/gitlab-ci?logo=github&style=plastic&color=000000&labell=Forks) ![GitHub stars](https://img.shields.io/github/stars/NoFussComputing/gitlab-ci?color=000000&logo=github&style=plastic) ![Github Watchers](https://img.shields.io/github/watchers/NoFussComputing/gitlab-ci?color=000000&label=Watchers&logo=github&style=plastic)
<br>
This project is hosted on [Gitlab](https://gitlab.com/nofusscomputing/projects/gitlab-ci) and has a read-only copy hosted on [Github](https://github.com/NoFussComputing/gitlab-ci).
[![Gitlab build status - development](https://img.shields.io/badge/dynamic/json?color=ff782e&label=Build%20[%20Development%20]&query=0.status&url=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects%2F28543717%2Fpipelines%3Fref%3Ddevelopment&logo=gitlab&style=plastic)](https://gitlab.com/nofusscomputing/projects/gitlab-ci)
----
**Stable Branch**
This repository is hosted on [gitlab.com](https://gitlab.com/nofusscomputing/projects/gitlab-ci) and has a read-only copy hosted on [github.com](https://github.com/NoFussComputing/gitlab-ci).
![Gitlab build status - stable](https://img.shields.io/badge/dynamic/json?color=ff782e&label=Build&query=0.status&url=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects%2F28543717%2Fpipelines%3Fref%3Dmaster&logo=gitlab&style=plastic) ![branch release version](https://img.shields.io/badge/dynamic/yaml?color=ff782e&logo=gitlab&style=plastic&label=Release&query=%24.commitizen.version&url=https%3A%2F%2Fgitlab.com%2Fnofusscomputing%2Fprojects%2Fgitlab-ci%2F-%2Fraw%2Fmaster%2F.cz.yaml) [![PyLint Score](https://img.shields.io/badge/dynamic/json?&style=plastic&logo=python&label=PyLint%20Score&query=%24.PyLintScore&url=https%3A%2F%2Fgitlab.com%2Fnofusscomputing%2Fprojects%2Fgitlab-ci%2F-%2Fjobs%2Fartifacts%2Fmaster%2Fraw%2Fartifacts%2Fvalidation%2FPyLint%2Fbadge_pylint.json%3Fjob%3DPyLint)](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/jobs/artifacts/master/file/artifacts/validation/tests/gl-code-quality-report.html?job=PyLint)
----
**Development Branch**
![Gitlab build status - development](https://img.shields.io/badge/dynamic/json?color=ff782e&label=Build&query=0.status&url=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects%2F28543717%2Fpipelines%3Fref%3Ddevelopment&logo=gitlab&style=plastic) ![branch release version](https://img.shields.io/badge/dynamic/yaml?color=ff782e&logo=gitlab&style=plastic&label=Release&query=%24.commitizen.version&url=https%3A%2F%2Fgitlab.com%2Fnofusscomputing%2Fprojects%2Fgitlab-ci%2F-%2Fraw%2Fdevelopment%2F.cz.yaml) [![PyLint Score](https://img.shields.io/badge/dynamic/json?&style=plastic&logo=python&label=PyLint%20Score&query=%24.PyLintScore&url=https%3A%2F%2Fgitlab.com%2Fnofusscomputing%2Fprojects%2Fgitlab-ci%2F-%2Fjobs%2Fartifacts%2Fdevelopment%2Fraw%2Fartifacts%2Fvalidation%2FPyLint%2Fbadge_pylint.json%3Fjob%3DPyLint)](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/jobs/artifacts/development/file/artifacts/validation/tests/gl-code-quality-report.html?job=PyLint)
----
<br>
</div>
links:
- [Issues](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/issues)
- [Merge Requests (Pull Requests)](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/merge_requests)
> *To Do: expand on how repo setup and how to use.*
## Using this repository for your Gitlab CI/CD Jobs.
This repository has been designed as a central point for your repositories CI/CD jobs. By simply linking this repository to your repository and configuring, your CI/CD jobs will run as part of the build process, whilst keeping any CI/CD commits limited within your git history.
Each CI/CD job is contained within its own sub-folder. Each sub-folder has a readme specific to the job, which includes the details on how to implement, use etc.
For further details on using these templates with your Gitlab CI/CD jobs, pleaase view the [documentation](https://nofusscomputing.com/projects/gitlab-ci).
### gitlab-ci repository layout
We use the following branches *(these jobs assume you do as well)*:
- `master` - Considered as the stable branch
- `development` considered as unstable
We also tag each branch to denote the version of release. We use our own repo to do the version increment automagically in line with [semantic versioning](https://semver.org/).
## Contributing
All contributions for this project must conducted from [Gitlab](https://gitlab.com/nofusscomputing/projects/gitlab-ci).
For further details on contributing please refer to the [contribution guide](CONTRIBUTING.md).

70
anchors/conditions.yaml Normal file
View File

@ -0,0 +1,70 @@
---
.condition_dev_branch_push: &condition_dev_branch_push # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
$CI_PIPELINE_SOURCE == "push"
.condition_master_branch_push: &condition_master_branch_push # condition_master_branch_push
$CI_COMMIT_BRANCH == "master" &&
$CI_PIPELINE_SOURCE == "push"
.condition_not_master_or_dev_push: &condition_not_master_and_dev_push # condition_not_master_or_dev_push
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push"
.condition_master_or_dev_push: &condition_master_or_dev_push # condition_master_or_dev_push
(
$CI_COMMIT_BRANCH == "master" ||
$CI_COMMIT_BRANCH == "development"
)&&
$CI_PIPELINE_SOURCE == "push"
.condition_git_tag: &condition_git_tag # condition_git_tag
$CI_COMMIT_TAG != null &&
$CI_COMMIT_BRANCH == null
.condition_any_branch_push: &condition_any_branch_push # condition_any_branch_push
$CI_COMMIT_BRANCH != null &&
$CI_COMMIT_TAG == null &&
$CI_PIPELINE_SOURCE == "push"
.rules_commit_develop_branch: &when_commit_develop_branch
- if: # on dev branch
$CI_COMMIT_BRANCH == "development" &&
$CI_PIPELINE_SOURCE == "push"
changes:
paths:
<<: *repository_change_files
compare_to: 'master'
exists:
<<: *repository_exists_files
when: always
- if: # not on master or dev
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push"
changes:
paths:
<<: *repository_change_files
compare_to: 'development'
exists:
- dockerfile
- dockerfile.j2
when: always
- if: # tagged pipeline
$CI_COMMIT_TAG != null &&
$CI_COMMIT_BRANCH == null
exists:
- dockerfile
- dockerfile.j2
when: on_success

View File

@ -1,38 +0,0 @@
.ansible_linter_defaults:
stage: validation
before_script:
- if [ "0$JOB_ROOT_DIR" == "0" ]; then ROOT_DIR=gitlab-ci; else ROOT_DIR=$JOB_ROOT_DIR ; fi
- echo "[DEBUG] ROOT_DIR[$ROOT_DIR]"
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests"
- export PYTHON_VERSION=`python -c 'import sys; version=sys.version_info[:3]; print("{0}.{1}.{2}".format(*version))'`
- apt update
- apt install --no-install-recommends -y git
- python3 -m venv env
- . env/bin/activate
- pip install --upgrade pip
- pip install -r $ROOT_DIR/ansible/requirements.txt
- mkdir $PYTHON_VERSION
script:
- ansible-lint -p --nocolor --parseable-severity "$ANSIBLE_LINT_PATH" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/$PYTHON_VERSION-ansible-lint.log" 1>&1 || ANSIBLE_LINT=$?
- cat "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/$PYTHON_VERSION-ansible-lint.log" | ansible-lint-to-junit-xml > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/$PYTHON_VERSION-ansible-lint.junit.xml"
- ls -la $PYTHON_VERSION
- if [ $ANSIBLE_LINT > 0 ]; then echo "ansible lint failed with $ANSIBLE_LINT"; exit $ANSIBLE_LINT; fi
after_script:
- echo deactivate
artifacts:
expire_in: 3 days
when: always
paths:
- "artifacts/*"
reports:
junit:
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/*.junit.xml"
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
when: never
- if: '$CI_COMMIT_BRANCH'
when: always
- when: never

View File

@ -1,5 +0,0 @@
# Changelog
2021-08-04 01:33:47 +0000 [6d34977](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6d349774269bcd7c6e406cfe72c78b99f246df7b) - build(version): bump version 0.0.1 → 0.1.0
2021-08-03 15:23:19 +0930 [2a3266f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/2a3266fb537e22dddf47708d0af101945027128f) - fix(ansible): Ensure the default ci directory is populated
2021-08-03 15:08:37 +0930 [2413dae](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/2413daefb1e7e5a9e7a3cbb2d8cff2214f4a98ae) - feat(ansible): Added ansible validation job for linting

View File

@ -1,9 +0,0 @@
wheel
ansible
setuptools_rust
Rust
ansible-lint
yamllint
lxml
ansible-lint-junit
ansible-lint-to-junit-xml

View File

@ -0,0 +1,174 @@
---
# This yaml is intended to run ansible jobs using nfc's ansible-ee image
include:
- local: $JOB_ROOT_DIR/.gitlab-ci_common.yaml
.ansible_playbook:
image:
name: nofusscomputing/ansible-ee:dev
pull_policy: always
stage: chores
variables:
ansible_inventory: ''
ansible_playbook: ''
ansible_tags: ''
ANSIBLE_FORCE_COLOR: 'true'
script:
- if [ "0$ansible_inventory" != '0' ]; then ansible_inventory=-i $ansible_inventory; fi
- if [ "0$ansible_tags" != '0' ]; then ansible_tags=$(echo -n "--tags $ansible_tags"); fi
- echo "[DEBUG] ansible_inventory=$ansible_inventory"
- echo "[DEBUG] ansible_playbook=$ansible_playbook"
- echo "[DEBUG] ansible_tags=$ansible_tags"
- ansible-playbook $ansible_inventory $ANSIBLE_PLAYBOOK_DIR/$ansible_playbook $ansible_tags -vvv
rules:
# ToDo: at some stage redefine these rules so that the job can run if specified.
# - if: '$NFC_AUTO_JOBS == "false"'
# when: never
# - if: '$CI_PIPELINE_SOURCE == "schedule" && $PIPELINE_RUN_SCHEDULE == "true"'
# exists:
# - ".nfc_automation.yaml"
# when: always
# - if:
# (
# $CI_PIPELINE_SOURCE == "api"
# ||
# $CI_PIPELINE_SOURCE == "pipeline"
# ||
# $CI_PIPELINE_SOURCE == "trigger"
# ||
# $CI_PIPELINE_SOURCE == "parent_pipeline"
# ) &&
# $PIPELINE_RUN_TRIGGER == "true"
# exists:
# - ".nfc_automation.yaml"
# when: always
# - if: # condition_dev_branch_push
# $CI_COMMIT_BRANCH == "development" &&
# $CI_PIPELINE_SOURCE == "push"
# exists:
# - ".nfc_automation.yaml"
# when: always
# # this if for testing only
# # - if: '$CI_PIPELINE_SOURCE == "push"'
# # when: always
# # exists:
# # - ".nfc_automation.yaml"
- when: never
.ansible_playbook_git_submodule:
extends: .ansible_playbook
variables:
ansible_playbook: 'git_configuration.yaml'
ansible_tags: 'submodule'
rules:
- if: '$NFC_AUTO_JOBS == "false"'
when: never
- if: '$CI_PIPELINE_SOURCE == "schedule" && $PIPELINE_RUN_SCHEDULE == "true"'
exists:
- ".nfc_automation.yaml"
when: always
- if:
(
$CI_PIPELINE_SOURCE == "api"
||
$CI_PIPELINE_SOURCE == "pipeline"
||
$CI_PIPELINE_SOURCE == "trigger"
||
$CI_PIPELINE_SOURCE == "parent_pipeline"
) &&
$PIPELINE_RUN_TRIGGER == "true"
exists:
- ".nfc_automation.yaml"
when: always
- if: # condition_dev_branch_push
$CI_COMMIT_TAG == null &&
$CI_COMMIT_BRANCH == "development" &&
$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "development" &&
$CI_PIPELINE_SOURCE != "push"
exists:
- ".nfc_automation.yaml"
when: always
# this if for testing only
# - if: '$CI_PIPELINE_SOURCE == "push"'
# when: always
# exists:
# - ".nfc_automation.yaml"
- when: never
.submodule_update_trigger:
stage: publish
# trigger:
# project: $SUBMODULE_UPDATE_TRIGGER_PROJECT
# branch: development
# inherit:
# variables: false
script:
# use script to trigger pipeline instead of trigger keyword.
# this is due to trigger keyword not allowing environment keyword.
- export TRIGGER_PROJECT_PATH=$(python3 -c "import urllib.parse, sys; print('$SUBMODULE_UPDATE_TRIGGER_PROJECT'.replace('/', '%2F'))")
- echo "[DEBUG] TRIGGER_PROJECT_PATH=$TRIGGER_PROJECT_PATH"
- |
curl \
--request POST \
--form "token=$CI_JOB_TOKEN" \
--form ref=development \
--form "variables[GIT_CONFIG_SUBMODULE_NAME]=$GIT_CONFIG_SUBMODULE_NAME" \
--form "variables[PIPELINE_RUN_TRIGGER]=$PIPELINE_RUN_TRIGGER" \
--form "variables[GIT_COMMIT_TYPE]=$GIT_COMMIT_TYPE" \
--form "variables[GIT_COMMIT_TYPE_CATEGORY]=$GIT_COMMIT_TYPE_CATEGORY" \
"https://gitlab.com/api/v4/projects/$TRIGGER_PROJECT_PATH/trigger/pipeline"
environment:
name: $SUBMODULE_UPDATE_TRIGGER_PROJECT
url: https://gitlab.com/$SUBMODULE_UPDATE_TRIGGER_PROJECT
variables:
PIPELINE_RUN_TRIGGER: 'true'
GIT_CONFIG_SUBMODULE_NAME: $CI_PROJECT_NAME
rules:
- if: # condition_master_or_dev_push
(
$CI_COMMIT_BRANCH == "master" ||
$CI_COMMIT_BRANCH == "development"
) &&
$CI_PIPELINE_SOURCE == "push" &&
$CI_COMMIT_TAG == null
when: on_success
- when: never
.ansible_playbook_mr_from_issue_comment_patch:
extends: .ansible_playbook
variables:
ansible_playbook: 'git_configuration.yaml'
ansible_tags: 'gitlab_issue_patches'
PIPELINE_RUN_TRIGGER: 'false'
PIPELINE_RUN_SCHEDULE: 'false'
needs: []
rules:
- if: '$NFC_AUTO_JOBS == "false"'
when: never
- if:
$CI_COMMIT_TAG == null &&
$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "development" &&
$CI_PIPELINE_SOURCE != "push" &&
$CI_COMMIT_BRANCH != 'master' &&
$CI_COMMIT_BRANCH != 'automated-tasks' &&
$CI_COMMIT_BRANCH == 'development'
exists:
- ".nfc_automation.yaml"
when: always
- when: never

5
automation/CHANGELOG.md Normal file
View File

@ -0,0 +1,5 @@
# Changelog
2023-05-27 15:20:40 +0930 [f9af921](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/f9af921e6b6ec10f9f77ec6a016c6cbb9559d1bf) - refactor(ansible_playbook): final logic adjustment for job
2023-05-27 14:04:10 +0930 [1f6ee9e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1f6ee9ea27824df1c82bf85e1e239f57f2145bdf) - refactor(automation): final logic changes
2023-05-26 16:29:23 +0930 [0d3eaa6](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0d3eaa6ac2dc448505b18c6aecd4a72e28ffde83) - feat(automation): job to run ansible playbooks

View File

@ -1,73 +1,78 @@
.conventional_commit:
variables:
DEFAULT_ROOT_DIR: './gitlab-ci'
image: python:3.6-slim
stage: validation
before_script:
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests"
- if [ "0$MR_ACCESS_TOKEN" == "0" ]; then MR_ACCESS_TOKEN=$CI_JOB_TOKEN; fi
- echo "[DEBUG] MR_ACCESS_TOKEN[$MR_ACCESS_TOKEN]"
- if [ "0$JOB_ROOT_DIR" == "0" ]; then ROOT_DIR=$DEFAULT_ROOT_DIR; else ROOT_DIR=$JOB_ROOT_DIR ; fi
- echo "[DEBUG] ROOT_DIR[$ROOT_DIR]"
- if [ "0$MY_PROJECT_ID" == "0" ]; then PROJECT_ID=$CI_PROJECT_ID; else PROJECT_ID=$MY_PROJECT_ID ; fi
- echo "[DEBUG] PROJECT_ID[$PROJECT_ID]"
- export PYTHON_VERSION=`python -c 'import sys; version=sys.version_info[:3]; print("{0}.{1}.{2}".format(*version))'`
- apt update
- apt install --no-install-recommends -y git
- python3 -m venv env
- . env/bin/activate
- pip install --upgrade pip
- pip install -r $ROOT_DIR/conventional_commits/requirements.txt
- echo "[DEBUG] CI_PROJECT_ID[$CI_PROJECT_ID]"
- echo "[DEBUG] CI_COMMIT_BRANCH[$CI_COMMIT_BRANCH]"
- $ROOT_DIR/conventional_commits/scripts/commit.py --token "$MR_ACCESS_TOKEN" --project $PROJECT_ID --branch $CI_COMMIT_BRANCH --target-branch
- target_branch=$($ROOT_DIR/conventional_commits/scripts/commit.py --token "$MR_ACCESS_TOKEN" --project $PROJECT_ID --branch $CI_COMMIT_BRANCH --target-branch)
variables:
DEFAULT_ROOT_DIR: './gitlab-ci'
image: python:3.6-slim
stage: validation
before_script:
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests"
- if [ "0$MR_ACCESS_TOKEN" == "0" ]; then MR_ACCESS_TOKEN=$CI_JOB_TOKEN; fi
- echo "[DEBUG] MR_ACCESS_TOKEN[$MR_ACCESS_TOKEN]"
- if [ "0$JOB_ROOT_DIR" == "0" ]; then ROOT_DIR=$DEFAULT_ROOT_DIR; else ROOT_DIR=$JOB_ROOT_DIR ; fi
- echo "[DEBUG] ROOT_DIR[$ROOT_DIR]"
- if [ "0$MY_PROJECT_ID" == "0" ]; then PROJECT_ID=$CI_PROJECT_ID; else PROJECT_ID=$MY_PROJECT_ID ; fi
- echo "[DEBUG] PROJECT_ID[$PROJECT_ID]"
- export PYTHON_VERSION=`python -c 'import sys; version=sys.version_info[:3]; print("{0}.{1}.{2}".format(*version))'`
- apt update
- apt install --no-install-recommends -y git
- python3 -m venv env
- . env/bin/activate
- pip install --upgrade pip
- pip install -r $ROOT_DIR/conventional_commits/requirements.txt
- echo "[DEBUG] CI_PROJECT_ID[$CI_PROJECT_ID]"
- echo "[DEBUG] CI_COMMIT_BRANCH[$CI_COMMIT_BRANCH]"
- git fetch --all
- git checkout --track origin/$CI_COMMIT_BRANCH
- git show-branch -a
- target_branch=$(git show-branch -a | awk 'BEGIN { FS="\n\s+*" } { print $1 }' | awk '{print $2}' | grep '\[' | sed 's/.*\[origin\/\(.*\)\].*/\1/' | grep -v '\[' | grep -v $(git rev-parse --abbrev-ref HEAD) | grep -vi 'HEAD' | awk 'BEGIN{ RS = "" ; FS = "\n" }{print $1}')
- echo "[DEBUG] Target Branch[$target_branch]"
- if [ -d "gitlab-ci" ]; then ls -la gitlab-ci; fi
- first_sha1=$(git log origin/$target_branch..$CI_COMMIT_BRANCH --format=format:%H | tail -1)
- echo "[DEBUG] First Commit SHA[$first_sha1]"
- echo "[DEBUG] artifacts directory [$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME]"
after_script:
- ls -lR "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE"
- cd ..
- rm -Rf check
artifacts:
expire_in: 3 days
when: always
paths:
- "$CI_PROJECT_DIR/artifacts/*"
reports:
junit:
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/*.junit.xml"
rules:
- if: '$JOB_STOP_CONVENTIONAL_COMMITS'
when: never
- echo "[DEBUG] Target Branch[$target_branch]"
- git clone --depth 150 -b $target_branch $CI_REPOSITORY_URL check
- cd check
- git remote rm origin
- git remote add origin $CI_REPOSITORY_URL
- git fetch --all
- git checkout --track origin/$CI_COMMIT_BRANCH
- git submodule update --init
- if [ -d "gitlab-ci" ]; then ls -la gitlab-ci; fi
- first_sha1=$(git log $target_branch..$CI_COMMIT_BRANCH --format=format:%H | tail -1)
- echo "[DEBUG] First Commit SHA[$first_sha1]"
- echo "[DEBUG] artifacts directory [$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME]"
after_script:
- ls -lR "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE"
- cd ..
- rm -Rf check
artifacts:
expire_in: 3 days
when: always
paths:
- "$CI_PROJECT_DIR/artifacts/*"
reports:
junit:
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/*.junit.xml"
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
when: never
- if: '$CI_COMMIT_BRANCH'
when: always
- when: never
- if: # condition_any_branch_push
$CI_COMMIT_BRANCH != null &&
$CI_COMMIT_TAG == null &&
$CI_PIPELINE_SOURCE == "push" &&
$CI_COMMIT_BRANCH != 'master'
exists:
- .cz.yaml
when: always
- when: never
MR Title:
extends:
- .conventional_commit
script:
- cz_exit=0 && cz check --message "$($ROOT_DIR/conventional_commits/scripts/commit.py --token "$MR_ACCESS_TOKEN" --project $PROJECT_ID --title --branch $CI_COMMIT_BRANCH)" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/cz_output.log" 2>&1 || cz_exit=$?
- . $ROOT_DIR/conventional_commits/scripts/cz_junit.sh > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/$CI_JOB_NAME-cz.junit.xml"
extends:
- .conventional_commit
script:
- MR_TITLE=$($ROOT_DIR/conventional_commits/scripts/commit.py --token "$MR_ACCESS_TOKEN" --project $PROJECT_ID --title --branch $CI_COMMIT_BRANCH)
- echo "[DEBUG] MR_TITLE[$MR_TITLE]"
- cz_exit=0 && cz check --message "$MR_TITLE" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/cz_output.log" 2>&1 || cz_exit=$?
- . $ROOT_DIR/conventional_commits/scripts/cz_junit.sh > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/$CI_JOB_NAME-cz.junit.xml"
Commit Messages:
extends:
- .conventional_commit
script:
- cz_exit=0 && cz check --rev-range $first_sha1..HEAD > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/cz_output.log" 2>&1 || cz_exit=$?
- . $ROOT_DIR/conventional_commits/scripts/cz_junit.sh > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/$CI_JOB_NAME-cz.junit.xml"
extends:
- .conventional_commit
script:
- if [ "$(git log $first_sha1..HEAD --format=format:%H | wc -l)" -eq 0 ]; then echo "[DEBUG] Single Commit"; cz_exit=0 && cz check -m "$(git log HEAD --format=format:%B -1)" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/cz_output.log" 2>&1 || cz_exit=$?; fi
- if [ "$(git log $first_sha1..HEAD --format=format:%H | wc -l)" -gt 0 ]; then echo "[DEBUG] Commit range"; cz_exit=0 && cz check --rev-range $first_sha1..HEAD > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/cz_output.log" 2>&1 || cz_exit=$?; fi
- . $ROOT_DIR/conventional_commits/scripts/cz_junit.sh > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/$CI_JOB_NAME-cz.junit.xml"

View File

@ -1,4 +1,36 @@
# Changelog
2023-05-28 10:31:26 +0930 [bade89c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bade89c5333ca853844e224f46a2d3dafab7179d) - fix(scheduled_pipelines): if scheduled pipeline only run schedualable jobs
2023-05-24 04:40:52 +0000 [0a17fe1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0a17fe1aa320c658c05d7a693ff76af4a54e6130) - build(version): bump version 0.6.1rc1 → 0.6.1rc2
2023-05-21 01:48:53 +0930 [088c9fb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/088c9fb04c80961f4de8d2b129955ae8cd0b9529) - feat(conventional_commits): ensure .cz.yaml exists
2023-05-15 00:18:38 +0000 [a3fdca8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a3fdca83bf7acb58d47792a66d1cd0728747361c) - build(version): bump version 0.6.1rc0 → 0.6.1rc1
2023-05-15 09:32:15 +0930 [93931cb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/93931cb9076e0db238f4e297abe3d8f37bd71b80) - feat(conventional): job not to run when bot pushes change
2023-05-15 09:23:02 +0930 [76db5b1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/76db5b17578d8585ed31e0728dbfb37ea2fae153) - fix(conventional_commits): never run on git tag
2023-05-14 14:10:06 +0930 [02e9e5f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/02e9e5f4f4cc0b93ae92c7ba3a2cfb38305af64c) - refactor(ci): inconsistant tabs
2023-05-14 12:11:42 +0930 [d389d14](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d389d14192e1e483fbd48fa9b5c5bee25db14a20) - fix: validation jobs on all except merge
2023-05-14 09:56:35 +0930 [934a401](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/934a401a9620891b09a5fe9c9b0e50a97b43fa9b) - fix(ci): specify the commitizen version
2023-05-13 15:35:28 +0930 [408e4ea](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/408e4eab9e1f61004f1e38af6d1531747b7da99b) - refactor: move docs as part of restructure
2023-05-13 11:47:21 +0930 [9e7d357](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9e7d357bab2b92704d37ad5621df9fe8d1e31a26) - feat(conventional_commits): ability to disable job with variable
2022-01-25 00:08:05 +0000 [ce1cc01](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/ce1cc017e26ff7f6cee586cc7d98e4d292275672) - build(version): bump version 0.6.0 → 0.6.1rc0
2022-01-24 06:33:24 +0000 [46cc1fb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/46cc1fbb6a878e485af39e679b5184a9912c2e7f) - build(version): bump version 0.5.0 → 0.6.0
2022-01-16 00:09:42 +0000 [1ef6c41](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1ef6c41818c40183f8019ea5cde48b4278e4d694) - build(version): bump version 0.4.0 → 0.5.0
2022-01-16 09:02:02 +0930 [31517b4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/31517b4bf00c1f177ef925d09b1a6714577f62c5) - ci(MR_Title): save the merge request title as a variable and debug output in job log.
2022-01-16 08:48:24 +0930 [73918f2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/73918f2f5e19440d0e300da3a20712739c316d88) - fix(commit.py): filter merge request search to 'opened' and on current branch.
2022-01-15 03:53:53 +0000 [5c9000a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5c9000a74859504ed64bbefa1fd193f80a2b69c2) - build(version): bump version 0.3.1 → 0.4.0
2022-01-15 13:14:58 +0930 [e5531fc](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e5531fc77b5bdb1ccc0741e388df2d8d25ba6ade) - feat(commit.py): throw an error if no token was supplied. i.e. empty variable.
2022-01-15 13:07:56 +0930 [6b7ad95](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6b7ad95fc0ccccf79ff645bad3f86660f5096a4e) - feat(commit.py): confirm a merge request was found, if not output 'ci: No Merge Request found'
2022-01-15 13:05:30 +0930 [c543c47](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/c543c47af8c7c386ae57f5a7a50904d396758c3a) - feat(commit.py): try to us `CI_JOB_TOKEN` before the specified token, if any.
2022-01-15 12:29:23 +0930 [99bdc2a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/99bdc2a0929d4e7036e50e8ce22ce9b0f90f0736) - fix(commit.py): fix typo that caused exception
2022-01-15 12:23:54 +0930 [d03d9fe](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d03d9fefc916dd6730d9ffa778c11d48d621318e) - fix(conventional_commits): fetch all branches prior to check for parent branch
2022-01-15 12:18:15 +0930 [b01550e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/b01550e09f273edc8a57f4ad4b41ee2d67705d41) - feat(commit.py): removed ability to fetch first commit or target branch
2022-01-15 12:04:07 +0930 [42ad02e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/42ad02ee5db65c3c6c33ad14fe0371c9916897bf) - fix(conventional_commits): use git show-branch to find origin branch
2022-01-11 07:03:09 +0000 [7751fd9](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7751fd9494f610fff0ea16bd303bfe62d0034eec) - build(version): bump version 0.3.0 → 0.3.1
2021-08-12 03:32:36 +0000 [389bc08](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/389bc08d7686153fb374aa83d440c35c9b4eac90) - build(version): bump version 0.3.0rc1 → 0.3.0
2021-08-12 12:47:23 +0930 [3360a15](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3360a15fde12682edfd9044d2541dc819615b838) - fix(commit_message): fixed commit message check if there is only one commit to the branch
2021-08-11 13:47:34 +0930 [def31ef](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/def31ef562c0002713401652657d59320548ee85) - style(yaml_lint): fixed yaml lint errors
2021-08-04 03:23:08 +0000 [eb5cc8a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/eb5cc8a0e2885a9ed16a8d1a81611aec4d5a4d31) - build(version): bump version 0.3.0rc0 → 0.3.0rc1
2021-08-04 03:13:54 +0000 [09dcb65](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/09dcb65b090f59e9f8a6bea5eba4bb98bddbad3d) - build(version): bump version 0.2.1 → 0.3.0rc0
2021-08-04 02:49:45 +0000 [4453b43](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4453b433c8966a334f02af592a6ce8092f2ac9de) - build(version): bump version 0.2.0 → 0.2.1
2021-08-04 02:24:12 +0000 [856f2e1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/856f2e1770d0bda823996122ee70916dc0fe455b) - build(version): bump version 0.1.0 → 0.2.0
2021-08-04 01:33:47 +0000 [6d34977](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6d349774269bcd7c6e406cfe72c78b99f246df7b) - build(version): bump version 0.0.1 → 0.1.0
2021-08-03 13:26:05 +0930 [392a200](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/392a200fd469c4161dbab5f2b59031a7a64f20a2) - feat(conventional_commits): Added conventional commit job

View File

@ -1,94 +0,0 @@
# Conventional Commits User Manual
Commitizen is used to validate the format of commit messages. we use [Conventional Commit Messages](https://www.conventionalcommits.org/en/v1.0.0/) format for our validation jobs.
This repository may have two CI jobs to do with commitizen:
- **MR Title** *Checks the Merge Request Title*
- **Commit Messages** *Checks all commit messages*
These CI Jobs output a test report that can be viewed inside of the merge request and contain the error(s), if any.
To fix an error please refer to the titled sections below.
## MR Title
Ensure that the merge request title is in the [conventional message](https://www.conventionalcommits.org/en/v1.0.0/) format. NOTE: the title is case sensitive.
## Commit Messages
All commit messages that form part of your merge request must be in [conventional message](https://www.conventionalcommits.org/en/v1.0.0/) format.
To fix them go back and edit your commit messages.
### fixing commit messages (suggestion)
If only the last commit is the commit with an error just use `git commit --amend` and edit your commit message to be in the correct format and save. now push your changes.
You will require the following information if the commit message with the error is further down the commit tree:
- Commit message SHA1 of your first commit message to the branch `{original_commit}`
- Commit message SHA1 prior to your first commit `{source_commit}`
Run these commands once you have the information above.
``` bash
git format-patch {original_commit}..HEAD -o diff-patches
git reset {source_commit} --hard
```
Now, navigate to the `diff-patches` folder, open up the offending patch (commit) and edit the `subject` or message body as appropriate and save. Once all the edits have been done, re-apply the patches to your tree with:
``` bash
git am diff-patches/*.patch
```
Now push your changes upstream.
| :notebook_with_decorative_cover: Note |
|:-----:|
| *As you have changed the commit SHA1(s), when you next push your changes upstream, you must force push. `git push --force`* |
| :octagonal_sign: **WARNING** |
|:-----:|
| *Ensure that all of your commits were exported prior to reseting the branch and when re-applying, that all of your commits were applied correctly* |
# Conventional Commits Admin Manual Manual
This job checks commit messages on a branch and the merge request title for validity against the [conventional commit format](https://www.conventionalcommits.org/en/v1.0.0/)
This job provides the following badge:
- None
## Dependencies
- None
## your .gitlab-ci.yml changes
To use this job add the following to your `.gitlab-ci.yml` file
``` yaml
variables:
GIT_SUBMODULE_STRATEGY: recursive
MY_PROJECT_ID: "{yourproject id number}"
stages:
- validation
include:
- remote: https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/raw/development/conventional_commits/.gitlab-ci.yml
```
## CI/CD Variables required
| var name | Description |
|:----:|:----|
| MR_ACCESS_TOKEN | *only required if you are accessing a private repository.* <br>This token is a user access token that as a minimum requires read-only access to the api to fetch the projects merg requests. |
## Job Workflow
## Artifacts
## License
To view the license for this folder and any sub-folders, refer [here](https://gitlab.com/nofusscomputing/projects/gitlab-ci)

View File

@ -1,3 +1,3 @@
python-gitlab
requests
commitizen
commitizen==2.21.0

View File

@ -9,13 +9,11 @@ import getopt
import json
import requests
get_first_commit = False
get_mr_title = False
get_target_branch = False
project_id = ''
try:
opts, args = getopt.getopt(sys.argv[1:],"hic:t:ti:p:b:o",["commit","token=", "title", "project=", "branch=", "target-branch"])
opts, args = getopt.getopt(sys.argv[1:],"hi:t:ti:p:b",["token=", "title", "project=", "branch="])
except getopt.GetoptError:
print('test.py [-c | --commit] [-t | --token {token}]')
@ -27,9 +25,9 @@ for opt, arg in opts:
if opt == '-h':
print('[commit.py] -i <inputfile> -o <outputfile>')
sys.exit()
elif opt in ("-c", "--commit"):
get_first_commit = True
elif opt in ("-t", "--token"):
if arg is None:
raise ValueError('Token switch was specified, however no token was supplied.')
ci_job_token = arg
elif opt in ("-ti", "--title"):
get_mr_title = True
@ -37,29 +35,39 @@ for opt, arg in opts:
project_id = str(arg)
elif opt in ("-b", "--branch"):
git_branch = arg
elif opt in ("-o", "--target-branch"):
get_target_branch = True
# private token or personal token authentication
#gl = gitlab.Gitlab('https://gitlab.com', private_token=ci_job_token)
url = 'https://gitlab.com/api/v4/projects/' + project_id + '/merge_requests'
headers = {'PRIVATE-TOKEN': ci_job_token}
url = 'https://gitlab.com/api/v4/projects/' + project_id + '/merge_requests?state=opened&source_branch=' + git_branch
merge_requests = ""
try:
if os.environ['CI_JOB_TOKEN'] == ci_job_token:
headers = {'JOB_TOKEN': os.environ['CI_JOB_TOKEN']}
if os.environ['CI_JOB_TOKEN'] is not None:
headers = {'JOB_TOKEN': os.environ['CI_JOB_TOKEN']}
if os.environ['CI_JOB_TOKEN'] == ci_job_token:
headers = {'JOB_TOKEN': os.environ['CI_JOB_TOKEN']}
merge_requests = requests.get(url, headers=headers, data='')
merge_requests = merge_requests.json()
except:
pass
#print('[DEBUG] headers[{0}]'.format(headers))
merge_requests = requests.get(url, headers=headers, data='')
if not isinstance(merge_requests, list):
headers = {'PRIVATE-TOKEN': ci_job_token}
merge_requests = merge_requests.json()
merge_requests = requests.get(url, headers=headers, data='')
merge_requests = merge_requests.json()
#print('\n\nmerge_requests=[-{0}-][]\n\n\n\n\n'.format(merge_requests))
@ -69,32 +77,24 @@ merge_requests = merge_requests.json()
#mrs = gl.mergerequests.list()
mr_title = ''
mr_title = 'failed to fetch Merge Request title'
mr_first_commit = ''
target_branch = ''
for mr in merge_requests:
if isinstance(merge_requests, list):
# print('\n\nMR=[-{0}-]'.format(mr))
if len(merge_requests) > 0:
if mr['source_branch'] == git_branch and str(mr['target_project_id']) == str(project_id) and str(mr['state']) == 'opened':
for mr in merge_requests:
if mr['source_branch'] == git_branch and str(mr['target_project_id']) == str(project_id) and str(mr['state']) == 'opened':
mr_title = mr['title']
mr_first_commit = mr['sha']
target_branch = mr['target_branch']
if get_mr_title:
print('{0}'.format(mr_title))
if get_target_branch:
print('{0}'.format(target_branch))
else:
if get_first_commit:
print('{0}'.format(mr_first_commit))
if get_mr_title:
print('{0}'.format(mr_title))
print('ci: No Merge Request found, MR count "0"')

6
docker/CHANGELOG.md Normal file
View File

@ -0,0 +1,6 @@
# Changelog
2023-05-28 10:31:26 +0930 [bade89c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bade89c5333ca853844e224f46a2d3dafab7179d) - fix(scheduled_pipelines): if scheduled pipeline only run schedualable jobs
2023-05-24 04:40:52 +0000 [0a17fe1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0a17fe1aa320c658c05d7a693ff76af4a54e6130) - build(version): bump version 0.6.1rc1 → 0.6.1rc2
2023-05-21 01:47:15 +0930 [f604c6e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/f604c6e27d2e7704491f4c78979db40cf89764c0) - fix(docker): ensure qemu binfmt is loaded
2023-05-17 15:41:09 +0930 [a90ccb8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a90ccb81772e295cebe89d7a9c32ab700e19884d) - refactor(docker): move docker jobs to their own file

133
docker/build.gitlab-ci.yaml Normal file
View File

@ -0,0 +1,133 @@
---
variables:
# Available platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/arm64, linux/riscv64, linux/ppc64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
# DOCKER_IMAGE_BUILD_TARGET_PLATFORMS: "linux/amd64,linux/arm64,linux/arm/v7"
DOCKER_IMAGE_BUILD_NAME: $CI_PROJECT_NAME
DOCKER_IMAGE_BUILD_REGISTRY: $CI_REGISTRY_IMAGE
DOCKER_IMAGE_BUILD_TAG: $CI_COMMIT_SHA
# DOCKER_IMAGE_PUBLISH_NAME: $CI_PROJECT_NAME
# DOCKER_IMAGE_PUBLISH_REGISTRY: docker.io/nofusscomputing
# DOCKER_IMAGE_PUBLISH_URL: https://hub.docker.com/r/nofusscomputing/$DOCKER_IMAGE_PUBLISH_NAME
# JOB_STOP_CONVENTIONAL_COMMITS: 'any_value'
# JOB_STOP_GIT_PUSH_MIRROR: 'any_value'
# GIT_SYNC_URL: "https://$GITHUB_USERNAME_ROBOT:$GITHUB_TOKEN_ROBOT@github.com/NoFussComputing/config.git" # Must be defined for job to run
# JOB_STOP_GITLAB_RELEASE: 'any value'
.build_docker_container:
stage: build
image:
name: nofusscomputing/docker-buildx-qemu:dev
pull_policy: always
services:
- name: docker:23-dind
entrypoint: ["env", "-u", "DOCKER_HOST"]
command: ["dockerd-entrypoint.sh"]
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
DOCKER_DOCKERFILE: dockerfile
# See https://github.com/docker-library/docker/pull/166
DOCKER_TLS_CERTDIR: ""
before_script:
- git submodule foreach git submodule update --init
- if [ "0$JOB_ROOT_DIR" == "0" ]; then ROOT_DIR=gitlab-ci; else ROOT_DIR=$JOB_ROOT_DIR ; fi
- echo "[DEBUG] ROOT_DIR[$ROOT_DIR]"
- docker info
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
#- pip3 install -r gitlab-ci/gitlab_release/requirements.txt
- pip3 install setuptools wheel
- pip install -r $ROOT_DIR/conventional_commits/requirements.txt
- pip3 install gitlab-ci/gitlab_release/python-module/cz_nfc/.
# see: https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/1861
# on why this `docker run` is required. without it multiarch support doesnt work.
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- update-binfmts --display
- update-binfmts --enable # Important: Ensures execution of other binary formats is enabled in the kernel
- docker buildx create --driver=docker-container --driver-opt image=moby/buildkit:v0.11.6 --use
- docker buildx inspect --bootstrap
# --label org.opencontainers.image.url="$CI_PROJECT_URL/-/releases/$(cz -n cz_nfc version --project)" \
# --label org.opencontainers.image.version="$(cz -n cz_nfc version --project)" \
script:
- update-binfmts --display
- |
if [ "0$DOCKER_IMAGE_BUILD_TARGET_PLATFORMS" != "0" ]; then
echo "[DEBUG] building multiarch/specified arch image";
docker buildx build --platform=$DOCKER_IMAGE_BUILD_TARGET_PLATFORMS . \
--label org.opencontainers.image.created="$(date '+%Y-%m-%d %H:%M:%S%:z')" \
--label org.opencontainers.image.documentation="$CI_PROJECT_URL" \
--label org.opencontainers.image.source="$CI_PROJECT_URL" \
--label org.opencontainers.image.revision="$CI_COMMIT_SHA" \
--push \
--build-arg CI_JOB_TOKEN=$CI_JOB_TOKEN --build-arg CI_PROJECT_ID=$CI_PROJECT_ID --build-arg CI_API_V4_URL=$CI_API_V4_URL \
--file $DOCKER_DOCKERFILE \
--tag $DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG;
docker buildx imagetools inspect $DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG;
# during docker multi platform build there are >=3 additional unknown images added to gitlab container registry. cleanup
DOCKER_MULTI_ARCH_IMAGES=$(docker buildx imagetools inspect "$DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG" --format "{{ range .Manifest.Manifests }}{{ if ne (print .Platform) \"&{unknown unknown [] }\" }}$DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG@{{ println .Digest }}{{end}} {{end}}");
docker buildx imagetools create $DOCKER_MULTI_ARCH_IMAGES --tag $DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG;
docker buildx imagetools inspect $DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG;
else
echo "[DEBUG] building image";
docker build . \
--label org.opencontainers.image.created="$(date '+%Y-%m-%d %H:%M:%S%:z')" \
--label org.opencontainers.image.documentation="$CI_PROJECT_URL" \
--label org.opencontainers.image.source="$CI_PROJECT_URL" \
--label org.opencontainers.image.url="$CI_PROJECT_URL/-/releases/$(cz -n cz_nfc version --project)" \
--label org.opencontainers.image.version="$(cz -n cz_nfc version --project)" \
--label org.opencontainers.image.revision="$CI_COMMIT_SHA" \
--build-arg CI_JOB_TOKEN=$CI_JOB_TOKEN --build-arg CI_PROJECT_ID=$CI_PROJECT_ID --build-arg CI_API_V4_URL=$CI_API_V4_URL \
--file $DOCKER_DOCKERFILE \
--tag $DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG;
docker push $DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG;
fi
rules:
- if: # condition_git_tag
$CI_COMMIT_TAG != null &&
$CI_COMMIT_BRANCH == null
exists:
- '{dockerfile,dockerfile.j2}'
when: on_success
- if: # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{dockerfile,dockerfile.j2}'
changes:
paths:
- '{dockerfile,dockerfile.j2,includes/**/*}'
compare_to: 'master'
when: always
- if: # condition_not_master_or_dev_push
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{dockerfile,dockerfile.j2}'
changes:
paths:
- '{dockerfile,dockerfile.j2,includes/**/*}'
compare_to: 'development'
when: always
- when: never

View File

@ -0,0 +1,130 @@
---
# variables:
# # Available platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/arm64, linux/riscv64, linux/ppc64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
# # DOCKER_IMAGE_BUILD_TARGET_PLATFORMS: "linux/amd64,linux/arm64,linux/arm/v7"
# DOCKER_IMAGE_BUILD_NAME: $CI_PROJECT_NAME
# DOCKER_IMAGE_BUILD_REGISTRY: $CI_REGISTRY_IMAGE
# DOCKER_IMAGE_BUILD_TAG: $CI_COMMIT_SHA
.publish-docker-hub:
stage: publish
image: docker:23-dind
services:
- docker:23-dind
before_script:
- |
docker login $CI_REGISTRY -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD;
if [ "0$DOCKER_IMAGE_BUILD_TARGET_PLATFORMS" != "0" ]; then
for i in ${DOCKER_IMAGE_BUILD_TARGET_PLATFORMS//,/ }
do
docker buildx imagetools inspect $DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG;
#DOCKER_MULTI_ARCH_IMAGES=$(docker buildx imagetools inspect "$DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG" --format "{{ range .Manifest.Manifests }}{{ if ne (print .Platform) \"&{unknown unknown [] }\" }}$DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG@{{ println .Digest }}{{end}} {{end}}")
DOCKER_MULTI_ARCH_IMAGES=$(docker buildx imagetools inspect "$DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG" --format "{{ range .Manifest.Manifests }}$DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG@{{ println .Digest }} {{end}}")
echo "[DEBUG] DOCKER_MULTI_ARCH_IMAGES=$DOCKER_MULTI_ARCH_IMAGES";
done;
else
docker pull $DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG;
fi
#docker logout $CI_REGISTRY; # commented out to test if for private repo remaining logged in works to allow pulling image
script:
- docker login docker.io -u $NFC_DOCKERHUB_USERNAME -p $NFC_DOCKERHUB_TOKEN
- docker image ls
- |
DOCKER_HUB_TAG=dev
echo "[DEBUG] default: DOCKER_HUB_TAG=$DOCKER_HUB_TAG";
if [ "0$CI_COMMIT_TAG" != "0" ]; then
DOCKER_HUB_TAG=latest
echo "[DEBUG] stable: DOCKER_HUB_TAG=$DOCKER_HUB_TAG";
if [[ "0$CI_COMMIT_TAG" == *"rc"* ]]; then
DOCKER_HUB_TAG=dev
echo "[DEBUG] dev: DOCKER_HUB_TAG=$DOCKER_HUB_TAG";
fi
fi
echo "[DEBUG] DOCKER_IMAGE_PUBLISH_NAME=$DOCKER_IMAGE_PUBLISH_NAME";
echo "[DEBUG] final: DOCKER_HUB_TAG=$DOCKER_HUB_TAG";
if [ "0$DOCKER_IMAGE_BUILD_TARGET_PLATFORMS" != "0" ]; then
echo "[DEBUG] DOCKER_MULTI_ARCH_IMAGES=$DOCKER_MULTI_ARCH_IMAGES";
docker buildx imagetools create $DOCKER_MULTI_ARCH_IMAGES --tag $DOCKER_IMAGE_PUBLISH_REGISTRY/$DOCKER_IMAGE_PUBLISH_NAME:$DOCKER_HUB_TAG;
if [ "0$CI_COMMIT_TAG" != "0" ]; then
docker buildx imagetools create $DOCKER_MULTI_ARCH_IMAGES --tag $DOCKER_IMAGE_PUBLISH_REGISTRY/$DOCKER_IMAGE_PUBLISH_NAME:$CI_COMMIT_TAG;
fi
else
docker image tag $DOCKER_IMAGE_BUILD_REGISTRY/$DOCKER_IMAGE_BUILD_NAME:$DOCKER_IMAGE_BUILD_TAG $DOCKER_IMAGE_PUBLISH_REGISTRY/$DOCKER_IMAGE_PUBLISH_NAME:$DOCKER_HUB_TAG;
docker push $DOCKER_IMAGE_PUBLISH_REGISTRY/$DOCKER_IMAGE_PUBLISH_NAME:$DOCKER_HUB_TAG;
if [ "0$CI_COMMIT_TAG" != "0" ]; then
docker image tag $DOCKER_IMAGE_BUILD_NAME/$DOCKER_IMAGE_BUILD_REGISTRY:$DOCKER_IMAGE_BUILD_TAG $DOCKER_IMAGE_PUBLISH_REGISTRY/$DOCKER_IMAGE_PUBLISH_NAME:$CI_COMMIT_TAG;
docker push $DOCKER_IMAGE_PUBLISH_REGISTRY/$DOCKER_IMAGE_PUBLISH_NAME:$CI_COMMIT_TAG;
fi
fi
- docker logout docker.io
environment:
name: DockerHub
url: $DOCKER_IMAGE_PUBLISH_URL
rules:
- if: # condition_git_tag
$CI_COMMIT_TAG != null &&
$CI_COMMIT_BRANCH == null
exists:
- '{dockerfile,dockerfile.j2}'
when: on_success
# - if: # condition_master_branch_push
# $CI_COMMIT_BRANCH == "master" &&
# $CI_PIPELINE_SOURCE == "push"
# exists:
# - '{dockerfile,dockerfile.j2}'
# when: on_success
- if: # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{dockerfile,dockerfile.j2}'
changes:
paths:
- '{dockerfile,dockerfile.j2,includes/**/*}'
compare_to: 'master'
allow_failure: true
when: on_success
- when: never

0
docs/articles/index.md Normal file
View File

0
docs/contact.md Normal file
View File

0
docs/index.md Normal file
View File

0
docs/operations/index.md Normal file
View File

View File

@ -0,0 +1,171 @@
---
title: Ansible Playbook
description: How to use No Fuss Computings gitlab-ci job for running Ansible Playbooks
date: 2023-05-29
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
This job enables you to run an Ansible playbook within the Gitlab CI/CD environment.
There is also an additional job defined that enables you to specify a project to run an automated update of it's git submodules. This is useful if the project you create the job in, is used as a git submodule in another project. On pushing to the development branch, this job triggers the `Git.Submodules.Update.Chores` job that updates the specified projects git submodules.
## your .gitlab-ci.yml changes
- **Mandatory** In addition to the previous dependency, this requirement is for the project specified in the trigger job. The following must be added to the `.gitlab-ci.yml` file in that project.
``` yaml
include:
- project: nofusscomputing/projects/gitlab-ci
ref: master
file:
- .gitlab-ci_common.yaml
- automation/template/automagic.gitlab-ci.yaml
```
To use the ansible playbook job add the following to your `.gitlab-ci.yml` file.
``` yaml
stages:
- chores
include:
- project: nofusscomputing/projects/gitlab-ci
ref: master
file:
- automation/.gitlab-ci-ansible.yaml
Ansible Job:
extends: .ansible_playbook
variables:
ansible_playbook: 'git_configuration.yaml'
ansible_tags: 'submodule'
PIPELINE_RUN_TRIGGER: 'false'
PIPELINE_RUN_SCHEDULE: 'false'
```
To run the trigger job to update another projects git submodules. add the following to your `.gitlab-ci.yml` file
``` yaml
stages:
- publish
include:
- project: nofusscomputing/projects/gitlab-ci
ref: master
file:
- automation/.gitlab-ci-ansible.yaml
Docker_Mail.Submodule.Deploy:
extends: .submodule_update_trigger
variables:
SUBMODULE_UPDATE_TRIGGER_PROJECT: nofusscomputing/projects/docker-mail
```
!!! Tip
In addition to the variables below, you can also specify any additional Environment variables for use by Ansible within the container. Refer to the [Ansible configuration documentation](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#common-options) for further details
## Job: `.ansible_playbook`
This job runs an Ansible playbook using the `nofusscomputing/ansible-ee:dev` Docker image.
### Stage: Chores
This job is responsible for executing an Ansible playbook. It can be customized by setting the following variables:
#### Variables
- `ansible_inventory`: The Ansible inventory file.
- `ansible_playbook`: The name of the Ansible playbook file.
- `ansible_tags`: The tags to be applied during playbook execution.
### Rules
- Rule 1: If the `NFC_AUTO_JOBS` variable is set to `"false"`, the job will never run.
- Rule 2: If the pipeline is triggered by a schedule and `PIPELINE_RUN_SCHEDULE` is set to `"true"`, the job will run only if the `.nfc_automation.yaml` file exists.
- Rule 3: If the pipeline is triggered by an API call, another pipeline, a trigger, or a parent pipeline, and `PIPELINE_RUN_TRIGGER` is set to `"true"`, the job will run only if the `.nfc_automation.yaml` file exists.
- Rule 4: If the pipeline is triggered by a push to the `development` branch, the job will run only if the `.nfc_automation.yaml` file exists. see [Documentation](../git_configuration/submodule/) for file details.
- Rule 5: This rule prevents the job from running under any circumstances.
## Job: `.ansible_playbook_git_submodule`
This job extends the `.ansible_playbook` job and is specifically used for running the `git_configuration.yaml` playbook with the `submodule` tags.
### Stage: Chores
This job is responsible for executing the `git_configuration.yaml` playbook with the `submodule` tags.
#### Variables
- `ansible_playbook`: The name of the Ansible playbook file (`git_configuration.yaml`).
- `ansible_tags`: The tags to be applied during playbook execution (`submodule`).
### Rules
- Rule 1: If the `NFC_AUTO_JOBS` variable is set to `"false"`, the job will never run.
- Rule 2: If the pipeline is triggered by a schedule and `PIPELINE_RUN_SCHEDULE` is set to `"true"`, the job will run only if the `.nfc_automation.yaml` file exists.
- Rule 3: If the pipeline is triggered by an API call, another pipeline, a trigger, or a parent pipeline, and `PIPELINE_RUN_TRIGGER` is set to `"true"`, the job will run only if the `.nfc_automation.yaml` file exists. see [Documentation](../git_configuration/submodule/) for file details.
- Rule 4: If the pipeline is triggered by a push to the `development` branch, the job will run only if the `.nfc_automation.yaml` file exists.
- Rule 5: This rule prevents the job from running under any circumstances.
## Job: `.submodule_update_trigger`
This job triggers a pipeline in another project.
### Stage: Publish
This job is responsible for triggering a pipeline in another project.
#### Variables
- `PIPELINE_RUN_TRIGGER`: The flag to indicate if the triggered pipeline should run (`true`).
### Rules
- Rule 1: If the pipeline is triggered by a push to the `master` or `development` branch, and there is no associated tag, the job will run on successful completion.
- Rule 2: This rule prevents the job from running under any other circumstances.
## Artifacts
- None
## gitlab-ci.yml definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "automation/.gitlab-ci-ansible.yaml"
```

View File

@ -0,0 +1,157 @@
---
title: Conventional Commits
description: How to use No Fuss Computings gitlab-ci job for Conventional Commits
date: 2021-08-03
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
## User Manual
Commitizen is used to validate the format of commit messages. we use [Conventional Commit Messages](https://www.conventionalcommits.org/en/v1.0.0/) format for our validation jobs.
This repository may have two CI jobs to do with commitizen:
- **MR Title** *Checks the Merge Request Title*
- **Commit Messages** *Checks all commit messages*
These CI Jobs output a test report that can be viewed inside of the merge request and contain the error(s), if any.
To fix an error please refer to the titled sections below.
### MR Title
Ensure that the merge request title is in the [conventional message](https://www.conventionalcommits.org/en/v1.0.0/) format. NOTE: the title is case sensitive.
### Commit Messages
All commit messages that form part of your merge request must be in [conventional message](https://www.conventionalcommits.org/en/v1.0.0/) format.
To fix them go back and edit your commit messages.
#### fixing commit messages (suggestion)
If only the last commit is the commit with an error just use `git commit --amend` and edit your commit message to be in the correct format and save. now push your changes.
You will require the following information if the commit message with the error is further down the commit tree:
- Commit message SHA1 of your first commit message to the branch `{original_commit}`
- Commit message SHA1 prior to your first commit `{source_commit}`
Run these commands once you have the information above.
``` bash
git format-patch {original_commit}..HEAD -o ../diff-patches
git reset {source_commit} --hard
```
Now, navigate to the `diff-patches` folder, open up the offending patch (commit) and edit the `subject` or message body as appropriate and save. Once all the edits have been done, re-apply the patches to your tree with:
``` bash
git am ../diff-patches/*.patch
```
Now push your changes upstream.
| :notebook_with_decorative_cover: Note |
|:-----:|
| *As you have changed the commit SHA1(s), when you next push your changes upstream, you must force push. `git push --force`* |
| :octagonal_sign: **WARNING** |
|:-----:|
| *Ensure that all of your commits were exported prior to reseting the branch and when re-applying, that all of your commits were applied correctly* |
## GitLab CI Template - `.conventional_commit`
This GitLab CI template, named `.conventional_commit`, is designed to validate conventional commits within a GitLab CI/CD pipeline. It follows predefined rules to ensure that commit message conventions are met.
### your .gitlab-ci.yml changes
To use this job add the following to your `.gitlab-ci.yml` file
``` yaml
variables:
GIT_SUBMODULE_STRATEGY: recursive
MY_PROJECT_ID: "{yourproject id number}"
stages:
- validation
include:
- remote: https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/raw/development/conventional_commits/.gitlab-ci.yml
```
### Job Description
The `.conventional_commit` job performs various tasks related to validating conventional commits. It runs in the `validation` stage of the pipeline and uses the `python:3.6-slim` Docker image.
### Variables
- `DEFAULT_ROOT_DIR`: The default root directory is set as `./gitlab-ci`.
- `MR_ACCESS_TOKEN`: The access token for the merge request. If not defined, it falls back to `CI_JOB_TOKEN`.
- `JOB_ROOT_DIR`: The root directory for the job. If not defined, it falls back to `DEFAULT_ROOT_DIR`.
- `MY_PROJECT_ID`: The custom project ID. If not defined, it falls back to `CI_PROJECT_ID`.
### Stages
- `validation`: The job is assigned to the `validation` stage.
### Script
The script section contains the actions performed during the job execution. These actions include creating directories, setting up variables, preparing the Python environment, and executing commands related to validating conventional commits.
The complete script can be found in the GitLab CI template file.
### Artifacts
The job generates artifacts that are stored for a period of 3 days. The artifacts include the following paths:
- `$CI_PROJECT_DIR/artifacts/*`
- `$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/*.junit.xml`
### Rules
The job follows certain rules to determine when it should be executed:
- If the variable `$JOB_STOP_CONVENTIONAL_COMMITS` is true, the job will not run.
- If the branch is pushed and a commit is made, and there is no tag associated with the commit, and the pipeline source is "push", the job will run if `.cz.yaml` file exists.
- In all other cases, the job will not run.
This GitLab CI template provides a convenient way to validate conventional commits and enforce commit message conventions within your CI/CD pipelines.
## Gitlab job Definition
When you include this definition the following makes up the job definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "conventional_commits/.gitlab-ci.yml"
```

View File

@ -0,0 +1,56 @@
---
title: docker build Gitlab CI/CD jobs Template
description: How to use No Fuss Computings gitlab-ci template for auto creation of CI/CD joobs.
date: 2023-06-10
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
This documentation provides an overview and explanation of the GitLab CI/CD YAML template. The template defines a job named `.build_docker_container` that builds a Docker container using the specified configuration.
### Stage: build
This job builds a Docker container using the `nofusscomputing/docker-buildx-qemu:dev` image and the `docker:23-dind` service.
#### Variables
- `DOCKER_IMAGE_BUILD_NAME`: The name of the Docker image to be built (`$CI_PROJECT_NAME`).
- `DOCKER_IMAGE_BUILD_REGISTRY`: The registry where the Docker image will be pushed (`$CI_REGISTRY_IMAGE`).
- `DOCKER_IMAGE_BUILD_TAG`: The tag to be applied to the Docker image (`$CI_COMMIT_SHA`).
#### Rules
- Rule 1: The job runs if the pipeline is triggered by a git tag and a `dockerfile` or `dockerfile.j2` file exists.
- Rule 2: The job runs if the pipeline is triggered by a push to the `development` branch and a `dockerfile` or `dockerfile.j2` file exists. It also checks for changes in the `dockerfile`, `dockerfile.j2`, or `includes/` directory compared to the `master` branch.
- Rule 3: The job runs if the pipeline is triggered by a push to a branch other than `master` or `development` and a `dockerfile` or `dockerfile.j2` file exists. It also checks for changes in the `dockerfile`, `dockerfile.j2`, or `includes/` directory compared to the `development` branch.
- Rule 4: The job never runs.
#### Script
The script performs the following steps:
1. Updates the binary formats and enables execution of other binary formats in the kernel.
2. Creates a Docker buildx builder and sets it as the active builder.
3. Builds a multi-arch Docker image if the `DOCKER_IMAGE_BUILD_TARGET_PLATFORMS` variable is specified. It applies labels to the image and pushes it to the specified registry. It also inspects the image and performs cleanup by removing additional unknown images from the container registry.
4. Builds a Docker image if the `DOCKER_IMAGE_BUILD_TARGET_PLATFORMS` variable is not specified. It applies labels to the image and pushes it to the specified registry.
## gitlab-ci.yml definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "docker/build.gitlab-ci.yaml"
```

View File

@ -0,0 +1,102 @@
---
title: docker publish Gitlab CI/CD jobs Template
description: How to use No Fuss Computings gitlab-ci job template to publish a docker image to docker hub.
date: 2023-06-10
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
This GitLab CI template is designed to publish Docker images to Docker Hub. It contains a job called "Publish Docker Image to Docker Hub" that handles the image publishing process.
## Stage
- `publish`
## Variables
The following variables are used in the job:
- `DOCKER_IMAGE_BUILD_NAME`: The name of the Docker image to build. By default, it uses the GitLab CI project name.
- `DOCKER_IMAGE_BUILD_REGISTRY`: The registry for the Docker image build. By default, it uses the GitLab CI registry image.
- `DOCKER_IMAGE_BUILD_TAG`: The tag for the Docker image build. By default, it uses the GitLab CI commit SHA.
- `DOCKER_IMAGE_BUILD_TARGET_PLATFORMS`: A comma-separated list of available platforms for the Docker image build. Supported platforms include: `linux/amd64`, `linux/amd64/v2`, `linux/amd64/v3`, `linux/arm64`, `linux/riscv64`, `linux/ppc64`, `linux/ppc64le`, `linux/s390x`, `linux/386`, `linux/mips64le`, `linux/mips64`, `linux/arm/v7`, `linux/arm/v6`.
- `CI_REGISTRY_USER`: The username for logging in to the GitLab CI registry.
- `CI_REGISTRY_PASSWORD`: The password for logging in to the GitLab CI registry.
- `NFC_DOCKERHUB_USERNAME`: The username for logging in to Docker Hub.
- `NFC_DOCKERHUB_TOKEN`: The access token or password for logging in to Docker Hub.
- `DOCKER_IMAGE_PUBLISH_REGISTRY`: The registry for publishing the Docker image to Docker Hub.
- `DOCKER_IMAGE_PUBLISH_NAME`: The name of the Docker image for publishing to Docker Hub.
- `DOCKER_IMAGE_PUBLISH_URL`: The URL to access the published Docker image on Docker Hub.
## Services
- `docker:23-dind`: Runs Docker in Docker (DinD) service with version 23.
## Script
The job executes the following steps in the `script` section:
1. Logs in to the GitLab CI registry using the provided credentials (`CI_REGISTRY_USER` and `CI_REGISTRY_PASSWORD`).
2. If the `DOCKER_IMAGE_BUILD_TARGET_PLATFORMS` variable is specified, it iterates over the platforms and inspects the Docker image using `docker buildx imagetools inspect`.
3. If the `DOCKER_IMAGE_BUILD_TARGET_PLATFORMS` variable is not specified, it pulls the Docker image from the specified registry.
4. Logs in to Docker Hub using the provided credentials (`NFC_DOCKERHUB_USERNAME` and `NFC_DOCKERHUB_TOKEN`).
5. Lists the Docker images using `docker image ls`.
6. Determines the appropriate tag for the Docker image based on the pipeline source and commit tag.
7. If the `DOCKER_IMAGE_BUILD_TARGET_PLATFORMS` variable is specified, it creates multi-arch images using `docker buildx imagetools create` and tags them with the appropriate tag.
8. If the `DOCKER_IMAGE_BUILD_TARGET_PLATFORMS` variable is not specified, it tags the Docker image with the appropriate tag based on the pipeline source and commit tag.
9. Pushes the Docker image to Docker Hub.
10. Logs out of Docker Hub.
## Environment
The job sets the following environment variables:
- **Name**: DockerHub
- **URL**: The URL to access the published Docker image on Docker Hub.
## Rules
The job is controlled by the following rules:
- Runs when the pipeline is triggered by a Git tag and there is no associated branch.
- Runs when the pipeline is triggered by a push to the `master` branch and there is a Dockerfile present.
- Runs when the pipeline is triggered by a push to the `development` branch, there are changes in the Dockerfile or the `includes/` directory compared to the `master` branch, and it allows failure.
- Never runs explicitly.
## gitlab-ci.yml definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "docker/build.gitlab-ci.yaml"
```

View File

@ -1,4 +1,11 @@
# git push mirror Admin Manual Manual
---
title: Git push mirror
description: How to use No Fuss Computings gitlab-ci job for repository mirrororing
date: 2021-08-03
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
This job does a git push to a remote git repo.
@ -6,14 +13,18 @@ This job provides the following badge:
- None
## Dependencies
- None
## your .gitlab-ci.yml changes
To use this job add the following to your `.gitlab-ci.yml` file
``` yaml
stages:
- sync
@ -28,6 +39,7 @@ Github (Push --mirror):
```
## CI/CD Variables required
| var name | Description |
@ -37,9 +49,10 @@ Github (Push --mirror):
## Job Workflow
- This job is designed to run on successful completion of the validation tasks and only on the `development` and `master` branches. You can safely override the `rules` when creating the job with your own. i.e.
- This job is designed to run on successful completion of the validation tasks and only on the `development` and `master` branches. You can safely override the `rules` when creating the job with your own. i.e.
``` yaml
Github (Push --mirror):
variables:
GIT_SYNC_URL: "https://${username variable}:${pasword variable}@github.com/NoFussComputing/gitlab-ci.git"
@ -50,12 +63,26 @@ Github (Push --mirror):
when: never
- if: '$CI_COMMIT_BRANCH == "development"'
when: always
```
This will cause the job to only run on the `development` branch.
## Artifacts
- None
- None
## License
To view the license for this folder and any sub-folders, refer [here](https://gitlab.com/nofusscomputing/projects/gitlab-ci)
## Gitlab job Definition
When you include this definition the following makes up the job definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "git_push_mirror/.gitlab-ci.yml"
```
!!! Note
Docs Still under development

View File

@ -0,0 +1,216 @@
---
title: Gitlab Release / Commit Footer References
description: How to use No Fuss Computings gitlab-ci job for Gitlab Releases and commit footer messages
date: 2021-08-03
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
## User Manual
All commit messages must be in [conventional commit format](https://www.conventionalcommits.org/en/v1.0.0/) and have a footer with a gitlab reference. The reference **must** be either a merge request or a gitlab issue. (format i.e. `!1` or `#2` *using the correct reference number*).
### fixing commit messages
If only the last commit is the commit with an error just use `git commit --amend` and edit your commit message to be in the correct format and save. now push your changes.
You will require the following information if the commit message with the error is further down the commit tree:
- Commit message SHA1 of your first commit message to the branch `{original_commit}`
- Commit message SHA1 prior to your first commit `{source_commit}`
Run these commands once you have the information above.
``` bash
git format-patch {original_commit}..HEAD -o ../diff-patches
git reset {source_commit} --hard
```
Now, navigate to the `diff-patches` folder, open up the offending patch (commit) and edit the `subject` or message body as appropriate and save. Once all the edits have been done, re-apply the patches to your tree with:
``` bash
git am ../diff-patches/*.patch
```
Now push your changes upstream.
| :notebook_with_decorative_cover: Note |
|:-----:|
| *As you have changed the commit SHA1(s), when you next push your changes upstream, you must force push. `git push --force`* |
| :octagonal_sign: **WARNING** |
|:-----:|
| *Ensure that all of your commits were exported prior to reseting the branch and when re-applying, that all of your commits were applied correctly* |
## GitLab CI Template - Developer Manual
## Job: gitlab_release
This job bumps the version, updates the changelog, creates a git tag and creates a gitlab release. The git tag and release title use [semantic versioning](https://semver.org/). for this job to function correctly a `.cz.yaml` is required in the root of the repository. this file contains the [commitizen](https://github.com/commitizen-tools/commitizen) config and the version details.
!!! Alert
*If prior to merging to the master branch you do a version increment, and there are no commits prior to merging. the job will not increment the version and the job will fail. it is recommended that you only do a version increment on the `development` branch if you are going to commit further changes to the `development` branch*
### Stage
`release`
### Image
The job uses the `registry.gitlab.com/gitlab-org/release-cli:latest` image.
### Variables
The job does not use any additional variables.
### Explanation
The `gitlab_release` job is responsible for creating releases and tags for the GitLab repository. It follows a specific release workflow and utilizes the `release-cli` tool to automate the release process.
### Steps
1. Set ROOT_DIR variable: Sets the `ROOT_DIR` variable based on the value of `JOB_ROOT_DIR`.
2. Create necessary directories: Creates necessary directories for storing artifacts and tests.
3. Install dependencies: Updates the package manager and installs Git and Python 3. Sets up the Python environment by installing required packages.
4. Clone repository: Clones the repository using the provided authentication token and checks out the `development` branch.
5. Configure Git: Configures Git settings for the release process.
6. Perform release steps: Executes release-related steps, such as running a custom command (`$MY_COMMAND`), generating the release changelog, and tagging the release.
7. Push changes: Pushes the changes to the GitLab repository.
8. Cleanup: Removes the cloned repository.
### Rules
- The job is never triggered when `$JOB_STOP_GITLAB_RELEASE` is true.
- The job is never triggered when the commit author is `nfc_bot <helpdesk@nofusscomputing.com>`.
- If the commit is pushed to the `master` branch, the job is only triggered on successful pipeline execution and failure is not allowed.
- If the commit is pushed to the `development` branch, the job is triggered manually and failure is allowed.
### your .gitlab-ci.yml changes
To use this job add the following to your `.gitlab-ci.yml` file
CI Job `ci commit footer` is automatically set to run on all branches except `development` and `master`. This job checks the commits on the users branch that they contain a footer with gitlab references. i.e. `#1` for issue one or `!1` for merge request one.
``` yaml
stages:
- validate
- release
include:
- remote: https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/raw/development/gitlab_release/.gitlab-ci.yml
Gitlab Release:
variables:
MY_COMMAND: "{your command here}"
extends:
- .gitlab_release
```
> if you wish to run any commands you can add them to variable `MY_COMMAND`. The custom command will run under shell `/bin/sh`. This command is set to run before the version bump commit is conducted so any changes you wish to add as part of the version bump, you can do here as long as you `git add {changed file name}`.
## Job: commit_footer_refs
### Stage
`validation`
### Image
The job uses the `python:3.6-slim` image.
### Variables
- `DEFAULT_ROOT_DIR`: The default root directory path.
### Explanation
The `commit_footer_refs` job validates the commit footer references in the GitLab repository. It checks if the commit messages adhere to the conventional commit format and generates a JUnit XML report.
### Conventional Commits
Conventional commits follow a specific format for commit messages, consisting of a type, optional scope, and a message. The format is as follows:
```
<type>(<scope>): <message>
```
- The `<type>` represents the nature of the changes, such as `feat` for a new feature, `fix` for a bug fix, `docs` for documentation changes, and so on.
- The `<scope>` (optional) provides additional context for the commit, indicating the module, component, or area of code being modified.
- The `<message>` contains a concise and descriptive summary of the changes.
The commit footer can contain additional information, such as references to issues, feature requests, or pull requests.
### Steps
1. Create necessary directories: Creates necessary directories for storing artifacts and test results.
2. Set ROOT_DIR variable: Sets the `ROOT_DIR` variable based on the value of `JOB_ROOT_DIR`.
3. Install dependencies: Updates the package manager and installs Git and the required Python packages for the commit footer validation.
4. Clone repository: Clones the repository and checks out the specified branch.
5. Run commit_footer script: Executes the `commit_footer` script to validate the commit footer references.
6. Generate artifacts: Generates a JUnit XML report for the test results.
### Rules
- The job is never triggered when `$JOB_STOP_CONVENTIONAL_COMMITS` is true.
- The job is never triggered when `CHANGELOG_FOOTER_REFERENCES` is false.
- The job is always triggered when the commit is not pushed to the master or development branch, and a .cz.yaml file is present, indicating the usage of conventional commits.
- The job is never triggered otherwise.
## Gitlab job Definition
When you include this definition the following makes up the job definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "gitlab_release/.gitlab-ci.yml"
```

View File

@ -0,0 +1,111 @@
---
title: No Fuss Computings Gitlab-CI Project
description: How to use No Fuss Computings gitlab-ci project within your CI/CD pipelines
date: 2023-05-22
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
!!! Note
Docs Still under development
## Docs ToDo
- Templates folder is for `gitlab-ci.yaml` that automagically create the jobs if included
- other sub folders are for `` which **DO NOT** automagically create jobs, but are pure definitions only.
- notate how each of the stages run and under what circumstance. *i.e. gitlab-ci.yml rules.exist/rules.changes*
## CI Stages
The CI stages for these jobs are as follows, and in the order expected by the jobs:
- chores
> automated tasks
- validation
> validation of files, commits, Merge Request titles, code quality, license checks.
- build
> build any binaries or files that would be used in the later stages .
- prepare
> any jobs that must run after build but before testing. for example a docker image build that includes artifacts from the build job
- test
> unit, functional, integration and any other tests.
- release
> git tagging and creating a gitlab release. Also includes adding build artifacts to gitlab registry.
- sync
> repository synchronization, i.e. push mirror to github.
- publish
> placement of build objects to external sources
## Git Sub-Module setup
It is recommended that you set-up this repo as a git sub-module to your repo and that you configure it to a set commit/tag. This ensures that any change to `gitlab-ci` repo, does not effect your CI/CD jobs.
run the following commands:
``` bash
git submodule add -b {ref} https://gitlab.com/nofusscomputing/projects/gitlab-ci.git gitlab-ci
git submodule update --remote
```
!!! Tip
NOTE: `{ref}` should be replaced with the branch name, `master` is the stable branch and recommended. by default the sub-module will be created in folder `gitlab-ci`, it is recommended that you **don't** change this folder name.
You can also substitute the gitlab url with the github url `https://github.com/NoFussComputing/gitlab-ci.git` for the submodule if you desire. this repo is auto-synced with github on each change to the repo.
After each `git submodule update --remote` you will have to commit the sub-module update to your repo. Suggested commands as follows:
``` bash
git add .gitmodules
git add gitlab-ci
git commit -m "ci(gitlab-ci): updated to use version x
{your reason here or explain what is provided/changed}"
```
Then push the changes to your source.
## .gitlab-ci.yaml example
example:
``` yaml
include:
- project: nofusscomputing/projects/gitlab-ci
ref: master
file:
- .gitlab-ci_common.yaml
- $JOB_ROOT_DIR/{filepath to include here and is relative to the gitlab-ci repo root}
variables:
MY_PROJECT_ID: "{your_project_id}"
```
!!! Tip
Use a project import in your `.gitlab-ci.yml` file that is tied to a specific `ref`. for example a branch, commit or tag. Also ensure that the `gitlab-ci` `git sub-module` and the `ref` as part of the includes matches.*
## Artifacts
Any artifacts by jobs will be created in folders named after the stage.
preference is placed on jobs to output JUnit.xml test reports. This is because they are visible in merge requests.

View File

@ -0,0 +1,74 @@
---
title: Markdown File Linting
description: How to use No Fuss Computings gitlab-ci job for markdown linting
date: 2021-08-11
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
This job lints markdown files as part of the validation CI stage. It is designated to run on all branches. If any errors are found, the generated JUnit test report will let you know what errors were found.
You can include your linting rules in `.markdownlint.json` which should be within the root of your repository. for the available rules please see the [docs](https://github.com/DavidAnson/markdownlint/blob/main/README.md#rules--aliases).
This job provides the following badge:
- _None_
## Dependencies
- **Optional** file `.markdownlint.json` in repository root with any rules you wish to specify
## your .gitlab-ci.yml changes
To use this job add the following to your `.gitlab-ci.yml` file
``` yaml
stages:
- validation
include:
- local: CI/validation/.gitlab-ci.yml
Markdown Linting:
extends:
- .Lint_Markdown
```
## CI/CD Variables required
| var name | Description |
|:----:|:----|
| MDLINT_PATH | **Optional** specifies the path to lint. defaults to `"**/*.md"` |
| MDLINT_EXCLUDE_PATHS | **optional** Specifies the paths to exclude from linting. Defaults to `"!gitlab-ci"` |
| MD_LINT_CONFIG-PATH | **Optional** Specifies a path whenre the lint config file is. defaults to none. this variable enables you to specify a config that will be copied to the project root folder. ***Note:** if specified, the file will be deleted at the end of the linting job.*
## Job Workflow
1. installs the required job dependencies
1. Lints any markdow file found in `$MDLINT_PATH`, excluding paths `$MDLINT_EXCLUDE_PATHS`
## Artifacts
- JUnit test report located at `$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/*.junit.xml`
## Gitlab job Definition
When you include this definition the following makes up the job definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "lint/markdown.gitlab-ci.yaml"
```
!!! Note
Docs Still under development

View File

@ -0,0 +1,81 @@
---
title: MKDocs Static Site Build
description: How to use No Fuss Computings gitlab-ci job for MKDocs Static Site Build
date: 2021-08-11
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
Build a MKDocs site from the config specified in `mkdocs.yml`. _Only runs if `mkdocs.yml` exists in the repository root directory._ This job is designated to run on all branchs so that you can use the artifacts for deployment to `staging` and/or `production` as required.
This job provides the following badge:
- _None_
## Dependencies
- **Mandatory** file `mkdocs.yml` in the repository root directory with your MKDocs configuration
## your .gitlab-ci.yml changes
To use this job add the following to your `.gitlab-ci.yml` file
``` yaml
stages:
- build
include:
- local: CI/build/.gitlab-ci.yml
MKDocs build:
variables:
MKDOCS_BUILD_PATH: "build"
extends:
- .MKDocs_Build
```
## CI/CD Variables required
| var name | Description |
|:----:|:----|
| MKDOCS_BUILD_PATH | **Mandatory, if different from default** The path where MKDocs places the build files. Defaults to `build` |
| MKDOCS_INCLUDE_SOURCE | **Optional** Include the build source files in the artifacts. Default is Not set. Any value in this variable, will include the source files. |
| MKDOCS_SOURCE_PATH | **Optional, if source files are not to be included** Set to the path where mkdocs uses to build the static html. |
## Job Workflow
1. install mkdocs
1. if file `requirements.txt` exists in the repository root directory, use this fill to also install additional dependencies.
1. if no `requirements.txt` file exists, only install mkdocs.
1. run mkdocs to build the static pages
1. if variable `$MKDOCS_INCLUDE_SOURCE` is set, then copy `$MKDOCS_SOURCE_PATH` to the artifacts location.
1. copy directory `$MKDOCS_BUILD_PATH` to the artifacts location.
## Artifacts
- files in `"$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"`
## Gitlab job Definition
When you include this definition the following makes up the job definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "mkdocs/.gitlab-ci.yml"
```
!!! Note
Docs Still under development

View File

@ -0,0 +1,120 @@
---
title: Python
description: How to use No Fuss Computings gitlab-ci job for Python
date: 2021-08-11
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
This folder (`python`) covers jobs for python development
These jobs provides the following badge:
- `PyLint` - code quality [![PyLint Score](https://img.shields.io/badge/dynamic/json?&style=plastic&logo=python&label=PyLint%20Score&query=%24.PyLintScore&url=https%3A%2F%2Fgitlab.com%2Fnofusscomputing%2Fprojects%2Fgitlab-ci%2F-%2Fjobs%2Fartifacts%2Fdevelopment%2Fraw%2Fartifacts%2Fvalidation%2FPyLint%2Fbadge_pylint.json%3Fjob%3DPyLint)](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/jobs/artifacts/development/file/artifacts/validation/tests/gl-code-quality-report.html?job=PyLint)
Use the following MD to add a badge adjusting the variables and ensuring everything is on one line.
``` md
[![PyLint Score](https://img.shields.io/badge/dynamic/json?&style=plastic&logo=python&label=PyLint%20Score&query=%24.PyLintScore&url=https%3A%2F%2Fgitlab.com%2F
{project path}
%2F-%2Fjobs%2Fartifacts%2F
{branch}
%2Fraw%2Fartifacts%2Fvalidation%2FPyLint%2Fbadge_pylint.json%3Fjob%3D
{Job Name}
)](https://gitlab.com/
{project path}
/-/jobs/artifacts/
{branch}
/file/
artifacts/validation/tests/gl-code-quality-report.html
?job=
{Job Name}
)
```
| Variable | Description |
|:----|:----|
| `{project path}` | *project path, what's after gitlab.com/* |
| `{branch}` | *git branch to fetch the score from* |
| `{Job Name}` | *name of the gitlab-ci job for the linting* |
## Dependencies
- None
## your .gitlab-ci.yml changes
To add the `PyLint` job, add the following to your `.gitlab-ci.yml` file
``` yaml
stages:
- validation
include:
- remote: https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/raw/master/python/.gitlab-ci.yml
PyLint:
variables:
PYLINT_PATH: "/*/*.py"
PYLINT_RC_PATH: "."
extends:
- .PyLint
image: python:3.6-slim
```
## CI/CD Variables required
| var name | Description |
|:----:|:----|
| PYLINT_PATH | *The path you wish the linter to search for python files* |
| PYLINT_RC_PATH | *The path to your `.pylintrc` file.* |
## Job Workflow
- This job will lint any yaml file in the specified directory using the specified rules.
## Artifacts
- `$CI_PROJECT_DIR/artifacts` - Root artifact directory
- `$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/gl-code-quality-report.json` - Gitlab code quality report (displays in merge request)
- `$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/gl-code-quality-report.html` - html code quality report
## Gitlab job Definition
When you include this definition the following makes up the job definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "python/.gitlab-ci.yml"
```
!!! Note
Docs Still under development

View File

@ -1,4 +1,11 @@
# Ansible
---
title: Ansible
description: How to use No Fuss Computings gitlab-ci job for ansible
date: 2021-08-03
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
This job does ansible role/playbook linting when any commit is pushed to any branch.
@ -6,14 +13,18 @@ This job provides the following badge:
- None
## Dependencies
- None
## your .gitlab-ci.yml changes
To use this job add the following to your `.gitlab-ci.yml` file
``` yaml
stages:
- validation
@ -26,9 +37,12 @@ Ansible Lint (python 3.6):
extends:
- .ansible_linter_defaults
image: python:3.6-slim
```
> You can use any python version you wish.
## CI/CD Variables required
| var name | Description |
@ -38,13 +52,13 @@ Ansible Lint (python 3.6):
## Job Workflow
- This job will lint any yml file in the specified directory using ansible rules.
- This job will lint any yml file in the specified directory using ansible rules.
## Artifacts
- `$CI_PROJECT_DIR/artifacts` - Root artifact directory
- `$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/$PYTHON_VERSION-ansible-lint.junit.xml` - JUnit Test report
- `$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/$PYTHON_VERSION-ansible-lint.log` - Linter log
- `$CI_PROJECT_DIR/artifacts` - Root artifact directory
## License
To view the license for this folder and any sub-folders, refer [here](https://gitlab.com/nofusscomputing/projects/gitlab-ci)
- `$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/$PYTHON_VERSION-ansible-lint.junit.xml` - JUnit Test report
- `$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/$PYTHON_VERSION-ansible-lint.log` - Linter log

View File

@ -0,0 +1,28 @@
---
title: Automatic Gitlab CI/CD jobs Template
description: How to use No Fuss Computings gitlab-ci template for auto creation of CI/CD joobs.
date: 2023-05-22
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
This template is designed to autodetect which jobs should be created. By including it within your project, the jobs will be automagically created for the pipeline.
## Docs ToDo
- document variables `PIPELINE_RUN_TRIGGER: 'false'` and `PIPELINE_RUN_SCHEDULE: 'false'` as being used as a gate to enable the jobs to run by the specified source.
!!! Note
Docs Still under development
## gitlab-ci.yml definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "template/automagic.gitlab-ci.yaml"
```

View File

@ -0,0 +1,37 @@
---
title: Docker Container CI Template
description: How to use No Fuss Computings gitlab-ci template for docker containers
date: 2023-05-13
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
- available tags `dev` for latest dev build
- latest matches latest git tag
- notate available platforms can be viewed in the job
- notate that resource groups are used. also mention that the resource group allows the git tag pipeline as forced to wait for the previous pipeline, tag push to build the image first
``` yaml
# Available platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/arm64, linux/riscv64, linux/ppc64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
# DOCKER_IMAGE_BUILD_TARGET_PLATFORMS: "linux/amd64,linux/arm64,linux/arm/v7"
DOCKER_IMAGE_BUILD_NAME: $CI_PROJECT_NAME
DOCKER_IMAGE_BUILD_REGISTRY: $CI_REGISTRY_IMAGE
DOCKER_IMAGE_BUILD_TAG: $CI_COMMIT_SHA
# DOCKER_IMAGE_PUBLISH_NAME: $CI_PROJECT_NAME
# DOCKER_IMAGE_PUBLISH_REGISTRY: docker.io/nofusscomputing
# DOCKER_IMAGE_PUBLISH_URL: https://hub.docker.com/r/nofusscomputing/$DOCKER_IMAGE_PUBLISH_NAME
# JOB_STOP_CONVENTIONAL_COMMITS: 'any_value'
# JOB_STOP_GIT_PUSH_MIRROR: 'any_value'
# GIT_SYNC_URL: "https://$GITHUB_USERNAME_ROBOT:$GITHUB_TOKEN_ROBOT@github.com/NoFussComputing/config.git" # Must be defined for job to run
# JOB_STOP_GITLAB_RELEASE: 'any value'
```
!!! Note
Docs Still under development

View File

@ -0,0 +1,33 @@
---
title: mkdocs documentation Gitlab CI/CD Template
description: How to use No Fuss Computings gitlab-ci template for building docs with mkdocs
date: 2023-05-22
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
This template creates the jobs applicable to publishing pages to a website. The website in question is a static site built by MKDocs.
## Docs ToDo
- notate that var `PAGES_ENVIRONMENT_PATH:` can be set to the slug of the page to show and is used for launching the environment to the url that contains the docs index page.
- notate that resource groups are used.
## Dependencies
- **Mandatory** file `docs/index.md` this is the index page of your dcoumentation.
!!! Note
Docs Still under development
## gitlab-ci.yml definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "template/mkdocs-documentation.gitlab-ci.yaml"
```

View File

@ -0,0 +1,18 @@
---
title: Gitlab-CI Job Templates
description: How to use No Fuss Computings gitlab-ci project within your CI/CD pipelines
date: 2023-05-22
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
As part of our Gitlab CI job definitions we also have gitlab-ci.yaml templates that are specifically designed for inclusion and will automagically add the required jobs.
## Docs ToDo
- all templates are in the template folder.
- explain `.gitlab-ci_common.yaml` is for inclusion by all, _suggested._ and will never create jobs, only specify defaults. is also included in all templates
!!! Note
Docs Still under development

View File

@ -0,0 +1,79 @@
---
title: YAML Linting
description: How to use No Fuss Computings gitlab-ci job for YAML Linting
date: 2021-08-11
template: project.html
about: https://gitlab.com/nofusscomputing/projects/gitlab-ci
---
This job does yaml linting when any commit is pushed to any branch.
This job provides the following badge:
- None
## Dependencies
- None
## your .gitlab-ci.yml changes
To use this job add the following to your `.gitlab-ci.yml` file
``` yaml
stages:
- validation
include:
- remote: https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/raw/master/yaml_lint/.gitlab-ci.yml
Yaml Lint (python 3.6):
variables:
YAML_LINT_PATH: "."
YAML_LINT_EXTRA_ARGS: "{ extends: $ROOT_DIR/yaml_lint/.yamllint.yaml, ignore: [gitlab-ci/*] }"
extends:
- .yaml_linter_defaults
image: python:3.6-slim
```
> You can use any python version you wish.
## CI/CD Variables required
| var name | Description |
|:----:|:----|
| YAML_LINT_PATH | *The path you wish the linter to search for yaml files, defaults to `.`* |
| YAML_LINT_EXTRA_ARGS | *configuration in yaml format., defaults to `{ extends: $ROOT_DIR/yaml_lint/.yamllint.yaml, ignore: [gitlab-ci/*] }` for further info see the [YAML Lint docs](https://yamllint.readthedocs.io/en/stable/configuration.html?highlight=exclude#custom-configuration-without-a-config-file)* |
## Job Workflow
- This job will lint any yaml file in the specified directory using the specified rules.
## Artifacts
- `$CI_PROJECT_DIR/artifacts` - Root artifact directory
- `$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/$PYTHON_VERSION-yaml-lint.junit.xml` - JUnit Test report
- `$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/$PYTHON_VERSION-yaml-lint.log` - Linter log
## Gitlab job Definition
When you include this definition the following makes up the job definition
``` yaml title=".gitlab-ci.yml" linenums="1"
--8<-- "lint/yaml.gitlab-ci.yaml"
```
!!! Note
Docs Still under development

0
docs/projects/index.md Normal file
View File

0
docs/tags.md Normal file
View File

View File

@ -6,6 +6,7 @@
- apk update
- apk add git
script:
- if [ "0$GIT_SYNC_URL" == "0"]; then echo "[ERROR] you must define variable GIT_SYNC_URL for mirroring this repository."; fi
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/$CI_PROJECT_PATH --mirror $CI_PROJECT_NAME
- cd $CI_PROJECT_NAME
- git remote add destination $GIT_SYNC_URL
@ -14,9 +15,18 @@
artifacts:
expire_in: 1 day
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
- if: '$CI_COMMIT_BRANCH == "development"'
when: always
- if: '$JOB_STOP_GIT_PUSH_MIRROR'
when: never
- if: $GIT_SYNC_URL == null
when: never
- if: # condition_master_or_dev_push
(
$CI_COMMIT_BRANCH == "master" ||
$CI_COMMIT_BRANCH == "development"
) &&
$CI_PIPELINE_SOURCE == "push"
when: always
- when: never

View File

@ -1,5 +1,22 @@
# Changelog
2023-05-28 10:31:26 +0930 [bade89c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bade89c5333ca853844e224f46a2d3dafab7179d) - fix(scheduled_pipelines): if scheduled pipeline only run schedualable jobs
2023-05-24 04:40:52 +0000 [0a17fe1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0a17fe1aa320c658c05d7a693ff76af4a54e6130) - build(version): bump version 0.6.1rc1 → 0.6.1rc2
2023-05-15 00:18:38 +0000 [a3fdca8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a3fdca83bf7acb58d47792a66d1cd0728747361c) - build(version): bump version 0.6.1rc0 → 0.6.1rc1
2023-05-14 11:41:18 +0930 [1db2209](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1db2209dfb36fbdda28d68388aec9f62f85b57bc) - feat(git_push_mirror): always sync git tag
2023-05-13 15:35:28 +0930 [408e4ea](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/408e4eab9e1f61004f1e38af6d1531747b7da99b) - refactor: move docs as part of restructure
2023-05-13 11:47:56 +0930 [81445c0](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/81445c06e43bce10761e3a7fbad7df97f82d6bc2) - feat(git_push_mirror): ability to disable job with variable
2022-01-25 00:08:05 +0000 [ce1cc01](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/ce1cc017e26ff7f6cee586cc7d98e4d292275672) - build(version): bump version 0.6.0 → 0.6.1rc0
2022-01-24 06:33:24 +0000 [46cc1fb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/46cc1fbb6a878e485af39e679b5184a9912c2e7f) - build(version): bump version 0.5.0 → 0.6.0
2022-01-16 00:09:42 +0000 [1ef6c41](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1ef6c41818c40183f8019ea5cde48b4278e4d694) - build(version): bump version 0.4.0 → 0.5.0
2022-01-15 03:53:53 +0000 [5c9000a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5c9000a74859504ed64bbefa1fd193f80a2b69c2) - build(version): bump version 0.3.1 → 0.4.0
2022-01-11 07:03:09 +0000 [7751fd9](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7751fd9494f610fff0ea16bd303bfe62d0034eec) - build(version): bump version 0.3.0 → 0.3.1
2021-08-12 03:32:36 +0000 [389bc08](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/389bc08d7686153fb374aa83d440c35c9b4eac90) - build(version): bump version 0.3.0rc1 → 0.3.0
2021-08-11 13:47:34 +0930 [def31ef](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/def31ef562c0002713401652657d59320548ee85) - style(yaml_lint): fixed yaml lint errors
2021-08-04 03:23:08 +0000 [eb5cc8a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/eb5cc8a0e2885a9ed16a8d1a81611aec4d5a4d31) - build(version): bump version 0.3.0rc0 → 0.3.0rc1
2021-08-04 03:13:54 +0000 [09dcb65](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/09dcb65b090f59e9f8a6bea5eba4bb98bddbad3d) - build(version): bump version 0.2.1 → 0.3.0rc0
2021-08-04 02:49:45 +0000 [4453b43](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4453b433c8966a334f02af592a6ce8092f2ac9de) - build(version): bump version 0.2.0 → 0.2.1
2021-08-04 02:24:12 +0000 [856f2e1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/856f2e1770d0bda823996122ee70916dc0fe455b) - build(version): bump version 0.1.0 → 0.2.0
2021-08-04 01:33:47 +0000 [6d34977](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6d349774269bcd7c6e406cfe72c78b99f246df7b) - build(version): bump version 0.0.1 → 0.1.0
2021-08-03 14:44:28 +0930 [247264e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/247264e36bc0b6c86d2f06f8dae09ff7447fc156) - docs(README.md): Added readme for the repo
2021-08-03 14:40:17 +0930 [7ffb204](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7ffb20418cfa8e6fa20cca60e42155171961d1ce) - docs(git_push_mirror): Update workflow and typos

View File

@ -15,35 +15,110 @@
- pip install $ROOT_DIR/gitlab_release/python-module/cz_nfc/.
- 'CLONE_URL="https://gitlab-ci-token:$GIT_COMMIT_TOKEN@gitlab.com/$CI_PROJECT_PATH.git"'
- echo "[DEBUG] CLONE_URL[$CLONE_URL]"
- git clone -b $CI_COMMIT_BRANCH $CLONE_URL repo
- git clone -b development $CLONE_URL repo
- cd repo
- git branch
- git config --global user.email "CI@nfc-gitlab"
- git config --global user.name "NFC CI"
- git push --set-upstream origin $CI_COMMIT_BRANCH
- git config --global user.email "helpdesk@nofusscomputing.com"
- git config --global user.name "nfc_bot"
- git push --set-upstream origin development
- RELEASE_VERSION_CURRENT=$(cz -n cz_nfc version --project)
script:
- "$MY_COMMAND"
- RELEASE_CHANGELOG=$(cz -n cz_nfc bump --changelog --changelog-to-stdout)
- if [ "$CI_COMMIT_BRANCH" == "development" ] ; then RELEASE_CHANGELOG=$(cz -n cz_nfc bump --changelog --changelog-to-stdout --prerelease rc); else RELEASE_CHANGELOG=$(cz -n cz_nfc bump --changelog --changelog-to-stdout); fi
- RELEASE_VERSION_NEW=$(cz -n cz_nfc version --project)
- RELEASE_TAG=v$RELEASE_VERSION_NEW
- if [ "0$RELEASE_VERSION_CURRENT" == "0$RELEASE_VERSION_NEW" ]; then echo "[DEBUG] No tag to delete, version was not bumped"; else git tag -d $RELEASE_TAG; fi
- RELEASE_TAG=$RELEASE_VERSION_NEW
- echo "[DEBUG] RELEASE_VERSION_CURRENT[$RELEASE_VERSION_CURRENT]"
- echo "[DEBUG] RELEASE_CHANGELOG[$RELEASE_CHANGELOG]"
- echo "[DEBUG] RELEASE_VERSION_NEW[$RELEASE_VERSION_NEW]"
- echo "[DEBUG] RELEASE_TAG[$RELEASE_TAG]"
- RELEASE_TAG_SHA1=$(git log -n1 --format=format:"%H")
- echo "[DEBUG] RELEASE_TAG_SHA1[$RELEASE_TAG_SHA1]"
- if [ "0$RELEASE_VERSION_CURRENT" == "0$RELEASE_VERSION_NEW" ]; then echo "[DEBUG] No tag to delete, version was not bumped"; else git tag -d $RELEASE_TAG; fi
- if [ "0$RELEASE_VERSION_CURRENT" == "0$RELEASE_VERSION_NEW" ]; then echo "[DEBUG] No push will be conducted, version was not bumped"; else git push; fi
- if [ "0$RELEASE_VERSION_CURRENT" == "0$RELEASE_VERSION_NEW" ]; then echo "[DEBUG] No release will be created, version was not bumped"; else release-cli create --name "Release $RELEASE_TAG" --tag-name "$RELEASE_TAG" --ref "$RELEASE_TAG_SHA1" --description "$RELEASE_CHANGELOG"; fi
- if [ "0$RELEASE_VERSION_CURRENT" == "0$RELEASE_VERSION_NEW" ]; then echo "[DEBUG] No release will be created, version was not bumped"; else release-cli create --name "Release $RELEASE_TAG" --tag-name "$RELEASE_TAG" --tag-message "$RELEASE_CHANGELOG" --ref "$RELEASE_TAG_SHA1" --description "$RELEASE_CHANGELOG"; fi
- if [ "$CI_COMMIT_BRANCH" == "master" ] ; then git checkout master; fi
- if [ "$CI_COMMIT_BRANCH" == "master" ] ; then git push --set-upstream origin master; fi
- if [ "$CI_COMMIT_BRANCH" == "master" ] ; then git merge --no-ff development; fi
- if [ "$CI_COMMIT_BRANCH" == "master" ] ; then git push origin master; fi
after_script:
- rm -Rf repo
rules:
- if: "$CI_COMMIT_AUTHOR =='NFC CI <CI@nfc-gitlab>'"
- if: '$JOB_STOP_GITLAB_RELEASE'
when: never
- if: '$CI_COMMIT_BRANCH == "development"'
- if: '$TRIGGER_RELEASE == "True" && $CI_COMMIT_BRANCH == "development"'
when: on_success
- if: "$CI_COMMIT_AUTHOR =='nfc_bot <helpdesk@nofusscomputing.com>'"
when: never
- if: # condition_master_branch_push
$CI_COMMIT_BRANCH == "master" &&
$CI_PIPELINE_SOURCE == "push"
allow_failure: false
when: on_success
- if: # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
$CI_PIPELINE_SOURCE == "push"
when: manual
allow_failure: true
# for testing
# - if: '$CI_COMMIT_BRANCH != "master"'
# when: always
# allow_failure: true
- when: never
commit footer refs:
stage: validation
image: python:3.6-slim
variables:
DEFAULT_ROOT_DIR: './gitlab-ci'
before_script:
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests"
- if [ "0$JOB_ROOT_DIR" == "0" ]; then export ROOT_DIR=$DEFAULT_ROOT_DIR; else export ROOT_DIR=$JOB_ROOT_DIR ; fi
- echo "[DEBUG] ROOT_DIR[$ROOT_DIR]"
- apt update
- apt install --no-install-recommends -y git
- pip install -e $ROOT_DIR/gitlab_release/python-module/commit_footer/.
- git clone --depth 150 -b development $CI_REPOSITORY_URL check
- cd check
- git remote rm origin
- git remote add origin $CI_REPOSITORY_URL
- git fetch --all
- git checkout --track origin/$CI_COMMIT_BRANCH
script:
- commit_footer > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/$CI_JOB_NAME.junit.xml"
artifacts:
expire_in: 1 days
when: always
paths:
- "$CI_PROJECT_DIR/artifacts/*"
reports:
junit:
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/*.junit.xml"
rules:
- if: '$JOB_STOP_CONVENTIONAL_COMMITS'
when: never
- if: $CHANGELOG_FOOTER_REFERENCES == "False"
when: never
# - if: '$CI_COMMIT_BRANCH == "development" || $CI_COMMIT_BRANCH == "master"'
# when: never
- if: # condition_not_master_or_dev_push
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push" &&
$CI_COMMIT_TAG == null
exists:
- .cz.yaml
changes:
paths:
- "**/**"
compare_to: development
when: always
- when: never

View File

@ -1,5 +1,52 @@
# Changelog
2023-05-28 10:31:26 +0930 [bade89c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bade89c5333ca853844e224f46a2d3dafab7179d) - fix(scheduled_pipelines): if scheduled pipeline only run schedualable jobs
2023-05-24 04:40:52 +0000 [0a17fe1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0a17fe1aa320c658c05d7a693ff76af4a54e6130) - build(version): bump version 0.6.1rc1 → 0.6.1rc2
2023-05-21 01:48:53 +0930 [088c9fb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/088c9fb04c80961f4de8d2b129955ae8cd0b9529) - feat(conventional_commits): ensure .cz.yaml exists
2023-05-15 10:25:48 +0930 [18a2808](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/18a280878799fe077efa0ed5b11bceedd53eb5c8) - fix(gitlab_release): allow skip on dev branch
2023-05-15 10:19:49 +0930 [d89941d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d89941df05bfed4b0ad1277e715b224d232e7949) - feat(gitlab_release): dont automagic run on dev
2023-05-15 00:18:38 +0000 [a3fdca8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a3fdca83bf7acb58d47792a66d1cd0728747361c) - build(version): bump version 0.6.1rc0 → 0.6.1rc1
2023-05-14 11:46:28 +0930 [e06ffef](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e06ffef66c4a0ba1f48f109c175239560909e698) - feat(gitlab_release): run on merge to development
2023-05-14 11:45:24 +0930 [199ea1f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/199ea1f23c6a3df2b40ae3d9a5668719301500d9) - feat(gitlab_release): never run on merge or git tag
2023-05-14 11:44:20 +0930 [a745cea](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a745ceac5ebce458b46593311e5285f40dcba349) - fix(gitlab_release): fixed rule to match nfc_bot
2023-05-14 11:41:47 +0930 [1fa7fec](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1fa7fec38a54b7ddf460b1394a7024ef161fab24) - refactor(gitlab_release): show debug before command
2023-05-14 11:39:53 +0930 [e76378d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e76378dd068e200a1198f1811efb9d3bec7878f5) - fix(gitlab_release): only run on master on_success
2023-05-14 09:56:35 +0930 [934a401](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/934a401a9620891b09a5fe9c9b0e50a97b43fa9b) - fix(ci): specify the commitizen version
2023-05-13 15:35:28 +0930 [408e4ea](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/408e4eab9e1f61004f1e38af6d1531747b7da99b) - refactor: move docs as part of restructure
2023-05-13 11:49:52 +0930 [8d512a9](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8d512a9a4bd7f4895645436f057c4bab3efb864e) - feat(commit_footer_refs): ability to disable job with variable
2023-05-13 11:48:47 +0930 [a37acbf](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a37acbfc7d3ea20ece7cb76e15a14858b26f8508) - feat(gitlab_release): ability to disable job with variable
2022-02-12 10:27:01 +0000 [9a7ae71](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/9a7ae7106e80a038b31cdc9fc172bb1f974ecb94) - refactor: set correct commit details for nfc_bot
2022-01-25 00:08:05 +0000 [ce1cc01](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/ce1cc017e26ff7f6cee586cc7d98e4d292275672) - build(version): bump version 0.6.0 → 0.6.1rc0
2022-01-24 06:33:24 +0000 [46cc1fb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/46cc1fbb6a878e485af39e679b5184a9912c2e7f) - build(version): bump version 0.5.0 → 0.6.0
2022-01-16 00:09:42 +0000 [1ef6c41](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1ef6c41818c40183f8019ea5cde48b4278e4d694) - build(version): bump version 0.4.0 → 0.5.0
2022-01-16 09:02:44 +0930 [82c6c9f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/82c6c9f5d53594544cea9a7bc59a10ab1e9ebedd) - feat(commit_footer_refs): never run on development or master.
2022-01-15 03:53:53 +0000 [5c9000a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5c9000a74859504ed64bbefa1fd193f80a2b69c2) - build(version): bump version 0.3.1 → 0.4.0
2022-01-11 07:03:09 +0000 [7751fd9](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7751fd9494f610fff0ea16bd303bfe62d0034eec) - build(version): bump version 0.3.0 → 0.3.1
2021-08-12 14:46:26 +0930 [2ac22c0](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/2ac22c0e914016a8944ff9b94640f3e87f409069) - fix(commit_footer): fix bug introduced in code quality commit
2021-08-12 14:42:16 +0930 [ccc601f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/ccc601f641a9b07b63a160d779c5037481316e75) - style(cz_nfc): code quality on cz_nfc.py
2021-08-12 14:27:41 +0930 [5676c5e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5676c5ee376f574a8581e8c8f4810eb5a7c511ba) - style(commit_footer): code quality on setup.py
2021-08-12 14:26:43 +0930 [3d69e57](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3d69e57714cd529b13ddc9c575c2dc955a350dd9) - style(commit_footer): code quality on __main__.py
2021-08-12 14:21:34 +0930 [c093c31](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/c093c31cbd12989f7109dbcb6fd4f029c42a3919) - style(commit_footer): code quality on commits.py
2021-08-12 03:32:36 +0000 [389bc08](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/389bc08d7686153fb374aa83d440c35c9b4eac90) - build(version): bump version 0.3.0rc1 → 0.3.0
2021-08-11 13:47:34 +0930 [def31ef](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/def31ef562c0002713401652657d59320548ee85) - style(yaml_lint): fixed yaml lint errors
2021-08-11 12:17:50 +0930 [63af1ef](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/63af1efb4fd92a9f8755f766728a18d8f390b805) - fix(commit_footer_refs): Use the current git branch for comparison.
2021-08-08 15:57:50 +0930 [dc13d4f](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/dc13d4f2841038c085dcf29dfb0b0c5d2f00f099) - docs(gitlab_release): Added user docs to fix errors from ci job 'commit footer refs'
2021-08-08 15:28:00 +0930 [22136f7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/22136f7dd22b9487d362a7ed63ca1b76e52b9cc7) - feat(gitlab_release): Toggle var added to enable switching changelog references.
2021-08-08 15:18:11 +0930 [eb0bf4c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/eb0bf4c1740dbd7a47ceb031c0d1c854899a1e40) - refactor(gitlab_release): file link to be in local repository for helping fix commit footer ref check failures
2021-08-08 15:05:35 +0930 [8177622](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/81776223c5cb392c12c7ca63488a1df10290e9d1) - refactor(gitlab_release): use a name for failed test to denote the issue
2021-08-08 15:03:12 +0930 [756b940](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/756b9406dde8cf0bf0030ac72855a054ece3a883) - feat(gitlab_release): be able to toggle commit footer check job
2021-08-08 14:51:57 +0930 [7cb676e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7cb676eb98a7de30d47a6b49a87067116684cfd2) - ci(gitlab_release): Add a validation job to check if commit messages contain a gitlab reference in the footer
2021-08-08 14:50:34 +0930 [11e1566](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/11e156619d0d820e534897bafd5f39e6f9defcbf) - feat(gitlab_release): python module to check if a commit message has gitlab references in the footer
2021-08-07 17:11:17 +0930 [8699c41](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8699c41219d70e6f41f42dc7f2c1bcf542b3f723) - feat(gitlab_release): Add commit footer to changelog
2021-08-07 14:56:51 +0930 [5f273ce](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5f273ce23a331eaf11623207ec4aba8b856c14f0) - docs(gitlab_release): Updated docs with new instructions on version incrementing
2021-08-07 14:31:19 +0930 [f76cabe](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/f76cabeeb04b028a231dc1c232862db5fcad4345) - fix(gitlab_release): Adjust release workflow
2021-08-04 03:23:08 +0000 [eb5cc8a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/eb5cc8a0e2885a9ed16a8d1a81611aec4d5a4d31) - build(version): bump version 0.3.0rc0 → 0.3.0rc1
2021-08-04 03:13:54 +0000 [09dcb65](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/09dcb65b090f59e9f8a6bea5eba4bb98bddbad3d) - build(version): bump version 0.2.1 → 0.3.0rc0
2021-08-04 12:39:01 +0930 [3e8c3ce](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/3e8c3ce7cd64a6e9110818d32c15c3602fefb76c) - feat(gitlab_release): On the development brnach, releases to be 'rc' to denote considered non-stable
2021-08-04 12:24:02 +0930 [cc3fabd](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/cc3fabdaa28f97c3e1600e4a0d95a05bb547e772) - refactor(gitlab_release): Use Short commit SHA1 in main changelog link to gitlab
2021-08-04 02:49:45 +0000 [4453b43](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4453b433c8966a334f02af592a6ce8092f2ac9de) - build(version): bump version 0.2.0 → 0.2.1
2021-08-04 12:05:01 +0930 [588698d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/588698df2668853a97fe60901ab324310f34f279) - fix(gitlab_release): Correctly fetch the CI_PROJECT_URL for the environment
2021-08-04 02:24:12 +0000 [856f2e1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/856f2e1770d0bda823996122ee70916dc0fe455b) - build(version): bump version 0.1.0 → 0.2.0
2021-08-04 11:50:41 +0930 [287b4c9](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/287b4c954dddfaaf0a66af387676ea438cc80e61) - feat(gitlab_release): Include code refactor as part of the changelog
2021-08-04 11:48:28 +0930 [eebe8e3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/eebe8e30dcb11cd239f35fcb98216b2ae4d20ece) - docs(gitlab_release): Include custom command instructions
2021-08-04 11:29:22 +0930 [7a69685](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7a69685b53cbe5bd7341a176bf63fd17d36bc7f0) - refactor(gitlab_release): Dont conduct any release, git push or tag delete if the version was not bumped

View File

@ -1,68 +0,0 @@
# Gitlab Release
This job bumps the version, updates the changelog, creates a git tag and creates a gitlab release. The git tag and release title use [semantic versioning](https://semver.org/). for this job to function correctly a `.cz.yaml` is required in the root of the repository. this file contains the [commitizen](https://github.com/commitizen-tools/commitizen) config and the version details. This job runs on successful completion of previous jobs and only on `development` and `master` branches.
This job provides the following badge:
- None
## Dependencies
- This job will only run if all previous jobs run.
## your .gitlab-ci.yml changes
To use this job add the following to your `.gitlab-ci.yml` file
``` yaml
stages:
- release
include:
- remote: https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/raw/development/gitlab_release/.gitlab-ci.yml
Gitlab Release:
variables:
MY_COMMAND: "{your command here}"
extends:
- .gitlab_release
```
> if you wish to run any commands you can add them to variable `MY_COMMAND`. The custom command will run under shell `/bin/sh`. This command is set to run before the version bump commit is conducted so any changes you wish to add as part of the version bump, you can do here as long as you `git add {changed file name}`.
## CI/CD Variables required
| var name | Description |
|:----:|:----|
| GIT_COMMIT_TOKEN | *this must be a personal token that has write access to the repository* |
## Job Workflow
This CI job's workflow is:
1. updates the changelog from the commits
1. commit the changelog to git
1. adds a `git tag` to the changelog commit.
1. pushes the change back to the repo
1. creates a git release from the `git tag`
## Artifacts
- None
## License
To view the license for this folder and any sub-folders, refer [here](https://gitlab.com/nofusscomputing/projects/gitlab-ci)

View File

@ -0,0 +1,6 @@
#-*- coding: utf-8 -*-
import cli
if __name__ == '__main__':
cli.main()

View File

@ -0,0 +1,14 @@
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import sys
from commits import Commits
def main():
commits = Commits()
if commits.check():
sys.exit(0)
else:
sys.exit(1)

View File

@ -0,0 +1,139 @@
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import os
import re
import git
class Commits:
def __init__(self):
self._repository = git.Repo(os.getcwd())
self._failed = []
merge_base = self._repository.merge_base('development', self._repository.active_branch)
self._merge_base = str(merge_base[0])
self.fetch_all()
def fetch_all(self) -> bool: # get the commits and filter to only the current branch
commits = list(self._repository.iter_commits(self._repository.active_branch))
clean = True
branch_commits = []
for remove in commits:
if str(remove).lower() == self._merge_base.lower():
clean = False
if clean:
branch_commits.append(remove)
self._commits = branch_commits
def fetch(self, sha1:str) -> str: # fetch a single git message
for commit in self._commits:
if str(commit).lower() == sha1.lower():
return commit.message
return ''
# Get the last line of the commit message if has more than 2 lines
def footer(self, git_message:str) -> list:
footer = None
if git_message.count("\n") > 2:
footer_line = git_message.split("\n")
footer_line = footer_line[(len(footer_line)-1)]
commit_footer = re.findall(r"([\!|\#][\d|not]+)", str(git_message))
if len(commit_footer) > 0:
footer = commit_footer
else:
footer = False
return footer
def junit(self) -> bool:
junit_testsuites = '''<testsuites
id="Commits Messages Check"
name="commit footer references"
errors="{0}"
tests="{1}"
time="0">'''.format(len(self._failed), len(self._commits))
junit_testsuite = '''<testsuite
errors="{0}"
name="commit footer references"
tests="{1}">'''.format(len(self._failed), len(self._commits))
junit_testcase = ''
for commit in self._failed:
for key in commit:
junit_testcase += '''
<testcase
classname="{0}"
file="{2}/gitlab_release/README.md"
line="0"
name="No commit footer references found"
time="0"
timestamp="date">
<failure
message="No References in the commit footer"
type="validation">{1}</failure>
<system-out>
<![CDATA[ {1} ]]>
</system-out>
<system-err>
<![CDATA[ {1} ]]>
</system-err>
</testcase>'''.format(key, str(commit[key]), os.environ['ROOT_DIR'])
if junit_testcase == '':
junit_testcase = '''<testcase
classname="Commit footer references check"
file="' + os.environ['ROOT_DIR'] + '/gitlab_release/README.md"
name="has commit footer references"/>'''
junit_close = '</testsuite></testsuites>'
print(str(junit_testsuites))
print(str(junit_testsuite))
print(str(junit_testcase))
print(str(junit_close))
def check(self) -> bool:
check = True
for commit in self._commits:
if commit.message.count('\n') < 3:
continue
footer = self.footer(commit.message)
if footer is False:
failed = {str(commit): str(commit.message)}
self._failed.append(failed)
continue
self.junit()
if len(self._failed) > 0:
check = False
return check

View File

@ -0,0 +1,13 @@
from setuptools import setup
setup(
name='NFC commit footer validation',
version='0.1.0',
py_modules=['main'],
license='MIT',
long_description='this is a long description',
install_requires=['gitpython'],
entry_points = {
'console_scripts': ['commit_footer=cli:main'],
},
)

View File

@ -1,16 +1,38 @@
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import os
import re
import git as Git
from commitizen import git
from commitizen.cz.base import BaseCommitizen
class nfc_cz(BaseCommitizen):
class NoFussCz(BaseCommitizen):
bump_pattern = r"^(break|new|fix|feat|hotfix|ci|docs)"
bump_map = {"break": "MAJOR", "new": "MINOR", "feat": "MINOR","fix": "PATCH", "hotfix": "PATCH", "ci": "PATCH", "docs": "PATCH"}
bump_map = {
"break": "MAJOR",
"new": "MINOR",
"feat": "MINOR",
"fix": "PATCH",
"hotfix": "PATCH",
"ci": "PATCH",
"docs": "PATCH"
}
changelog_pattern = "^(break|new|fix|feat|hotfix|refactor|ci|docs)"
change_type_order = ["BREAKING CHANGE", "feat", "fix", "refactor", "perf", "docs", "ci"]
change_type_order = [
"BREAKING CHANGE",
"feat",
"fix",
"refactor",
"perf",
"docs",
"ci"
]
change_type_map = {
"feat": "Features",
"fix": "Bug Fixes",
@ -25,8 +47,63 @@ class nfc_cz(BaseCommitizen):
def changelog_message_builder_hook(self, parsed_message: dict, commit: git.GitCommit) -> dict:
rev = commit.rev
m = parsed_message["message"]
parsed_message["message"] = f"[{rev}]($CI_PROJECT_URL/-/commit/{rev}) - {m}"
rev_short = str(rev)[0:8]
repo = Git.Repo(os.getcwd())
tree = list(repo.iter_commits(repo.active_branch))
footer_references = ''
for item in tree:
if item.message.count("\n") > 2 and str(item).lower() == rev.lower():
footer_line = item.message.split("\n")
footer_line = footer_line[(len(footer_line)-1)]
footer = re.findall(r"([\!|\#][0-9]+)", str(item.message))
try:
for reference in footer:
if '#' in reference:
footer_references += ' ' + str(
'[{0}]({1}/-/issues/{2})'.format(
reference,
os.environ['CI_PROJECT_URL'],
reference.replace('#', '')
)
)
if '!' in reference:
footer_references += ' ' + str(
'[{0}]({1}/-/merge_requests/{2})'.format(
reference,
os.environ['CI_PROJECT_URL'],
reference.replace('!', '')
)
)
except Exception:
pass
add_references = True
try:
if os.environ['CHANGELOG_FOOTER_REFERENCES'] == 'False':
add_references = False
except KeyError: # continue if the os var doesn't exist
add_references = True
if footer_references != '' and add_references:
footer_references = ' [' + footer_references + ' ]'
else:
footer_references = ''
msg = parsed_message["message"]
project_url = os.environ['CI_PROJECT_URL']
parsed_message["message"] = f"[{rev_short}]({project_url}/-/commit/{rev}) - {msg}{footer_references}"
return parsed_message
@ -37,4 +114,4 @@ class nfc_cz(BaseCommitizen):
raise NotImplementedError("Not Implemented yet")
discover_this = nfc_cz
discover_this = NoFussCz

View File

@ -6,5 +6,5 @@ setup(
py_modules=['cz_nfc'],
license='MIT',
long_description='this is a long description',
install_requires=['commitizen']
install_requires=['commitizen', 'gitpython']
)

View File

@ -1 +1 @@
commitizen
commitizen==2.21.0

View File

@ -0,0 +1,5 @@
{
"outputFormatters": [
[ "markdownlint-cli2-formatter-junit", { "name": "markdown.junit.xml" } ]
]
}

26
lint/.yamllint.yaml Normal file
View File

@ -0,0 +1,26 @@
---
extends: default
rules:
braces: {max-spaces-inside: 1, level: error}
brackets: {max-spaces-inside: 1, level: error}
colons: {max-spaces-after: -1, level: error}
commas: {max-spaces-after: -1, level: error}
comments: disable
comments-indentation: disable
document-start: disable
empty-lines:
max: 2
max-start: 1
max-end: 1
level: error
hyphens: {level: error}
# indentation: disable
indentation:
spaces: consistent
key-duplicates: enable
line-length: disable
new-line-at-end-of-file: disable
new-lines: {type: unix}
trailing-spaces: disable
truthy: disable

14
lint/CHANGELOG.md Normal file
View File

@ -0,0 +1,14 @@
# Changelog
2023-05-28 10:31:26 +0930 [bade89c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bade89c5333ca853844e224f46a2d3dafab7179d) - fix(scheduled_pipelines): if scheduled pipeline only run schedualable jobs
2023-05-24 04:40:52 +0000 [0a17fe1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0a17fe1aa320c658c05d7a693ff76af4a54e6130) - build(version): bump version 0.6.1rc1 → 0.6.1rc2
2023-05-23 13:40:13 +0930 [e26f590](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/e26f590ebcf284be949be4e1d337e1f587755446) - fix(md_linting): must lint on git tag
2023-05-23 09:10:19 +0930 [7c385b7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7c385b7552945699eb87ec3ec43169df0cb77297) - refactor(docs): pages dir renamed to docs
2023-05-22 13:43:28 +0930 [065bcbf](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/065bcbf51717e6a29205ced8859a053a2915acd7) - chore(lint): correct lint errors
2023-05-22 13:05:21 +0930 [18af7f8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/18af7f831ad2399a6ae9809c51e87f19450db1a7) - fix(markdown_lint): use new lint path
2023-05-22 13:04:11 +0930 [12d3a41](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/12d3a412ac73baff16b77488db143efd7311b542) - fix(markdown_lint): typo in config variable
2023-05-22 12:57:08 +0930 [4fa90d4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4fa90d4c4249ed8929e7dde2e7bd0e8581d0d8a7) - feat(template): use md lint config from website-template
2023-05-22 12:00:25 +0930 [38d4690](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/38d469007a388312c71a61916275d6a12aad8bbd) - feat(markdown_lint): enable specifying the lint config path
2023-05-22 11:50:28 +0930 [bce7396](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bce7396d8bbf5ec6600a3a34a05198a87c4fcc70) - refactor(markdown_lint): move md linting to lint folder
2023-05-15 15:27:13 +0930 [a754aa8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a754aa81edf1570b4e8e2e7d4a23025c8b99f314) - fix(lint): use correct path for requirements.txt
2023-05-15 15:06:11 +0930 [539e40e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/539e40e3008e24411f62f439d394db4b5e69a066) - refactor: move ansible and yaml lint job to linting folder

View File

@ -0,0 +1,70 @@
.ansible_linter_defaults:
stage: validation
variables:
ANSIBLE_LINT_PATH: defaults/ handlers/ meta/ tasks/ templates/
before_script:
- if [ "0$JOB_ROOT_DIR" == "0" ]; then ROOT_DIR=gitlab-ci; else ROOT_DIR=$JOB_ROOT_DIR ; fi
- echo "[DEBUG] ROOT_DIR[$ROOT_DIR]"
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests"
- export PYTHON_VERSION=`python -c 'import sys; version=sys.version_info[:3]; print("{0}.{1}.{2}".format(*version))'`
- apt update
- apt install --no-install-recommends -y git
- python3 -m venv env
- . env/bin/activate
- pip install --upgrade pip
- pip install -r $ROOT_DIR/lint/requirements.txt
- mkdir $PYTHON_VERSION
script:
- ansible-lint -q --nocolor --parseable $ANSIBLE_LINT_PATH > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/$PYTHON_VERSION-ansible-lint.log" 1>&1 || ANSIBLE_LINT=$?
- cat "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/$PYTHON_VERSION-ansible-lint.log" | ansible-lint-to-junit-xml > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/$PYTHON_VERSION-ansible-lint.junit.xml" 1>&1 || ANSIBLE_LINT_JUNIT=$?
- ls -la $PYTHON_VERSION
- if [ $ANSIBLE_LINT_JUNIT > 0 ]; then echo "Error ANSIBLE_LINT_JUNIT failed with $ANSIBLE_LINT_JUNIT"; fi
- if [ $ANSIBLE_LINT -ge 3 ]; then echo "ansible lint failed with $ANSIBLE_LINT"; exit $ANSIBLE_LINT; fi # don't fail the job?? 1=failed test, 2=failed command i.e. switch/flag
after_script:
- echo deactivate
artifacts:
expire_in: 3 days
when: always
paths:
- "artifacts/*"
reports:
junit:
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/*.junit.xml"
rules:
- if: '$JOB_STOP_ANSIBLE_LINT'
when: never
- if: # condition_master_branch_push
$CI_COMMIT_BRANCH == "master" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- "{defaults/**,handlers/**,inventory/**,meta/**,playbooks/**,tasks/**}/*.{yaml,yml}"
when: always
- if: # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- "{defaults/**,handlers/**,inventory/**,meta/**,playbooks/**,tasks/**}/*.{yaml,yml}"
changes:
paths:
- "{defaults/**,handlers/**,inventory/**,meta/**,playbooks/**,tasks/**}/*.{yaml,yml}"
compare_to: 'master'
when: always
- if: # condition_not_master_or_dev_push
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- "{defaults/**,handlers/**,inventory/**,meta/**,playbooks/**,tasks/**}/*.{yaml,yml}"
changes:
paths:
- "{defaults/**,handlers/**,inventory/**,meta/**,playbooks/**,tasks/**}/*.{yaml,yml}"
compare_to: 'development'
when: always
- when: never

View File

@ -0,0 +1,102 @@
.Lint_Markdown:
image: node:alpine3.14
stage: validation
variables:
MDLINT_PATHS: "**/*.md **/**/*.md **/**/**/*.md **/**/**/**/*.md **/**/**/**/**/**/*.md #CHANGELOG.md !gitlab-ci"
DEFAULT_ROOT_DIR: "./gitlab-ci"
MD_LINT_CONFIG_PATH: ""
before_script:
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/lint_markdown"
- if [ "0$JOB_ROOT_DIR" == "0" ]; then ROOT_DIR=$DEFAULT_ROOT_DIR; else ROOT_DIR=$JOB_ROOT_DIR; fi
- echo "[DEBUG] ROOT_DIR[$ROOT_DIR]"
- if [ "0$MD_LINT_CONFIG_PATH" != "0" ]; then cp "$MD_LINT_CONFIG_PATH/.markdownlint.json" $CI_PROJECT_DIR/.markdownlint.json; fi
- cp -f "$ROOT_DIR/lint/.markdownlint-cli2.jsonc" "$CI_PROJECT_DIR/.markdownlint-cli2.jsonc"
- npm install markdownlint-cli2 --global
- npm install markdownlint-cli2-formatter-junit --global
script:
- echo "[DEBUG] MDLINT_PATHS=$MDLINT_PATHS"
- markdownlint-cli2 $MDLINT_PATHS 1>&1 || EXITCODE=$?
- echo DEBUG EXITCODE[$EXITCODE]
- rm -f "$CI_PROJECT_DIR/.markdownlint-cli2.jsonc"
- if [ "0$MD_LINT_CONFIG-PATH" != "0" ]; then rm -f "$CI_PROJECT_DIR/.markdownlint.json"; fi
- mv *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/lint_markdown/markdown_lint.junit.xml"
artifacts:
expire_in: 24 hrs
when: always
paths:
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/lint_markdown/*"
reports:
junit:
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/lint_markdown/*.junit.xml"
rules:
- if: '$JOB_STOP_LINT_MARKDOWN'
when: never
- if: # condition_any_branch_push
$CI_COMMIT_BRANCH != null &&
$CI_COMMIT_TAG == null &&
$CI_PIPELINE_SOURCE == "push"
exists:
# - "**.md"
# - "**/**.md"
- '{!docs/**,!pages/**,!gitlab-ci/**,!website-template/**,**}/*.md'
when: always
- when: never
.Lint_Markdown_Docs:
variables:
MDLINT_PATHS: "docs/*.md docs/**/*.md docs/**/**/*.md docs/**/**/**/*.md docs/**/**/**/**/**/*.md #CHANGELOG.md !gitlab-ci !website-template"
MD_LINT_CONFIG_PATH: "$CI_PROJECT_DIR/website-template"
extends: .Lint_Markdown
rules:
- if: '$JOB_STOP_LINT_MARKDOWN_DOCS'
when: never
- if: # condition_git_tag
$CI_COMMIT_TAG != null &&
$CI_COMMIT_BRANCH == null
exists:
- '{docs/**,pages/**}/*.md'
when: always
- if: # condition_master_branch_push
$CI_COMMIT_BRANCH == "master" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{docs/**,pages/**}/*.md'
when: always
- if: # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
(
$CI_PIPELINE_SOURCE == "pipeline"
||
$CI_PIPELINE_SOURCE == "push"
||
$CI_PIPELINE_SOURCE == "schedule"
)
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
exists:
- '{docs/**,pages/**}/*.md'
# No changes check # See nofusscomputing/projects/gitlab-ci#34
# changes:
# paths:
# - '{docs/**,pages/**}/*.md'
# compare_to: 'master'
when: always
- if: # condition_not_master_or_dev_push
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{docs/**,pages/**}/*.md' # works
changes:
paths:
#- '{docs/*,pages/*}*.md'
- '{docs/**,pages/**}/*.md'
compare_to: 'development'
when: always
- when: never

11
lint/requirements.txt Normal file
View File

@ -0,0 +1,11 @@
pipenv==2022.1.8
wheel
ansible
setuptools_rust
Rust
ansible-lint==6.15.0
yamllint==1.31.0
lxml
ansible-lint-junit==0.17.7
ansible-lint-to-junit-xml==0.1.0

97
lint/yaml.gitlab-ci.yaml Normal file
View File

@ -0,0 +1,97 @@
.yaml_lint_defaults:
variables:
YAML_LINT_PATH: "."
YAML_LINT_EXTRA_ARGS: "{ extends: $ROOT_DIR/lint/.yamllint.yaml, ignore: [gitlab-ci/*, website-template/*] }"
stage: validation
before_script:
- if [ "0$JOB_ROOT_DIR" == "0" ]; then ROOT_DIR=gitlab-ci; else ROOT_DIR=$JOB_ROOT_DIR ; fi
- echo "[DEBUG] ROOT_DIR[$ROOT_DIR]"
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests"
- export PYTHON_VERSION=`python -c 'import sys; version=sys.version_info[:3]; print("{0}.{1}.{2}".format(*version))'`
- apt update
- apt install --no-install-recommends -y git
- python3 -m venv env
- . env/bin/activate
- pip install --upgrade pip
- pip install -r $ROOT_DIR/lint/requirements.txt
- mkdir $PYTHON_VERSION
script:
- echo "[DEBUG] YAML_LINT_PATH[$YAML_LINT_PATH]"
- echo "[DEBUG] YAML_LINT_CONFIG[$YAML_LINT_CONFIG]"
- yamllint $YAML_LINT_PATH -f parsable -d "$(echo $YAML_LINT_EXTRA_ARGS)" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/$PYTHON_VERSION-yaml-lint.log" 1>&1 || YAML_LINT=$?
- cat "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/$PYTHON_VERSION-yaml-lint.log" | ansible-lint-to-junit-xml > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/$PYTHON_VERSION-yaml-lint.junit.xml"
- if [ $YAML_LINT > 0 ]; then echo "YAML lint failed with $YAML_LINT"; exit $YAML_LINT; fi
after_script:
- echo deactivate
artifacts:
expire_in: 3 days
when: always
paths:
- "artifacts/*"
reports:
junit:
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/*.junit.xml"
rules:
- if: '$JOB_STOP_YAML_LINT'
when: never
- if: '$CI_COMMIT_BRANCH == "master" &&
( $CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "pipeline")'
when: always
- if: '$CI_COMMIT_BRANCH &&
( $CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "pipeline")'
exists:
- '{!gitlab-ci/**/*,!website-template/**/*,!.gitlab-ci,!*gitlab-ci*,**/*,**}.{yml,yaml}'
# - ".gitlab-ci*"
# - "**/*gitlab-ci*"
changes:
paths:
- '{!gitlab-ci/**/*,!website-template/**/*,!.gitlab-ci,!*gitlab-ci*,**/*,**}.{yml,yaml}'
compare_to: 'master'
when: always
- when: never
.Gitlab_CI.Lint.YAML:
variables:
YAML_LINT_PATH: ".gitlab-ci* ./**/*gitlab-ci*"
YAML_LINT_EXTRA_ARGS: "{ extends: lint/.yamllint.yaml,ignore: [gitlab-ci/*,website-template/*] }"
extends:
- .yaml_lint_defaults
rules:
- if: # condition_master_branch_push
$CI_COMMIT_BRANCH == "master" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{*,**/**,**}/*gitlab-ci*'
when: always
- if: # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{*,**/**,**}/*gitlab-ci*'
changes:
paths:
- '{*,**/**,**}/*gitlab-ci*'
compare_to: 'master'
when: always
- if: # condition_not_master_or_dev_push
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{*,**/**,**}/*gitlab-ci*'
changes:
paths:
- '{*,**/**,**}/*gitlab-ci*'
compare_to: 'development'
when: always
- when: never

71
mkdocs.yml Normal file
View File

@ -0,0 +1,71 @@
INHERIT: website-template/mkdocs.yml
docs_dir: 'docs'
repo_name: Gitlab-CI
repo_url: https://gitlab.com/nofusscomputing/projects/gitlab-ci
edit_uri: '/-/ide/project/nofusscomputing/projects/gitlab-ci/edit/development/-/docs/'
nav:
- Home: index.md
- Articles:
- articles/index.md
- Projects:
- projects/index.md
- Gitlab CI:
- Build:
- projects/gitlab-ci/docker_build.md
- projects/gitlab-ci/mkdocs-build.md
- Chores:
- projects/gitlab-ci/ansible_playbook.md
- Linting:
- projects/gitlab-ci/markdown_lint.md
- projects/gitlab-ci/yaml_lint.md
- Publish:
- projects/gitlab-ci/docker_publish.md
- Templates:
- projects/gitlab-ci/templates/index.md
- projects/gitlab-ci/templates/ansible_roles.md
- projects/gitlab-ci/templates/automagic.md
- projects/gitlab-ci/templates/docker_container.md
- projects/gitlab-ci/templates/documentation_mkdocs.md
- Validation:
- projects/gitlab-ci/conventional_commits.md
- projects/gitlab-ci/index.md
- projects/gitlab-ci/git_mirror.md
- projects/gitlab-ci/gitlab_release.md
- projects/gitlab-ci/python.md
- Operations:
- operations/index.md
- Contact Us: contact.md

0
mkdocs/.gitkeep Normal file
View File

134
mkdocs/.gitlab-ci.yml Normal file
View File

@ -0,0 +1,134 @@
.MKDocs_Build:
image: python:3.11.2-bullseye
stage: build
variables:
GIT_DEPTH: 0
MKDOCS_BUILD_PATH: build
MKDOCS_SOURCE_PATH: docs
DEFAULT_ROOT_DIR: './gitlab-ci'
before_script:
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"
- if [ "0$JOB_ROOT_DIR" == "0" ]; then ROOT_DIR=$DEFAULT_ROOT_DIR; else ROOT_DIR=$JOB_ROOT_DIR ; fi
- echo "[DEBUG] ROOT_DIR[$ROOT_DIR]"
- if [ ! -f "requirements.txt" ]; then pip install --upgrade pip -r $ROOT_DIR/mkdocs/requirements.txt; fi
- if [ -f "requirements.txt" ]; then pip install --upgrade pip -r $ROOT_DIR/mkdocs/requirements.txt; pip install -r requirements.txt; fi
- if [ -f "website-template/requirements.txt" ]; then pip install --upgrade pip -r $ROOT_DIR/mkdocs/requirements.txt; pip install -r website-template/requirements.txt; fi
script:
- mkdocs build --clean --strict
- mv "$MKDOCS_BUILD_PATH" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/$MKDOCS_BUILD_PATH"
- if [ "0$MKDOCS_INCLUDE_SOURCE" != "0" ]; then cp $MKDOCS_SOURCE_PATH "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/$MKDOCS_SOURCE_PATH"; fi
- ls -laR "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"
artifacts:
expire_in: 24 hrs
paths:
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"
rules:
- if: '$JOB_STOP_MKDOCS_BUILD'
when: never
- if: # condition_git_tag
$CI_COMMIT_TAG != null &&
$CI_COMMIT_BRANCH == null
exists:
- 'mkdocs.{yaml,yml}'
when: always
# - if: # condition_master_branch_push
# $CI_COMMIT_BRANCH == "master" &&
# $CI_PIPELINE_SOURCE == "push"
# exists:
# - 'mkdocs.{yaml,yml}'
# when: always
- if: # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
(
$CI_PIPELINE_SOURCE == "pipeline"
||
$CI_PIPELINE_SOURCE == "push"
||
$CI_PIPELINE_SOURCE == "schedule"
)
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
exists:
- 'mkdocs.{yaml,yml}'
# No changes check # See nofusscomputing/projects/gitlab-ci#34
# changes:
# paths:
# - '{docs/**,pages/**}/*.md'
# compare_to: 'master'
when: always
- if: # condition_not_master_or_dev_push
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- 'mkdocs.{yaml,yml}'
changes:
paths:
- '{docs/**,pages/**}/*.md'
compare_to: 'development'
when: always
- when: never
.MKDocs_Build_Docs:
extends: .MKDocs_Build
variables:
MKDOCS_SOURCE_PATH: docs
rules:
- if: '$JOB_STOP_MKDOCS_BUILD'
when: never
# Build docs on tag so they can be downloaded from the tag job and are always available.
- if: # condition_git_tag
$CI_COMMIT_TAG != null &&
$CI_COMMIT_BRANCH == null
exists:
- '{docs/**,pages/**}/*.md'
when: always
# - if: # condition_master_branch_push
# $CI_COMMIT_BRANCH == "master" &&
# $CI_PIPELINE_SOURCE == "push"
# exists:
# - '{docs/**,pages/**}/*.md'
# when: always
- if: # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
(
$CI_PIPELINE_SOURCE == "pipeline"
||
$CI_PIPELINE_SOURCE == "push"
||
$CI_PIPELINE_SOURCE == "schedule"
)
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
exists:
- 'mkdocs.{yaml,yml}'
# No changes check # See nofusscomputing/projects/gitlab-ci#34
# changes:
# paths:
# - '{docs/**,pages/**}/*.md'
# compare_to: 'master'
when: always
- if: # condition_not_master_or_dev_push
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{docs/**,pages/**}/*.md'
changes:
paths:
- '{docs/**,pages/**}/*.md'
compare_to: 'development'
when: always
- when: never

19
mkdocs/CHANGELOG.md Normal file
View File

@ -0,0 +1,19 @@
# Changelog
2023-05-28 10:31:26 +0930 [bade89c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bade89c5333ca853844e224f46a2d3dafab7179d) - fix(scheduled_pipelines): if scheduled pipeline only run schedualable jobs
2023-05-24 04:40:52 +0000 [0a17fe1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0a17fe1aa320c658c05d7a693ff76af4a54e6130) - build(version): bump version 0.6.1rc1 → 0.6.1rc2
2023-05-23 09:46:43 +0930 [7a9aca3](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7a9aca3a54b1faacb7e286bade84aff0ff4fd2e5) - fix(mkdocs): default to docs directory as root
2023-05-22 18:05:24 +0930 [71a335c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/71a335c2667505c199bd67446327cd8794de5f52) - feat(mkdocs): install website-template requirements
2023-05-22 13:20:27 +0930 [a0b6d05](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a0b6d05a0f3f0fa84c825007f6ec9f28c945f3ef) - feat(mkdocs_build): always build
2023-05-22 13:01:18 +0930 [6d2e50e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/6d2e50e947839576f098bd7700e00b9d6ab4be1e) - feat(mkdocs_build): add manual build
2023-05-21 15:59:14 +0930 [dacb9f2](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/dacb9f22dd9aee1ff741c7ac8078912d9a2b0dbf) - refactor(mkdocs): use locked version from website repo
2023-05-21 15:43:45 +0930 [5556a57](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5556a57ea5588d4f0cd1434bfdde5cd77e3b4f5c) - feat(mkdocs): only run on success
2023-05-21 15:41:05 +0930 [1ec2666](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1ec2666e8565d5206aefaf5462f0f83f74fbbcb7) - docs(mkdocs): moved to pages folder
2023-05-15 00:18:38 +0000 [a3fdca8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a3fdca83bf7acb58d47792a66d1cd0728747361c) - build(version): bump version 0.6.1rc0 → 0.6.1rc1
2022-01-25 00:08:05 +0000 [ce1cc01](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/ce1cc017e26ff7f6cee586cc7d98e4d292275672) - build(version): bump version 0.6.0 → 0.6.1rc0
2022-01-24 06:33:24 +0000 [46cc1fb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/46cc1fbb6a878e485af39e679b5184a9912c2e7f) - build(version): bump version 0.5.0 → 0.6.0
2022-01-24 14:08:14 +0930 [a2d705d](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a2d705deb1f3898b6d5fa4d55bd995b1a7ad4b68) - ci(mkdcos): mkdocs requirements.txt had a '\n' in the filename. renamed.
2022-01-23 05:31:06 +0000 [906f09e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/906f09e2d3285681bd982d65eda3f56cf5a5169e) - feat(mkdocs_build): use a pip file for job so that licence scanning can function.
2022-01-23 05:18:27 +0000 [18c2e23](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/18c2e2312896aa0ba07050d28155c7aaca2aee5c) - chore(mkdocs): move mkdocs jobs to its own directory.
2022-01-23 04:25:35 +0000 [5a41962](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5a41962a994a54d99a3e7ab1bc0d7379ea14c1c2) - feat(mkdocs_build): move ci job dependencies to a pip file so that the ci dependency job can check versions.
2022-01-23 04:22:38 +0000 [7665e51](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7665e512a5d6e5aab3f8c0a8241d4182f3362442) - chore: add mkdocs dir for pip file.

9
mkdocs/requirements.txt Normal file
View File

@ -0,0 +1,9 @@
mkdocs==1.5.3
mkdocs-minify-plugin==0.8.0
mkdocs-material-extensions==1.3.1
wheel
mkdocs-material==9.5.6
./website-template/custom-plugins/mkdocs-plugin-tags
mkdocs-git-revision-date-localized-plugin==1.2.2
pymdown-extensions==10.7
Jinja2==3.1.3

85
python/.gitlab-ci.yml Normal file
View File

@ -0,0 +1,85 @@
.pylint_badge: &pylint_badge |
echo "{
\"PyLintScore\": \"$PyPIScore\"
}" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/badge_pylint.json"
.PyLint:
variables:
PYLINT_PATH: "/*/python-module/*/*.py"
PYLINT_RC_PATH: "/python/.pylintrc"
stage: validation
before_script:
- if [ "0$JOB_ROOT_DIR" == "0" ]; then ROOT_DIR=gitlab-ci; else ROOT_DIR=$JOB_ROOT_DIR ; fi
- echo "[DEBUG] ROOT_DIR[$ROOT_DIR]"
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME"
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests"
- export PYTHON_VERSION=`python -c 'import sys; version=sys.version_info[:3]; print("{0}.{1}.{2}".format(*version))'`
- apt update
- apt install --no-install-recommends -y git
- python3 -m venv env
- . env/bin/activate
- pip install --upgrade pip
- pip install -r $ROOT_DIR/python/requirements.txt
- mkdir $PYTHON_VERSION
script:
- PYLINT_PATH=$ROOT_DIR$PYLINT_PATH
- echo "[DEBUG] PYLINT_PATH[$PYLINT_PATH]"
- PYLINT_RC_PATH=$ROOT_DIR$PYLINT_RC_PATH
- echo "[DEBUG] PYLINT_RC_PATH[$PYLINT_RC_PATH]"
- python3 -m pylint --rcfile $PYLINT_RC_PATH --exit-zero --output-format=pylint_gitlab.GitlabCodeClimateReporter $PYLINT_PATH > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/gl-code-quality-report.json"
- python3 -m pylint --rcfile $PYLINT_RC_PATH --exit-zero --output-format=pylint_gitlab.GitlabPagesHtmlReporter $PYLINT_PATH > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/gl-code-quality-report.html"
- PyPIScore=$(python3 -m pylint --rcfile $PYLINT_RC_PATH --exit-zero $PYLINT_PATH | sed -n 's/^Your code has been rated at \([-0-9./]*\).*/\1/p')
- *pylint_badge
after_script:
- echo deactivate
artifacts:
expire_in: 1 days
when: always
paths:
- "artifacts/*"
reports:
codequality: "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/tests/gl-code-quality-report.json"
rules:
- if: # condition_master_branch_push
$CI_COMMIT_BRANCH == "master" &&
$CI_PIPELINE_SOURCE == "push"
exists:
#- '{**/,*,!gitlab-ci/**,!website-template/**}*.py'
- '{**/,*}*.py'
when: always
- if: # condition_development_branch_push
$CI_COMMIT_BRANCH == "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
#- '{**/,*,!gitlab-ci/**,!website-template/**}*.py'
- '{**/,*}*.py'
changes:
paths:
#- '{**/,*,!gitlab-ci/**,!website-template/**}*.py'
- '{**/,*}*.py'
compare_to: 'master'
when: always
- if: # condition_not_master_or_dev_push
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
#- '{**/,*,!gitlab-ci/**,!website-template/**}*.py'
- '{**/,*}*.py'
changes:
paths:
#- '{**/,*,!gitlab-ci/**,!website-template/**}*.py'
- '{**/,*}*.py'
compare_to: 'development'
when: always
- when: never

5
python/.pylintrc Normal file
View File

@ -0,0 +1,5 @@
[MASTER]
disable=
C0114, # missing-module-docstring
C0115, # missing-class-docstring
C0116, # missing-function-docstring

16
python/CHANGELOG.md Normal file
View File

@ -0,0 +1,16 @@
# Changelog
2023-05-28 10:31:26 +0930 [bade89c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bade89c5333ca853844e224f46a2d3dafab7179d) - fix(scheduled_pipelines): if scheduled pipeline only run schedualable jobs
2023-05-24 04:40:52 +0000 [0a17fe1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0a17fe1aa320c658c05d7a693ff76af4a54e6130) - build(version): bump version 0.6.1rc1 → 0.6.1rc2
2023-05-15 00:18:38 +0000 [a3fdca8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a3fdca83bf7acb58d47792a66d1cd0728747361c) - build(version): bump version 0.6.1rc0 → 0.6.1rc1
2023-05-13 15:35:28 +0930 [408e4ea](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/408e4eab9e1f61004f1e38af6d1531747b7da99b) - refactor: move docs as part of restructure
2022-01-25 00:08:05 +0000 [ce1cc01](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/ce1cc017e26ff7f6cee586cc7d98e4d292275672) - build(version): bump version 0.6.0 → 0.6.1rc0
2022-01-24 06:33:24 +0000 [46cc1fb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/46cc1fbb6a878e485af39e679b5184a9912c2e7f) - build(version): bump version 0.5.0 → 0.6.0
2022-01-16 00:09:42 +0000 [1ef6c41](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1ef6c41818c40183f8019ea5cde48b4278e4d694) - build(version): bump version 0.4.0 → 0.5.0
2022-01-15 03:53:53 +0000 [5c9000a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/5c9000a74859504ed64bbefa1fd193f80a2b69c2) - build(version): bump version 0.3.1 → 0.4.0
2022-01-11 07:03:09 +0000 [7751fd9](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7751fd9494f610fff0ea16bd303bfe62d0034eec) - build(version): bump version 0.3.0 → 0.3.1
2021-08-12 15:06:07 +0930 [4b6cc31](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4b6cc3176fc4acc3b7dbb954162802af9cbb4c68) - fix(pylint): install the required packages for files being checked
2021-08-12 14:49:00 +0930 [936299a](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/936299aefc6eadf9cbfec3152b352b321969cfab) - fix(pylint): fix bug introduced in code quality commit
2021-08-12 14:04:32 +0930 [73e061e](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/73e061e649e8fbeee34c6d18cf1f901b394a1f26) - build(pylint): added .pylintrc to exclude some rules
2021-08-12 03:32:36 +0000 [389bc08](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/389bc08d7686153fb374aa83d440c35c9b4eac90) - build(version): bump version 0.3.0rc1 → 0.3.0
2021-08-11 15:51:45 +0930 [d610562](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/d61056243804728e059b99fce1644a8cc37230bb) - feat(python_linting): added ci job, python linting, code quality and scoring

4
python/requirements.txt Normal file
View File

@ -0,0 +1,4 @@
pylint==2.9.6
pylint-gitlab==0.3.0
gitpython==3.1.18
commitizen==2.17.13

View File

@ -1,11 +1,9 @@
#!/bin/sh
for D in *; do
if [ -d "${D}" ]; then
if [ "0${D}" != "0website-template" ] && [ "0${D}" != "0docs" ]; then
echo "[DEBUG] Creating changelog for sub-folder: ${D}"
CHANGELOG_DATA=$(git log --pretty="format:%ci [%h](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/%H) - %s " --follow -- "${D}")
@ -17,5 +15,6 @@ for D in *; do
git add ${D}/CHANGELOG.md
fi
fi
done

18
template/CHANGELOG.md Normal file
View File

@ -0,0 +1,18 @@
# Changelog
2023-05-28 10:31:26 +0930 [bade89c](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bade89c5333ca853844e224f46a2d3dafab7179d) - fix(scheduled_pipelines): if scheduled pipeline only run schedualable jobs
2023-05-27 15:24:21 +0930 [19dde28](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/19dde28526d5e3f7694da3246505537aa2e19c10) - chore: fix linting error
2023-05-27 15:21:27 +0930 [c5d27e8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/c5d27e832e100156cb99c5ca580fd5a8eb600e0f) - feat(auto_jobs): created initial template to auto-create jobs
2023-05-24 04:40:52 +0000 [0a17fe1](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0a17fe1aa320c658c05d7a693ff76af4a54e6130) - build(version): bump version 0.6.1rc1 → 0.6.1rc2
2023-05-23 12:37:40 +0930 [bef7684](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bef76847ec686fcff92229d7b9be0bcfc7b267da) - feat(template_website): enable specifying the url slug
2023-05-23 09:10:19 +0930 [7c385b7](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/7c385b7552945699eb87ec3ec43169df0cb77297) - refactor(docs): pages dir renamed to docs
2023-05-22 13:45:03 +0930 [0b9e737](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/0b9e7375c911d65e06b0d801755449ab31cb45ea) - fix(template): use correct path for build artifact
2023-05-22 13:43:28 +0930 [065bcbf](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/065bcbf51717e6a29205ced8859a053a2915acd7) - chore(lint): correct lint errors
2023-05-22 13:20:54 +0930 [8e2a233](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/8e2a233814bd76ebff3dd8ed5a79afe307a84755) - feat(template): always deploy to pages on dev manual other
2023-05-22 13:13:59 +0930 [1b59d62](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/1b59d62348465cc9cc069d5ee23e759316fa9b3c) - refactor(template_website): adjust names of jobs
2023-05-22 12:57:08 +0930 [4fa90d4](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/4fa90d4c4249ed8929e7dde2e7bd0e8581d0d8a7) - feat(template): use md lint config from website-template
2023-05-22 11:50:28 +0930 [bce7396](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/bce7396d8bbf5ec6600a3a34a05198a87c4fcc70) - refactor(markdown_lint): move md linting to lint folder
2023-05-21 16:40:44 +0930 [16d47d5](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/16d47d5e350e1c78f72c97780ed1732a43927fcc) - feat(website): add pages job for website
2023-05-21 15:53:54 +0930 [91a50eb](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/91a50eb15bd92ca65481a73c6f095681281941fe) - feat(template): created website job template
2023-05-17 15:41:09 +0930 [a90ccb8](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/a90ccb81772e295cebe89d7a9c32ab700e19884d) - refactor(docker): move docker jobs to their own file
2023-05-17 15:38:11 +0930 [c34e382](https://gitlab.com/nofusscomputing/projects/gitlab-ci/-/commit/c34e382a22cd39874abd8fb5116e831e888db8af) - refactor: use name that makes sense

View File

@ -0,0 +1,29 @@
# This gitlab-ci file is used for creating docker images.
# by including this file, the jobs will be autocreated.
include:
- local: $JOB_ROOT_DIR/.gitlab-ci_common.yaml
- local: $JOB_ROOT_DIR/lint/ansible.gitlab-ci.yaml
- local: $JOB_ROOT_DIR/conventional_commits/.gitlab-ci.yml
- local: $JOB_ROOT_DIR/git_push_mirror/.gitlab-ci.yml
- local: $JOB_ROOT_DIR/gitlab_release/.gitlab-ci.yml
Ansible Lint (python 3.11):
variables:
ANSIBLE_LINT_PATH: defaults/ handlers/ meta/ tasks/ templates/
extends:
- .ansible_linter_defaults
image: python:3.11-slim
resource_group: build
needs: []
Gitlab Release:
extends:
- .gitlab_release
Github (Push --mirror):
extends:
- .git_push_mirror

View File

@ -0,0 +1,52 @@
# This gitlab-ci file is used for the autocreation of ci jobs.
# by including this file, the jobs will be autocreated if they are detected as required.
variables:
NFC_AUTO_JOBS: 'true'
include:
- local: $JOB_ROOT_DIR/.gitlab-ci_common.yaml
# Chore
- local: $JOB_ROOT_DIR/automation/.gitlab-ci-ansible.yaml
# Validation
- local: $JOB_ROOT_DIR/lint/ansible.gitlab-ci.yaml
- local: $JOB_ROOT_DIR/conventional_commits/.gitlab-ci.yml
# sync
- local: $JOB_ROOT_DIR/git_push_mirror/.gitlab-ci.yml
# release
- local: $JOB_ROOT_DIR/gitlab_release/.gitlab-ci.yml
# templates
- local: $JOB_ROOT_DIR/template/ansible-role.gitlab-ci.yaml
- local: $JOB_ROOT_DIR/template/docker-image.gitlab-ci.yaml
- local: $JOB_ROOT_DIR/template/mkdocs-documentation.gitlab-ci.yaml
#
# Chores
#
Update Git Submodules:
extends: .ansible_playbook_git_submodule
Search Issues for git patches:
extends: .ansible_playbook_mr_from_issue_comment_patch
#
# Release
#
Gitlab Release:
extends:
- .gitlab_release
#
# Sync
#
Github (Push --mirror):
extends:
- .git_push_mirror
needs: []

View File

@ -0,0 +1,85 @@
# This gitlab-ci file is used for creating docker images.
# by including this file, the jobs will be autocreated.
include:
- local: $JOB_ROOT_DIR/.gitlab-ci_common.yaml
- local: $JOB_ROOT_DIR/conventional_commits/.gitlab-ci.yml
- local: $JOB_ROOT_DIR/docker/build.gitlab-ci.yaml
- local: $JOB_ROOT_DIR/docker/publish.gitlab-ci.yaml
- local: $JOB_ROOT_DIR/git_push_mirror/.gitlab-ci.yml
- local: $JOB_ROOT_DIR/gitlab_release/.gitlab-ci.yml
variables:
# Available platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/arm64, linux/riscv64, linux/ppc64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
# DOCKER_IMAGE_BUILD_TARGET_PLATFORMS: "linux/amd64,linux/arm64,linux/arm/v7"
DOCKER_IMAGE_BUILD_NAME: $CI_PROJECT_NAME
DOCKER_IMAGE_BUILD_REGISTRY: $CI_REGISTRY_IMAGE
DOCKER_IMAGE_BUILD_TAG: $CI_COMMIT_SHA
# DOCKER_IMAGE_PUBLISH_NAME: $CI_PROJECT_NAME
# DOCKER_IMAGE_PUBLISH_REGISTRY: docker.io/nofusscomputing
# DOCKER_IMAGE_PUBLISH_URL: https://hub.docker.com/r/nofusscomputing/$DOCKER_IMAGE_PUBLISH_NAME
# JOB_STOP_CONVENTIONAL_COMMITS: 'any_value'
# JOB_STOP_GIT_PUSH_MIRROR: 'any_value'
# GIT_SYNC_URL: "https://$GITHUB_USERNAME_ROBOT:$GITHUB_TOKEN_ROBOT@github.com/NoFussComputing/config.git" # Must be defined for job to run
# JOB_STOP_GITLAB_RELEASE: 'any value'
Docker Container:
extends: .build_docker_container
resource_group: build
needs: []
Docker.Hub.Branch.Publish:
extends: .publish-docker-hub
needs: [ "Docker Container" ]
resource_group: build
rules: # rules manually synced from docker/publish.gitlab-ci.yaml removing git tag
# - if: # condition_master_branch_push
# $CI_COMMIT_BRANCH == "master" &&
# $CI_PIPELINE_SOURCE == "push"
# exists:
# - '{dockerfile,dockerfile.j2}'
# when: always
- if: # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{dockerfile,dockerfile.j2}'
changes:
paths:
- '{dockerfile,dockerfile.j2,includes/**/*}'
compare_to: 'master'
allow_failure: true
when: on_success
- when: never
Docker.Hub.Tag.Publish:
extends: .publish-docker-hub
resource_group: build
rules: # rules manually synced from docker/publish.gitlab-ci.yaml only keeping git tag
- if: # condition_git_tag
$CI_COMMIT_TAG != null &&
$CI_COMMIT_BRANCH == null
exists:
- '{dockerfile,dockerfile.j2}'
when: always
- when: never
Gitlab Release:
extends:
- .gitlab_release
Github (Push --mirror):
extends:
- .git_push_mirror

View File

@ -0,0 +1,63 @@
# This gitlab-ci file is used for creating building pages directories for nofusscomputing.com.
# by including this file, the jobs will be autocreated and only for pages jobs.
include:
- local: $JOB_ROOT_DIR/.gitlab-ci_common.yaml
- local: $JOB_ROOT_DIR/mkdocs/.gitlab-ci.yml
- local: $JOB_ROOT_DIR/lint/markdown.gitlab-ci.yaml
Documentation.Lint:
extends: .Lint_Markdown_Docs
needs: []
Documentation.Build:
extends: .MKDocs_Build_Docs
needs: [ 'Documentation.Lint' ]
resource_group: Documentation
# this name must always be called 'pages' so that gitlab pages work
pages:
stage: deploy
resource_group: Documentation
variables:
GIT_STRATEGY: none
script:
- mv "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build" public
needs: [ 'Documentation.Build' ]
environment:
name: Gitlab Pages
url: $CI_PAGES_URL/$PAGES_ENVIRONMENT_PATH
artifacts:
paths:
- public
rules:
- if: '$JOB_STOP_GITLAB_PAGES'
when: never
- if: # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{docs/**,pages/**}/*.md'
changes:
paths:
- '{docs/**,pages/**}/*.md'
compare_to: 'master'
when: always
- if: # condition_not_master_or_dev_push
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{docs/**,pages/**}/*.md'
changes:
paths:
- '{docs/**,pages/**}/*.md'
compare_to: 'development'
allow_failure: true
when: manual
- when: never

1
website-template Submodule

Submodule website-template added at db172f4594