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
							
								
									b73fffa4b5
								
							
						
					
					
						commit
						15ed749de4
					
				
							
								
								
									
										151
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,151 @@
 | 
			
		||||
# -*- 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/php-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`
 | 
			
		||||
debian-debian-10-master-py3: {extends: '.test_instance'}
 | 
			
		||||
# ubuntu-ubuntu-1804-master-py3: {extends: '.test_instance'}
 | 
			
		||||
# redhat-centos-8-master-py3: {extends: '.test_instance'}
 | 
			
		||||
# redhat-fedora-31-master-py3: {extends: '.test_instance'}
 | 
			
		||||
# suse-opensuse-leap-151-master-py3: {extends: '.test_instance'}
 | 
			
		||||
# redhat-amazonlinux-2-master-py3: {extends: '.test_instance'}
 | 
			
		||||
# debian-debian-10-2019-2-py3: {extends: '.test_instance'}
 | 
			
		||||
# debian-debian-9-2019-2-py3: {extends: '.test_instance'}
 | 
			
		||||
ubuntu-ubuntu-1804-2019-2-py3: {extends: '.test_instance'}
 | 
			
		||||
# redhat-centos-8-2019-2-py3: {extends: '.test_instance'}
 | 
			
		||||
# redhat-fedora-31-2019-2-py3: {extends: '.test_instance'}
 | 
			
		||||
# suse-opensuse-leap-151-2019-2-py3: {extends: '.test_instance'}
 | 
			
		||||
# redhat-centos-7-2019-2-py2: {extends: '.test_instance'}
 | 
			
		||||
redhat-amazonlinux-2-2019-2-py3: {extends: '.test_instance'}
 | 
			
		||||
redhat-fedora-30-2018-3-py3: {extends: '.test_instance'}
 | 
			
		||||
# debian-debian-9-2018-3-py2: {extends: '.test_instance'}
 | 
			
		||||
# ubuntu-ubuntu-1604-2018-3-py2: {extends: '.test_instance'}
 | 
			
		||||
# redhat-centos-7-2018-3-py2: {extends: '.test_instance'}
 | 
			
		||||
suse-opensuse-leap-151-2018-3-py2: {extends: '.test_instance'}
 | 
			
		||||
# redhat-amazonlinux-1-2018-3-py2: {extends: '.test_instance'}
 | 
			
		||||
# debian-debian-8-2017-7-py2: {extends: '.test_instance'}
 | 
			
		||||
# ubuntu-ubuntu-1604-2017-7-py2: {extends: '.test_instance'}
 | 
			
		||||
# redhat-centos-6-2017-7-py2: {extends: '.test_instance'}
 | 
			
		||||
# redhat-fedora-30-2017-7-py2: {extends: '.test_instance'}
 | 
			
		||||
# suse-opensuse-leap-151-2017-7-py2: {extends: '.test_instance'}
 | 
			
		||||
# redhat-amazonlinux-1-2017-7-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'
 | 
			
		||||
							
								
								
									
										17
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								.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:
 | 
			
		||||
  allow_failures:
 | 
			
		||||
    - env: Lint_rubocop
 | 
			
		||||
@ -105,7 +116,7 @@ jobs:
 | 
			
		||||
    # - env: INSTANCE=redhat-amazonlinux-1-2018-3-py2
 | 
			
		||||
    # - env: INSTANCE=debian-debian-8-2017-7-py2
 | 
			
		||||
    # - env: INSTANCE=ubuntu-ubuntu-1604-2017-7-py2
 | 
			
		||||
    - env: INSTANCE=redhat-centos-6-2017-7-py2
 | 
			
		||||
    # - env: INSTANCE=redhat-centos-6-2017-7-py2
 | 
			
		||||
    # - env: INSTANCE=redhat-fedora-30-2017-7-py2
 | 
			
		||||
    # - env: INSTANCE=suse-opensuse-leap-151-2017-7-py2
 | 
			
		||||
    # - env: INSTANCE=redhat-amazonlinux-1-2017-7-py2
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
/php/libsaltcli.jinja                       @saltstack-formulas/ssf
 | 
			
		||||
/php/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/php-formula',
 | 
			
		||||
  plugins: [
 | 
			
		||||
      ['@semantic-release/commit-analyzer', {
 | 
			
		||||
        preset: 'angular',
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user