0

我想针对两个Scala versions (2.12, 2.13)即 crossCompilation 运行 travis build,所以我为它创建了两个作业,因为日志很大,并且 travis 中的日志限制为 4 MB。所以我为它创建了两个工作。这是我的travis.yml文件。我不太擅长travis-ci。所以我正在努力用不同的 scala 版本来运行两个工作。这是我的travis.yml文件:

language: scala
jdk:
  - openjdk11
if: tag IS blank
services:
  - mysql
addons:
  apt:
    sources:
      - mysql-5.7-xenial
    packages:
      - mysql-server
dist: bionic
sudo: required
before_install:
  - echo -e "machine github.com\n  login $GITHUB_AUTH_TOKEN" > ~/.netrc
  - mysql -e 'CREATE DATABASE IF NOT EXISTS $ZZ_API_TEST_DB_NAME;'
  - sudo mysql -e "use mysql; update user set authentication_string=PASSWORD('') where user='$ZZ_API_DB_USERNAME'; update user set plugin='mysql_native_password';FLUSH PRIVILEGES;"
  - sudo mysql_upgrade -u $ZZ_API_DB_USERNAME
  - sudo service mysql restart
git:
  depth: false
env:
  global:
  - ZZ_API_DB_HOST="localhost:3306"
  - ZZ_API_TEST_DB_NAME=issue_management_test
  - ZZ_API_DB_USERNAME=root
  - ZZ_API_DB_PASSWORD=""
  - SCALA_2_12="2.12.8"
  - SCALA_2_13="2.13.3"
before_cache:
  - find $HOME/.ivy2 -name "ivydata-*.properties" -delete
  - find $HOME/.sbt -name "*.lock" -delete
cache:
  directories:
  - $HOME/.sbt/boot/scala*
  - $HOME/.sbt/cache
  - $HOME/.sbt/launchers
  - $HOME/.ivy2/cache
  - $HOME/.coursier
stages
  - version_2.12
  - version_2.13
jobs:
  include:
    - stage: version_2.12
      name: "2.12.8"
      script:
        - if [ "$TRAVIS_EVENT_TYPE" == "cron" ]; then sbt coverage $SCALA_2_12 test ; else sbt $SCALA_2_12 test; fi
      after_success:
       - sbt coverageReport coverageAggregate
      deploy:
        - provider: script
          skip_cleanup: true
          script: sbt publish
          on:
            all_branches: true
            condition: $TRAVIS_BRANCH != master || $TRAVIS_BRANCH != develop
        - provider: script
          skip_cleanup: true
          before_deploy:
            - travis/before_deploy.sh
          script: sbt publish
          on:
            branch: develop
        - provider: script
          skip_cleanup: true
          script: travis/release.sh
          on:
            branch: master
    - stage: version_2.13
      name: "2.13.3"
      script:
          - if [ "$TRAVIS_EVENT_TYPE" == "cron" ]; then sbt coverage  $SCALA_2_13 test ; else sbt $SCALA_2_13 test; fi
      after_success:
          - sbt coverageReport coverageAggregate
      deploy:
          - provider: script
            skip_cleanup: true
            script: sbt publish
            on:
              all_branches: true
              condition: $TRAVIS_BRANCH != master || $TRAVIS_BRANCH != develop
          - provider: script
            skip_cleanup: true
            before_deploy:
              - travis/before_deploy.sh
            script: sbt publish
            on:
              branch: develop
          - provider: script
            skip_cleanup: true
            script: travis/release.sh
            on:
              branch: master

我对特拉维斯不太熟悉,不知何故它没有采摘

- SCALA_2_12="2.12.8"
 - SCALA_2_13="2.13.3"

这个命令:

 - if [ "$TRAVIS_EVENT_TYPE" == "cron" ]; then sbt coverage $SCALA_2_12 test ; else sbt $SCALA_2_12 test; fi

travis 构建失败。

如何为这两个不同的任务指定两个不同的scala版本,有人请帮忙

4

1 回答 1

1

它终于奏效了,我所做的这个改变,

将 $SCALA_2_13 更改为 ++$SCALA_2_13

于 2020-08-06T18:24:41.890 回答