107 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
---
 | 
						|
 | 
						|
dist: xenial
 | 
						|
 | 
						|
language: minimal
 | 
						|
 | 
						|
services:
 | 
						|
  - docker
 | 
						|
 | 
						|
.before_script: &auto_skip
 | 
						|
- |
 | 
						|
    if [ "false" != "$TRAVIS_PULL_REQUEST" ]; then
 | 
						|
      TRAVIS_COMMIT_RANGE="$TRAVIS_BRANCH..$TRAVIS_PULL_REQUEST_SHA"
 | 
						|
    fi
 | 
						|
    if [ "default" = "$VARIANT" ]; then
 | 
						|
      Dockerfile="$NODE_VERSION/Dockerfile"
 | 
						|
    else
 | 
						|
      Dockerfile="$NODE_VERSION/$VARIANT/Dockerfile"
 | 
						|
    fi
 | 
						|
    if [ "" = "$TRAVIS_COMMIT_RANGE" ]; then
 | 
						|
      echo "This is a new branch"
 | 
						|
    elif ! git diff --name-only "$TRAVIS_COMMIT_RANGE" -- &> /dev/null; then
 | 
						|
      echo "Change range not recognized: '$TRAVIS_COMMIT_RANGE'"
 | 
						|
    elif git diff --name-only "$TRAVIS_COMMIT_RANGE" -- | grep -Eq "^$Dockerfile$"; then
 | 
						|
      echo "Change of $Dockerfile detected."
 | 
						|
    else
 | 
						|
      echo "Skip build of $Dockerfile as it's not changed."
 | 
						|
      exit
 | 
						|
    fi
 | 
						|
 | 
						|
script: ./test-build.sh $NODE_VERSION $VARIANT
 | 
						|
 | 
						|
stages:
 | 
						|
  - Test
 | 
						|
  - Build
 | 
						|
  - name: Deploy
 | 
						|
    if: branch = master AND type IN (push)
 | 
						|
 | 
						|
jobs:
 | 
						|
  fast_finish: true
 | 
						|
  allow_failures:
 | 
						|
    - env:
 | 
						|
        - TEST=mardown_lint
 | 
						|
 | 
						|
  include:
 | 
						|
    - stage: Test
 | 
						|
      name: Markdown link check
 | 
						|
      env:
 | 
						|
        - TEST=mardown_lint
 | 
						|
      language: node_js
 | 
						|
      node_js:
 | 
						|
        - lts/*
 | 
						|
      install:
 | 
						|
        - npm i -g markdown-link-check
 | 
						|
      script:
 | 
						|
        - find . -name "*.md" | xargs -n 1 markdown-link-check
 | 
						|
 | 
						|
    - stage: Test
 | 
						|
      name: Editor Config check
 | 
						|
      language: node_js
 | 
						|
      node_js:
 | 
						|
        - lts/*
 | 
						|
      install:
 | 
						|
        - npm i -g eclint
 | 
						|
      script:
 | 
						|
        - eclint check
 | 
						|
 | 
						|
    - stage: Test
 | 
						|
      name: Doc Toc Check
 | 
						|
      language: node_js
 | 
						|
      node_js:
 | 
						|
        - lts/*
 | 
						|
      install: npm i -g doctoc
 | 
						|
      script:
 | 
						|
        - cp README.md README.md.tmp &&
 | 
						|
          doctoc --title='## Table of Contents' --github README.md &&
 | 
						|
          diff -q README.md README.md.tmp
 | 
						|
 | 
						|
    - stage: Test
 | 
						|
      name: shfmt check
 | 
						|
      script:
 | 
						|
        - docker run -it --rm -v "$(pwd)":/sh -w /sh peterdavehello/shfmt:2.6.3 shfmt -sr -i 2 -l -w -ci .
 | 
						|
        - git diff --color
 | 
						|
        - git diff --stat=220 --color --exit-code
 | 
						|
 | 
						|
    - stage: Test
 | 
						|
      name: Shell Check
 | 
						|
      script: shellcheck *.sh
 | 
						|
 | 
						|
    - stage: Test
 | 
						|
      name: .travis.yml and travis.yml.template consistency
 | 
						|
      script:
 | 
						|
        - ./update.sh -t
 | 
						|
        - git diff --stat --exit-code .travis.yml
 | 
						|
 | 
						|
    - stage: Deploy
 | 
						|
      before_script:
 | 
						|
        - |
 | 
						|
          if ! git diff --name-only "$TRAVIS_COMMIT_RANGE" -- | grep -Eq "Dockerfile$"; then
 | 
						|
            echo "Skip deployment as none of the Dockerfiles has been changed."
 | 
						|
            exit
 | 
						|
          fi
 | 
						|
      script:
 | 
						|
        - ./generate-stackbrew-pr.sh "$TRAVIS_COMMIT_RANGE"
 | 
						|
 | 
						|
    # Docker Build #
 |