Итак, я нашел ответ на оба вопроса.
Во-первых, странная ошибка произошла из-за этого:
deploy:
- provider: script
script:
- do something
- do something else
- do another thing
Обычная директива script
в сборках Travis CIпринимает последовательность, но директива script
в поставщике развертывания script
отличается и принимает только одну строку, которую она вызывает как одна команда.Вы даже не можете передать многострочную строку.Все еще не работает.Я подал эту ошибку вместе с Трэвисом и до тех пор, пока она не будет исправлена, нашел временное решение этой проблемы, используя before_deploy
(ниже).
Во-вторых, если вы используете top-Директива level deploy
, тогда развертывание будет выполняться как часть этапа сборки, а не как его собственный этап.Документация по этому вопросу не ясна, но это было легко исправить.
Наконец, вы можете зашифровать только один файл, а не несколько файлов, так что, если у вас есть несколько секретных файлов, вы должны использовать Tarзаархивируйте и зашифруйте это.
Вот рабочая сборка Travis после того, как я решил все свои проблемы:
language: java
sudo: false
cache:
directories:
- "$HOME/.cache"
jobs:
include:
- stage: build
os: linux
dist: trusty
jdk: oraclejdk8
- stage: build
os: linux
dist: trusty
jdk: openjdk8
- stage: build
os: linux
dist: xenial
jdk: oraclejdk11
- stage: build
os: linux
dist: xenial
jdk: openjdk11
- stage: deploy
os: linux
dist: xenial
jdk: openjdk8
before_deploy:
- openssl aes-256-cbc -in .travis.secrets.tar.enc -out .travis.secrets.tar -d
- tar -xvf .travis.secrets.tar
- rm .travis.secrets.tar
- gpg --import travis.gpg
- rm travis.gpg
- mv settings.xml $HOME/.m2/settings.xml
deploy:
- provider: script
script: "mvn clean deploy -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -P sign -B -V -e"
on:
tags: true
skip_cleanup: true
- provider: releases
api_key:
secure: CKKEi9hoN...xbzZByUU80Q=
file_glob: true
file:
- $HOME/.m2/repository/io/path/to/project-*.pom
- $HOME/.m2/repository/io/path/to/project-*.pom.asc
on:
tags: true
stages:
- build
- name: deploy
if: tag =~ ^[0-9]+\.[0-9]+(\.[0-9]+)?(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$
install:
- gpg --version
- mvn process-resources -B -V -e
script:
- mvn test -B -V -e