为什么我的Travis-CI矩阵可以增加工作量?

时间:2018-11-29 15:31:40

标签: travis-ci

我不了解Travis-CI与矩阵的行为。

我的.travis.yml:

language: go
go:
  - "1.10.x"
  - "1.11.x"
env:
  matrix:
    - MONGO_SETTINGS=--auth
    - MONGO_SETTINGS=
matrix:
  include:
    - env: MONGO_SETTINGS=--auth
      before_script:
        - mongorestore -h 127.0.0.1 --port 27017 -d data integration
        - mongo data --eval 'db.createUser({user:"travis", pwd:"test", roles:["readWrite"]});'
        - mongod --dbpath=data/db --shutdown
        - sleep 10
        - mongod --dbpath=data/db $MONGO_SETTINGS  &
        - sleep 3
        - mongo data --username travis --password test --eval "db.getCollection('data').find({})"
      script:
        - go test ./... -tags=authentication
    - env: MONGO_SETTINGS=
      before_script:
        - mongorestore -h 127.0.0.1 --port 27017 -d data integration
        - mongo data --eval "db.getCollection('data').find({})"
      script:
        - go test ./...
install:
  - wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.18.tgz
  - tar xfz mongodb-linux-x86_64-3.4.18.tgz
  - export PATH=`pwd`/mongodb-linux-x86_64-3.4.18/bin:$PATH
  - mkdir -p data/db
  - mongod --dbpath=data/db &
  - sleep 3

矩阵返回6个作业

  • 1.1转到:1.10.x MONGO_SETTINGS =-auth
  • 1.2转到:1.10.x MONGO_SETTINGS =
  • 1.3转到:1.11.x MONGO_SETTINGS =-auth
  • 1.4转到:1.11.x MONGO_SETTINGS =
  • 1.5转到:1.10.x MONGO_SETTINGS =-auth
  • 1.6转到:1.10.x MONGO_SETTINGS =

为什么有1.5和1.6个工作?

在我看来,1.5和1.6等于1.1和1.2。

预期矩阵为:

  • 1.1转到:1.10.x MONGO_SETTINGS =-auth
  • 1.2转到:1.10.x MONGO_SETTINGS =
  • 1.3转到:1.11.x MONGO_SETTINGS =-auth
  • 1.4转到:1.11.x MONGO_SETTINGS =

编辑:感谢@banzaiman。我的错误是使用matrix.include添加了两个新作业。

language: go
go:
  - "1.10.x"
  - "1.11.x"
env:
  matrix:
    - MONGO_SETTINGS=--auth
    - MONGO_SETTINGS=
install:
  - wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.18.tgz
  - tar xfz mongodb-linux-x86_64-3.4.18.tgz
  - export PATH=`pwd`/mongodb-linux-x86_64-3.4.18/bin:$PATH
  - mkdir -p data/db
  - mongod --dbpath=data/db &
  - sleep 3
before_script:
  - if [[ ${MONGO_SETTINGS} = "--auth" ]]; then
        mongorestore -h 127.0.0.1 --port 27017 -d data integration;
        mongo data --eval 'db.createUser({user:"travis", pwd:"test", roles:["readWrite"]})';
        mongod --dbpath=data/db --shutdown;
        sleep 10;
        mongod --dbpath=data/db --fork --logpath mongodb.log "$MONGO_SETTINGS";
        sleep 3;
        mongo data --username travis --password test --eval "db.getCollection('data').find({})";
    else
        mongorestore -h 127.0.0.1 --port 27017 -d data integration;
        mongo data --eval "db.getCollection('data').find({})";
    fi
script:
  - if [[ ${MONGO_SETTINGS} = "--auth" ]]; then
    go test ./... -tags=authentication;
else
    go test ./...;
fi

1 个答案:

答案 0 :(得分:0)

您有一个2x2构建矩阵,其中包括:

go: - "1.10.x" - "1.11.x" env: matrix: - MONGO_SETTINGS=--auth - MONGO_SETTINGS=

matrix.include中的另外2个工作,总共6个工作。

请注意,就before_script而言,作业1.5和1.6与作业1.1和1.2的行为有所不同。从您的描述中我看不到您不想要想要的工作,因此我无法真正建议您如何进行修改。