ci(gitlab-ci): use GitLab CI as Travis CI replacement
* Automated using https://github.com/myii/ssf-formula/pull/275
This commit is contained in:
		
							parent
							
								
									c0485fb345
								
							
						
					
					
						commit
						890f3aebc6
					
				
							
								
								
									
										156
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										156
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,156 @@ | ||||
| # -*- coding: utf-8 -*- | ||||
| # vim: ft=yaml | ||||
| --- | ||||
| ############################################################################### | ||||
| # Define all YAML node anchors | ||||
| ############################################################################### | ||||
| .node_anchors: | ||||
|   # `only` (also used for `except` where applicable) | ||||
|   only_branch_master_parent_repo: &only_branch_master_parent_repo | ||||
|     - 'master@saltstack-formulas/postfix-formula' | ||||
|   # `stage` | ||||
|   stage_lint: &stage_lint 'lint' | ||||
|   stage_release: &stage_release 'release' | ||||
|   stage_test: &stage_test 'test' | ||||
|   # `image` | ||||
|   image_commitlint: &image_commitlint 'myii/ssf-commitlint:11' | ||||
|   image_dindruby: &image_dindruby 'myii/ssf-dind-ruby:2.7.1-r3' | ||||
|   image_precommit: &image_precommit | ||||
|     name: 'myii/ssf-pre-commit:2.9.2' | ||||
|     entrypoint: ['/bin/bash', '-c'] | ||||
|   image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14' | ||||
|   # `services` | ||||
|   services_docker_dind: &services_docker_dind | ||||
|     - 'docker:dind' | ||||
|   # `variables` | ||||
|   # https://forum.gitlab.com/t/gitlab-com-ci-caching-rubygems/5627/3 | ||||
|   # https://bundler.io/v1.16/bundle_config.html | ||||
|   variables_bundler: &variables_bundler | ||||
|     BUNDLE_CACHE_PATH: '${CI_PROJECT_DIR}/.cache/bundler' | ||||
|     BUNDLE_WITHOUT: 'production' | ||||
|   # `cache` | ||||
|   cache_bundler: &cache_bundler | ||||
|     key: '${CI_JOB_STAGE}' | ||||
|     paths: | ||||
|       - '${BUNDLE_CACHE_PATH}' | ||||
| 
 | ||||
| ############################################################################### | ||||
| # Define stages and global variables | ||||
| ############################################################################### | ||||
| stages: | ||||
|   - *stage_lint | ||||
|   - *stage_test | ||||
|   - *stage_release | ||||
| variables: | ||||
|   DOCKER_DRIVER: 'overlay2' | ||||
| 
 | ||||
| ############################################################################### | ||||
| # `lint` stage: `commitlint` & `pre-commit` | ||||
| ############################################################################### | ||||
| commitlint: | ||||
|   stage: *stage_lint | ||||
|   image: *image_commitlint | ||||
|   script: | ||||
|     # Add `upstream` remote to get access to `upstream/master` | ||||
|     - 'git remote add upstream ${CI_PROJECT_URL}.git' | ||||
|     - 'git fetch --all' | ||||
|     # Set default commit hashes for `--from` and `--to` | ||||
|     - 'export COMMITLINT_FROM="$(git merge-base upstream/master HEAD)"' | ||||
|     - 'export COMMITLINT_TO="${CI_COMMIT_SHA}"' | ||||
|     # `coqbot` adds a merge commit to test PRs on top of the latest commit in | ||||
|     # the repo; amend this merge commit message to avoid failure | ||||
|     - | | ||||
|       if [ "${GITLAB_USER_LOGIN}" = "coqbot" ] \ | ||||
|       && [ "${CI_COMMIT_BRANCH}" != "master" ]; then | ||||
|         git commit --amend -m \ | ||||
|           'chore: reword coqbot merge commit message for commitlint' | ||||
|         export COMMITLINT_TO=HEAD | ||||
|       fi | ||||
|     # Run `commitlint` | ||||
|     - 'commitlint --from "${COMMITLINT_FROM}" | ||||
|                   --to   "${COMMITLINT_TO}" | ||||
|                   --verbose' | ||||
| 
 | ||||
| pre-commit: | ||||
|   stage: *stage_lint | ||||
|   image: *image_precommit | ||||
|   # https://pre-commit.com/#gitlab-ci-example | ||||
|   variables: | ||||
|     PRE_COMMIT_HOME: '${CI_PROJECT_DIR}/.cache/pre-commit' | ||||
|   cache: | ||||
|     key: '${CI_JOB_NAME}' | ||||
|     paths: | ||||
|       - '${PRE_COMMIT_HOME}' | ||||
|   script: | ||||
|     - 'pre-commit run --all-files --color always --verbose' | ||||
| 
 | ||||
| ############################################################################### | ||||
| # Define `test` template | ||||
| ############################################################################### | ||||
| .test_instance: | ||||
|   stage: *stage_test | ||||
|   image: *image_dindruby | ||||
|   services: *services_docker_dind | ||||
|   variables: *variables_bundler | ||||
|   cache: *cache_bundler | ||||
|   before_script: | ||||
|     # TODO: This should work from the env vars above automatically | ||||
|     - 'bundle config set path "${BUNDLE_CACHE_PATH}"' | ||||
|     - 'bundle config set without "${BUNDLE_WITHOUT}"' | ||||
|     - 'bundle install' | ||||
|   script: | ||||
|     # Alternative value to consider: `${CI_JOB_NAME}` | ||||
|     - 'bin/kitchen verify "${DOCKER_ENV_CI_JOB_NAME}"' | ||||
| 
 | ||||
| ############################################################################### | ||||
| # `test` stage: each instance below uses the `test` template above | ||||
| ############################################################################### | ||||
| ## Define the rest of the matrix based on Kitchen testing | ||||
| # Make sure the instances listed below match up with | ||||
| # the `platforms` defined in `kitchen.yml` | ||||
| default-debian-10-master-py3: {extends: '.test_instance'} | ||||
| default-ubuntu-2004-master-py3: {extends: '.test_instance'} | ||||
| # default-ubuntu-1804-master-py3: {extends: '.test_instance'} | ||||
| default-centos-8-master-py3: {extends: '.test_instance'} | ||||
| default-fedora-32-master-py3: {extends: '.test_instance'} | ||||
| # default-fedora-31-master-py3: {extends: '.test_instance'} | ||||
| # default-opensuse-leap-152-master-py3: {extends: '.test_instance'} | ||||
| # default-amazonlinux-2-master-py3: {extends: '.test_instance'} | ||||
| # default-debian-10-3000-3-py3: {extends: '.test_instance'} | ||||
| # default-debian-9-3000-3-py3: {extends: '.test_instance'} | ||||
| # default-ubuntu-1804-3000-3-py3: {extends: '.test_instance'} | ||||
| # default-centos-8-3000-3-py3: {extends: '.test_instance'} | ||||
| # default-centos-7-3000-3-py3: {extends: '.test_instance'} | ||||
| # default-fedora-31-3000-3-py3: {extends: '.test_instance'} | ||||
| default-opensuse-leap-152-3000-3-py3: {extends: '.test_instance'} | ||||
| default-amazonlinux-2-3000-3-py3: {extends: '.test_instance'} | ||||
| # default-ubuntu-1804-3000-3-py2: {extends: '.test_instance'} | ||||
| # default-ubuntu-1604-3000-3-py2: {extends: '.test_instance'} | ||||
| # default-arch-base-latest-3000-3-py2: {extends: '.test_instance'} | ||||
| # default-debian-10-2019-2-py3: {extends: '.test_instance'} | ||||
| # default-debian-9-2019-2-py3: {extends: '.test_instance'} | ||||
| # default-ubuntu-1804-2019-2-py3: {extends: '.test_instance'} | ||||
| # default-ubuntu-1604-2019-2-py3: {extends: '.test_instance'} | ||||
| # default-centos-8-2019-2-py3: {extends: '.test_instance'} | ||||
| # default-centos-7-2019-2-py3: {extends: '.test_instance'} | ||||
| # default-fedora-31-2019-2-py3: {extends: '.test_instance'} | ||||
| # default-opensuse-leap-152-2019-2-py3: {extends: '.test_instance'} | ||||
| # default-amazonlinux-2-2019-2-py3: {extends: '.test_instance'} | ||||
| # default-centos-6-2019-2-py2: {extends: '.test_instance'} | ||||
| # default-amazonlinux-1-2019-2-py2: {extends: '.test_instance'} | ||||
| default-arch-base-latest-2019-2-py2: {extends: '.test_instance'} | ||||
| 
 | ||||
| ############################################################################### | ||||
| # `release` stage: `semantic-release` | ||||
| ############################################################################### | ||||
| semantic-release: | ||||
|   only: *only_branch_master_parent_repo | ||||
|   stage: *stage_release | ||||
|   image: *image_semanticrelease | ||||
|   variables: | ||||
|     MAINTAINER_TOKEN: '${GH_TOKEN}' | ||||
|   script: | ||||
|     # Update `AUTHORS.md` | ||||
|     - '${HOME}/go/bin/maintainer contributor' | ||||
|     # Run `semantic-release` | ||||
|     - 'semantic-release' | ||||
							
								
								
									
										15
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								.travis.yml
									
									
									
									
									
								
							| @ -1,6 +1,15 @@ | ||||
| # -*- coding: utf-8 -*- | ||||
| # vim: ft=yaml | ||||
| --- | ||||
| ################################################################################ | ||||
| # NOTE: This file is UNMAINTAINED; it is provided for references purposes only. | ||||
| #       No guarantees are tendered that this structure will work after 2020. | ||||
| ################################################################################ | ||||
| # * https://en.wikipedia.org/wiki/Travis_CI: | ||||
| #   - "... free open-source plans were removed in [sic] the end of 2020" | ||||
| #   - https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing | ||||
| #   - https://ropensci.org/technotes/2020/11/19/moving-away-travis/ | ||||
| ################################################################################ | ||||
| ## Machine config | ||||
| os: 'linux' | ||||
| arch: 'amd64' | ||||
| @ -22,8 +31,10 @@ script: | ||||
| ## Stages and jobs matrix | ||||
| stages: | ||||
|   - test | ||||
|   - name: 'release' | ||||
|     if: 'branch = master AND type != pull_request' | ||||
|   # # As part of the switch away from Travis CI, ensure that the `release` stage | ||||
|   # # is not run inadvertently | ||||
|   # - name: 'release' | ||||
|   #   if: 'branch = master AND type != pull_request' | ||||
| jobs: | ||||
|   include: | ||||
|     ## Define the test stage that runs the linters (and testing matrix, if applicable) | ||||
|  | ||||
| @ -9,6 +9,7 @@ extends: default | ||||
| # 2. Any SLS files under directory `test/`, which are actually state files | ||||
| # 3. Any YAML files under directory `.kitchen/`, introduced during local testing | ||||
| ignore: | | ||||
|   .cache/ | ||||
|   node_modules/ | ||||
|   test/**/states/**/*.sls | ||||
|   .kitchen/ | ||||
|  | ||||
| @ -15,12 +15,13 @@ | ||||
| /docs/AUTHORS.rst                           @saltstack-formulas/ssf | ||||
| /docs/CHANGELOG.rst                         @saltstack-formulas/ssf | ||||
| /docs/TOFS_pattern.rst                      @saltstack-formulas/ssf | ||||
| /postfix/libsaltcli.jinja                   @saltstack-formulas/ssf | ||||
| /postfix/libtofs.jinja                      @saltstack-formulas/ssf | ||||
| /*/libsaltcli.jinja                         @saltstack-formulas/ssf | ||||
| /*/libtofs.jinja                            @saltstack-formulas/ssf | ||||
| /test/integration/**/inspec.yml             @saltstack-formulas/ssf | ||||
| /test/integration/**/README.md              @saltstack-formulas/ssf | ||||
| /.gitignore                                 @saltstack-formulas/ssf | ||||
| /.cirrus.yml                                @saltstack-formulas/ssf | ||||
| /.gitlab-ci.yml                             @saltstack-formulas/ssf | ||||
| /.pre-commit-config.yaml                    @saltstack-formulas/ssf | ||||
| /.rstcheck.cfg                              @saltstack-formulas/ssf | ||||
| /.rubocop.yml                               @saltstack-formulas/ssf | ||||
|  | ||||
| @ -11,7 +11,7 @@ sed -i -e "s_^\(version:\).*_\1 ${1}_" FORMULA | ||||
| ############################################################################### | ||||
| 
 | ||||
| # Install `m2r` | ||||
| sudo -H pip install m2r | ||||
| pip3 install m2r | ||||
| 
 | ||||
| # Copy and then convert the `.md` docs | ||||
| cp ./*.md docs/ | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| module.exports = { | ||||
|   branch: 'master', | ||||
|   repositoryUrl: 'https://github.com/saltstack-formulas/postfix-formula', | ||||
|   plugins: [ | ||||
|       ['@semantic-release/commit-analyzer', { | ||||
|         preset: 'angular', | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Imran Iqbal
						Imran Iqbal