Travis CI для пакетов R: ключ развертывания не найден - PullRequest
2 голосов
/ 29 января 2020

Я пытаюсь настроить пакет R с веб-сайтом pkgdown, который я хочу подключить к Travis CI. Я новичок в Трэвисе, и у меня нет ни малейшего понятия, почему он все еще не работает с ошибкой

Deploying application
Error: No deploy key found, please setup with `travis::use_travis_deploy()`
Execution halted
Script failed with status 1
failed to deploy

Выполнение вызова travis::use_travis_deploy() в RStudio возвращает

> travis::use_travis_deploy()
i Querying Github deploy keys from repo.
i Getting environment variables for `j3ypi/inductive` on Travis CI.
> Deploy keys for Travis CI (`.org`) already present. No action required.

с указанием что все так, как и должно быть. Когда Travis CI устанавливает переменные окружения, он даже говорит

Setting environment variables from repository settings
$ export TRAVIS_DEPLOY_KEY=[secure]
$ export GITHUB_PAT=[secure]

Для файла .travis.yml я ориентирован на один из пакета dplyr. Похоже на это

# R for travis: see documentation at https://docs.travis-ci.com/user/languages/r

language: r
os: linux
dist: trusty
cache: packages
latex: false

jobs:
  include:
    before_cache: Rscript -e 'remotes::install_cran("pkgdown")'
    deploy:
      provider: script
      script: Rscript -e 'pkgdown::deploy_site_github()'
      skip_cleanup: true
      github-token: $GITHUB_PAT

env:
  global:
  - _R_CHECK_FORCE_SUGGESTS_=false
  - MAKEFLAGS="-j 2"
  - TRAVIS_CXXFLAGS="-Wall -Wextra -pedantic -Werror"
  - R_REMOTES_NO_ERRORS_FROM_WARNINGS=true
  - _R_CHECK_SYSTEM_CLOCK_=FALSE

У кого-нибудь есть идея? Как ни странно, ключ развертывания на Github говорит, что он никогда не использовался. Переменные GITHUB_PAT, R_TRAVIS и R_TRAVIS_ORG указаны в .Renviron. Проверка CMD R прошла локально без каких-либо ошибок или предупреждений.

Ответы [ 3 ]

2 голосов
/ 05 февраля 2020

Для вашей настройки pkgdown::deploy_site_github() ищет клавиши s sh в неправильном месте по умолчанию. Чтобы исправить это вручную, скажите pkgdown::deploy_site_github(), где искать ключ s sh, изменив ваш .travis.yaml следующим образом:

deploy:
  provider: script
  script: Rscript -e 'pkgdown::deploy_site_github(ssh_id = Sys.getenv("TRAVIS_DEPLOY_KEY", ""))'
  skip_cleanup: true

source

1 голос
/ 01 мая 2020

По состоянию на март 2020 года от сопровождающих pkgdown рекомендуется полностью избегать этого через Travis и использовать вместо них действия Github (источник) .

1 голос
/ 02 февраля 2020

Я до сих пор не представляю, почему код, который я использовал, дал сбой, поскольку он работает для очень многих пакетов из tidyverse. Но я запустил его в конце концов.

Просто используйте tic::use_tic() из пакета ti c, чтобы правильно настроить файл .travis.yml. Файл .travis.yml будет выглядеть примерно так:

# tic documentation: https://docs.ropensci.org/tic/dev/

# OS ---------------------------------------------------------------------------
os: linux
dist: bionic

# meta -------------------------------------------------------------------------
language: r
cache:
  - packages
  - ccache
latex: false

# multiple R versions ----------------------------------------------------------
matrix:
  include:
  - r: devel
  - r: oldrel
  - r: release
    env:
    - BUILD_PKGDOWN=true

# Stages -----------------------------------------------------------------------

before_install:
  - if [ "${TRAVIS_OS_NAME}" == "osx" ]; then brew install ccache; fi
  - if [ "${TRAVIS_OS_NAME}" == "osx" ]; then export PATH="/usr/local/opt/ccache/libexec:$PATH"; fi
  - echo -e "options(Ncpus = 8, repos = structure(c(CRAN = 'https://cloud.r-project.org/')))" > $HOME/.Rprofile
  - mkdir -p $HOME/.R && echo -e 'CXX_STD = CXX14\n\nCC=ccache gcc -std=gnu99\nCXX=ccache g++\nCXX11=ccache g++ -std=gnu99\nCXX14=ccache g++ -std=gnu99\nC11=ccache g++\nC14=ccache g++\nFC=ccache gfortran\nF77=ccache gfortran' > $HOME/.R/Makevars
  - mkdir -p $HOME/.ccache && echo -e 'max_size = 5.0G\nsloppiness = include_file_ctime\nhash_dir=false' > $HOME/.ccache/ccache.conf
  - R -q -e 'if (!requireNamespace("remotes")) install.packages("remotes")'
  - R -q -e 'if (getRversion() < "3.2" && !requireNamespace("curl")) install.packages("curl")'
  - R -q -e 'remotes::install_github("ropensci/tic", upgrade = "always"); print(tic::dsl_load()); tic::prepare_all_stages()'
  - R -q -e 'tic::before_install()'
install:
  - R -q -e 'tic::install()'
before_script: R -q -e 'tic::before_script()'
script: R -q -e 'tic::script()'
after_success: R -q -e 'tic::after_success()'
after_failure: R -q -e 'tic::after_failure()'
before_deploy: R -q -e 'tic::before_deploy()'
deploy:
  provider: script
  script: R -q -e 'tic::deploy()'
  on:
    all_branches: true
after_deploy: R -q -e 'tic::after_deploy()'
after_script: R -q -e 'tic::after_script()'

# Custom user code -------------------------------------------------------------

...