Skip to content
Snippets Groups Projects
Select Git revision
  • master default
1 result

.travis.yml

Blame
  • .travis.yml 7.70 KiB
    # -*- 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'
    dist: 'bionic'
    version: '~> 1.0'
    
    ## Language and cache config
    language: 'ruby'
    cache: 'bundler'
    
    ## Services config
    services:
      - docker
    
    ## Script to run for the test stage
    script:
      - bin/kitchen verify "${INSTANCE}"
    
    ## Stages and jobs matrix
    stages:
      - test
      # # 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)
    
        # Run all of the linters in a single job
        - language: 'node_js'
          node_js: 'lts/*'
          env: 'Lint'
          name: 'Lint: salt-lint, yamllint, rubocop, shellcheck & commitlint'
          before_install: 'skip'
          script:
            # Install and run `salt-lint`
            - pip install --user salt-lint
            - git ls-files -- '*.sls' '*.jinja' '*.j2' '*.tmpl' '*.tst'
                            | xargs salt-lint
            # Install and run `yamllint`
            # Need at least `v1.17.0` for the `yaml-files` setting
            - pip install --user yamllint>=1.17.0
            - yamllint -s .
            # Install and run `rubocop`
            - gem install rubocop
            - rubocop -d
            # Run `shellcheck` (already pre-installed in Travis)
            - shellcheck --version
            - git ls-files -- '*.sh' '*.bash' '*.ksh'
                            | xargs shellcheck
            # Install and run `commitlint`
            - npm i -D @commitlint/config-conventional
                       @commitlint/travis-cli
            - commitlint-travis
    
        # Run `pre-commit` linters in a single job
        - language: 'python'