- Install {tic} via r-universe to avoid re-installation issues with {pak}
- Switch to official
actions/save
andactions/restore
actions after they support to always save and restore cache - Update all templates
- Updated
actions/upload-artifact
version to v3 to silence nodejs deprecation warnings
- Bump template revision: account for GHA deprecation warnings regarding
set-output
andsave-state
- Circle CI: install pandoc in deploy stage
- Do not use RSPM binaries on R-devel (no binaries available)
- Bump templates to 2022-08-28
- Use {pak} for pkg installation and binaries on Linux (#327)
- Update instructions for building {sf} and {terra} from source (#326)
use_*_yml()
: change default template type to use only Linux runners- Add basic support for Drone CI (#325)
- Update Circle CI templates to 2022-03-01
- Remove
ccache
parts - Run nightly builds also on
main
branch
- Remove
- Update GHA and Circle CI templates to 2022-03-01
- Update to
setup-tinytex@v2
- Update to
setup-r@v2
- Update to
setup-pandoc@v2
- Update to
checkout@v3
- Update to
- Only run one set of runners in pull requests. Previously, runners were triggered both by commits to a branch and the respective pull request
- Fixed a bug in
update_yml()
which updated the wrong CI config file in certain situations
- Same as previous version.
- Add compatibility for rlang >= v1.0.0
do_pkgdown()
: Fix accidental deployments from pull requests (#308)
do_pkgdown()
now always create a.nojekyll
file for both release and development deployments. Otherwise custom fonts starting with an underscore will not be loaded as Jekyll ignores this pattern. A.nojekyll
file tells GitHub pages to not use Jekyll for serving the web page. (#307)
- Templates: install required system libs for {pkgdown} conditionally (accidentally removed in the previous template revision on 2021-06-26)
- Templates: restore installation of
libcurl4-openssl-dev
andlibgit2-dev
- Templates: On Linux, system libraries are now installed via
remotes::system_requirements()
(#300) - Instead of using an exact version tag, the core GHA actions are now referenced using a dynamic major version tag (e.g. v2 instead of v2.3.4). This includes an update of the templates to the latest revision date 2021-06-26.
do_pkgdown()
macro now also builds the site on on branches containing the wordcran
. This adds support for the {fledge} release mechanism when using both a development and release site (#303)update-tic.yml
: Remove hardcoded reference to master branchupdate_yaml()
is not in beta state anymore
- Drop Travis support (#295)
- Drop Appveyor support (#296)
- Bump templates: install required
libgit2
required by usethis v2.0.0 (tic dep)
- update peter-evans/create-pull-request action in
update-tic.yml
template to v3.5.0
- update GitHub Actions templates
- update actions/checkout to v2.3.4
- update actions/upload-artifacts to v2.2.1
- update pat-s/always-upload-cache to v2.1.3
- conditionally install pkgdown required system libs on both Linux and macOS
- Replace hardcoded references to "master" by a dynamic query of the default repo branch
use_tic()
: use GitHub Actions as the default provider for all platforms- Copy over GitHub authentication and SSH helpers from {travis}
update_yml()
: Support updating multiple YAML files
- GHA: add
workflow_dispatch
event trigger to templates - update instructions for spatial libs on macOS for GHA
- improve heuristic for updating header parts of "custom" and "custom-deploy" templates
- DSL: Don't add steps twice, if present in a previous macro (#272)
update-tic.yml
: use peter-evans/create-pull-request@v3 and actions/checkout v2.3.1. Run on ubuntu instead of macOS- run r-devel on ubuntu instead of macOS
- pin actions/upload-artifact to v2.1.1
- update actions/checkout to v2.3.1
- update pat-s/always-upload-cache to v2.1.0
step_setup_ssh()
now verifies that {git2r} is installed. This prevents build failures for {rsconnect} deploymentsupdate-tic.yml
: install libs viaapt
on Linux instead ofbrew
- gha_add_secret(): Add new upstream parameters and fix endpoint
- Same as previous version.
update_yaml()
: Account for duplicated env vars when a custom env var masks a template env varuse_tic_badge()
: Update tic badge and default action name (#269)- Installing and using
ccache
for faster source package installation is now optional. While usingccache
can help a lot for installing large dependency chains of certain packages, it also adds substantial overhead to builds for small packages. It is now optional and needs to be added as a custom block to builds. (#264) - Add
step_session_info()
. This step prints the session info after having installed all dependencies in the "install" stage. (#259) step_install_deps()
anddo_package_checks()
gaindependencies = TRUE
argument.- New
use_update_tic()
: Adds GitHub Actions workflowupdate-tic.yml
to automatically update tic YAML templates - Support fully custom runner matrices on GitHub Actions via template types
"custom"
and ´"custom-deploy"` - New
gha_add_secret()
to automate the process of adding a GitHub PAT to a repo as a secret. This function will probably be move to {ghactions} in the future.
- Temporarily enforce {covr} dev version to account for timeouts on GHA, see r-lib/covr#435
- Remove alert in steps-install.R (#263)
- Pass arg
remote
to all printing instances. Previously using a different remote than "origin" caused an error..
- Update versions of "tinytex" and "always-upload-cache" actions (#267)
- Install LaTeX on only one runner (#257)
- Switch from
main.yml
totic.yml
(#260) - Set env var GITHUB_PAT from secret GITHUB_TOKEN to work around rate limits in {remotes}
- Update
actions/checkout
to v2.1.1 - Update
pat-s/always-upload-cache
to v2.0.0 - Remove old clang7 compiler setup for R <= 3.6.3
- Temporarily enforce {covr} dev version to account for timeouts on GHA, see r-lib/covr#435
use_tic_badge()
: Update tic badge and default action name (#269)- GHA: Update versions of "tinytex" and "always-upload-cache" actions (#267)
- Make ccache optional (and more) (#264)
- Remove alert in steps-install.R (#263)
- Add
step_session_info()
(#259) - GHA: Install LaTeX on only one runner (#257)
- GHA: Switch from main.yml to tic.yml (#260)
step_install_deps()
anddo_package_checks()
gaindependencies = TRUE
argument.
- GHA: Set env var GITHUB_PAT from secret GITHUB_TOKEN to work around rate limits in {remotes}
- New
use_update_tic()
: Adds GitHub Actions workflowupdate-tic.yml
to automatically update tic YAML templates
- Support fully custom runner matrices on GitHub Actions via template types
"custom"
and ´"custom-deploy"` - bugfix: Pass arg
remote
to all printing instances. Previously using a different remote than "origin" errored.
- New
gha_add_secret()
to automate the process of adding a GitHub PAT to a repo as a secret. This function will probably be move to {ghactions} in the future.
- Update actions/checkout to v2.1.1
- Update pat-s/always-upload-cache to v1.2.0
- Remove old clang7 compiler setup for R <= 3.6.3
- Same as previous version.
- New
update_yml()
: Update your {tic} yaml templates to the latest upstream version in {tic}. User changes are preserved if these are marked correctly. See vignette "Updating Templates" for instructions. This process can also be fully automated via a custom CI job. - Add argument
force
tostep_do_push_deploy()
for adding the--force
flag to git calls - Add solutions to {rgl} installation issues to FAQ
- Update
.R/Makevars
- Set CRON time to 4 am to avoid download issues with mirror updates
- Added
-I/usr/local/include
to CPPFLAGS for macOS runners to mirror CRAN setup
- Update r-oldrelease to R 3.6.3
- GHA: added
-I/usr/local/include
to CPPFLAGS for macOS runners to mirror CRAN - Add solutions to installation issues for package {rgl} to FAQ
- Add argument
force
tostep_do_push_deploy()
for adding the--force
flag to git calls
- Add
do_blogdown()
macro (#242)
use_tic()
: Movecli::tree()
calls touse_*_yml()
functions to avoid printing of false-positive trees.use_*_yml()
: Set defaults for argumenttype
.- Fix GHA build URL and prettify deploy message (#247)
- Adjust GH Actions templates to use the
use_*_yml()
logic (#246) - Bugfix: Packages on R-devel macOS are being installed in parallel again.
R 4.0 toolchain
- GitHub Actions: R-devel on macOS now uses Apples default clang compiler and the 10.13 SDK (High Sierra) to mimic the CRAN toolchain behavior. (The 10.15 SKD causes various issues when installing packages from source.)
- Env var
SDKROOT
is now set to/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
to prevent linking issues on macOS >= 10.15.4
do_blogdown()
anddo_bookdown()
gain argumentcname
, making it possible to pass a CNAME URL for deployments. This is useful when setting one setsorphan = TRUE
and relies on a custom URL of the published content (otherwise the redirect would not work)- Add a better general intro about CI and explain some general CI terms (fixes #234)
- Add
do_blogdown()
macro (#242)
- Same as previous version.
use_badge
: Refactor to use default badges from the respective providers rather than from shields.io (too slow and sometimes badges did not render at all) (#240)- Condition deployment templates on a single runner for deployment. This avoids race conditions during deployment. This applies to all CI providers and templates (blogdown, bookdown, package) (#241)
- Files specified for deployment via
step_push_deploy(commit_paths = )
are now force added to the index bygit
. This enables to add directories likedocs/
(e.g. created by a local pkgdown build) to.gitignore
and still deploy it during CI (#237).
- GitHub Actions: Always use option '--no-manual' on Windows because LaTeX is not available (because it takes ages to install)
step_rcmdcheck()
: Test in directory "check" to simplify upload of artifacts- Set cron job to 4am to avoid potential download issues with R-devel on macOS
- Github Actions: Only deploy on R-release on macOS by default.
use_tic()
fails with descriptive error message if the badges start/end sections are missing in READMEstep_install_ssh_keys()
: Do not usegit2r::config()
when deploying on Windows to prevent build freezes
faq.Rmd
: Add info how to avoid git race conditions during pkgdown deployment (#238)
use_tic()
fails with descriptive error message if the badges start/end sections are missing in README
faq.Rmd
: Add info how to avoid git race conditions during pkgdown deployment (#238)step_install_ssh_keys()
: Do not usegit2r::config()
when deploying on Windows to prevent build freezes- update blogdown templates
- GitHub Actions: Always use option '--no-manual' on Windows because LaTeX is not available
- Files specified for deployment via
step_push_deploy(commit_paths = )
are now force added to the index bygit
. This enables to add directories likedocs/
(e.g. created by a local pkgdown build) to.gitignore
and still deploy it during CI (#237). step_rcmdcheck()
: Test in dir "check" to simplify upload of artifacts
- Set cron job to 4am to avoid potential download issues with R-devel on macOS
- Github Actions: Use actions/checkout v2
- Github Actions: Only deploy on R-release on macOS by default. This avoids git race conditions between runners.
- Github Actions: {covr} now supports automatic upload of codecov results via their own CODECOV_TOKEN
use_tic_r()
: Add support for conditional tic.R templates via argumentdeploy_on
.- export
use_tic_r()
so that a manual workflow is possible (besidesuse_tic()
) - GitHub Actions: use actions "pat-s/always-upload-cache" instead of "actions/cache"
- Add
use_tic_badge()
: Creation of pretty CI status badges
- Same as previous version.
- New function
tic::use_ghactions_deploy()
(status "experimental") to set up a SSH key for deployment. - New function
use_ghactions_yml()
withdeploy = TRUE/FALSE
(FALSE by default). - New Vignette "FAQ".
- Added GH Actions support to
use_tic()
- new macro
do_readme_rmd()
(#223) - new function
list_macros()
- Change for the default of the private SSH deploy key name from
TRAVIS_DEPLOY_KEY
toTIC_DEPLOY_KEY
to have a generic name. - Change argument
travis_private_key_name
toprivate_key_name
- Renamed
yaml-templates.R
toyaml_templates.R
because the former caused troubles when previewing the dev version of the docs. - Beautified the CLI output of
use_tic()
- Replaced all instances of
_tic_
in the docs by{tic}
- add macro
do_readme_rmd()
(#223) - new function
list_macros()
- add macro
do_drat()
- start vignette "troubleshooting"
- add {desc} to suggests
ci_can_push()
never fails.- templates: always upgrade dep packages during {tic} installation
- Make it possible to pass the endpoint arg from {travis} funs to
use_tic()
- mention the difference between .com and .org -> new vignette "org-vs-com"
- move package to ropensci org
error_on = "note"
also fails on warnings.
ci_can_Push()
: Error with descriptive error message if deployment is not possibleci_can_push()
: Fix for Travis CI- optimize templates (especially matrix builds) by specifying which job is used for the pkgdown build
use_tic()
: add key_name_private and key_name_public args fromtravis::use_travis_deploy()
ci_can_push()
: Change default from"id_rsa""
to"TRAVIS_DEPLOY_KEY"
and also support backward compuse_tic()
: Travis as default for Linux and macOS
use_tic()
supports running both Linux and macOS on Travis (#202).- Skip
TicStep$prepare
ifprepare_call
is given inadd_code_step()
(#211). - Fix preparation of
step_add_to_drat()
. use_tic()
gains arguments that allow non-interactive use and re-running with the same settings if setup fails (#203).- Removed artificial sleeps with interactive setup.
- Move
use_travis_deploy()
back to {travis}.
- add argument "check_dir" to step_rcmdcheck (#179)
- use
remotes::install_cran(upgrade = TRUE)
to install packages (#186) - added support for Circle CI (#177)
- All packages installed for custom steps use binary packages if possible on Windows and macOS (#178).
- Use
TRAVIS_BUILD_WEB_URL
for the commit message. do_package_checks()
gainstype
argument.- Tweak documentation.
- export
use_travis_yml()
,use_circle_yml()
anduse_appveyor_yml()
and add overview table of available options
- Avoid building packages when installing dependencies.
- Remove vignettes from package if checking with
--no-build-vignettes
to avoid warning fromR CMD check
. - Fix
R CMD build
andR CMD check
switches on AppVeyor.
- Building pkgdown site succeeds if
docs/
directory is missing (#173, r-lib/pkgdown#1050).
- Move
use_travis_deploy()
from the travis package to here. - Unexport
get_public_key()
andencode_private_key()
.
- Test utils and printing.
- Exclude code that can only run interactively or in a CI from coverage.
- Add comment regarding integration test.
- Strip long source code lines.
- Add review badge.
- Add
tic.R
to.Rbuildignore
for internal tests. - Update wordlist.
- Fix typos.
- Condition example on presence of Git repository.
- Fix compatibility with git 2.21 and above for race conditions (#160).
step_build_pkgdown()
clean site before building.- AppVeyor template makes sure packages are always installed from binary during bootstrapping.
- CI templates install from GitHub if the version number indicates that the package is not on CRAN yet.
- AppVeyor doesn't cache R packages, because this leads to update problems. Binary installation is fast enough.
- Don't perform CRAN incoming checks, in particular the checks for large version components (#168).
- The
step_install_deps()
,step_install_cran()
andstep_install_github()
steps install binary packages by default, even if the CRAN version is ahead. - All files created by
use_tic()
are added to.Rbuildignore
. - Package template for
tic.R
runs pkgdown only on Travis (#167). - Update vignettes (#156).
detect_repo_type()
now prompts the user for unknown repository types (#161).use_tic()
losespath
argument, now taken fromusethis::proj_get()
.step_rcmdcheck()
anddo_package_checks()
now avoid building the vignette by default on AppVeyor (#150).use_tic()
now uses boxes from {cli} for better structured output (#153).
- Configuration storage modeled after
usethis::proj_get()
. - New
dsl_load()
, renamed fromload_from_file()
. - New
dsl_get()
anddsl_init()
. - Added examples to help for
get_stage()
and macros (#77).
- Using tidy evaluation for simpler code, more control and better printing of steps (#77).
- Fix AppVeyor builds.
- The README is now explicit about suggesting that each repo should contain only one project (#152).
- Documentation uses the {rotemplate} package (#121).
- Only install {remotes} and {curl} if not yet installed (#97).
- New
use_tic()
, moved from {travis} (#138). - Updated templates (#81).
- A failing step displays a traceback generated by
rlang::trace_back()
(#105). do_pkgdown()
anddo_bookdown()
now have adeploy
argument and are documented on separate help pages. The new?macro
help page provides an overview.- Implement
print()
methods for DSL and stages (#77). - New
do_bookdown()
(#137).
- New
repo_*()
functions to simplify specification of therepos
argument to installer functions (#101). - Add Appveyor checks (#147, @pat-s).
- New pkgdown macro via
do_pkgdown()
(#126, @pat-s) - New example: covrpage, cc @yonicd
step_rcmdcheck(error_on = "note")
works again (#119).- New
do_package_checks()
withcodecov = TRUE
argument (#146), replacesadd_package_checks()
which stays around for compatibility (#128). add_step()
now evaluates thestep
argument in atryCatch()
block and gives a bit of context if this fails (#73).- New
run_all_stages()
, previouslytic()
(#66). - New
ci_get_env()
,ci_has_env()
andci_is_env()
functions to avoid verboseSys.getenv()
calls intic.R
(#124, @pat-s). - New
ci_*()
functions to avoid R6 notation intic.R
(#125, @pat-s).
- New
step_install_deps()
, reorganizing help pages so that installer steps are on the same page. step_rcmdcheck()
no longer installs dependencies. Instead,add_package_checks()
includesstep_install_deps()
(#74).- Fix two links in README (#115, @Rekyt).
- Vignette update (#80, @pat-s).
- Support
build_args
argument instep_rcmdcheck()
(#64, @pat-s).
- deprecate
warnings_are_errors
andnotes_are_errors
in favor of the newerror_on
argument - add args
timeout
andrepos
- call
rcmdcheck()
internally witherror_on = "never"
so that we can trigger the message on found warnings and notes - remote outdated doc about
step_rcmdcheck()
using a dedicated lib for the check
- No longer using a separate library for package checks, because it causes a lot of problems with various steps which are not aware of this (#86, #88).
- Packages coming with the R-installation are not updated anymore when preparing
step_rcmdcheck()
. See?step_rcmdcheck()
for detailed info. (#103)
- The
step_build_pkgdown()
step now uses the same dedicated library asstep_rcmdcheck()
. - Using the development version of rcmdcheck to work around problems finding the vignette builder (#84).
- Draft for new "Get started" vignette (#63, @pat-s).
- The
step_rcmdcheck()
step now uses a dedicated library for installing the packages and checking, it also updates the packages after installing dependencies. Theadd_package_checks()
macro no longer includes anupdate.packages()
call (#35). - The
step_rcmdcheck()
step now installs all dependencies during preparation. Theadd_package_checks()
macro no longer adds the code step that installs dependencies.
- The
step_do_push_deploy()
andstep_push_deploy()
steps are not executed for builds on a tag, because this would create a branch of the same name as the tag (#27).
- Support creating variables in
tic.R
by sourcingtic.R
in a modifiable environment (#33). - Replaced
private
arguments with an environment that keeps track of internal state, now the code fromadd_package_checks()
can be copied to atic.R
file (#74).
- A failing step immediately fails the entire stage, subsequent steps are not run (#59).
- New
get_public_key()
andencode_private_key()
moved from travis (#71, @pat-s). - Add
step_install_cran()
andstep_install_github()
(#65, @pat-s).
- Added integration tests for package checks and deployment, covering various common cases (#62).
- Add integration test for deploying from a subdirectory.
- Remove
orphan
argument fromstep_push_deploy()
, because there's no easy way to implement it reliably. If only a subdirectory is deployed to a separate branch (i.e., thepath
argument is set),orphan = TRUE
is required.
- Better strategy for handling race conditions during deployment, new changes are no longer silently overwritten with
step_push_deploy()
(#45). - Add integration test for package checks and race conditions (#62).
- Clarify error message upon step failure.
add_package_checks()
adds coverage checks only for non-interactive CIs.- Add reference to
use_tic()
(#55). - Document purpose of testing steps (#49).
- Allow only predefined stage names (#48).
- The pkgdown package is installed from CRAN.
- New
subdir
argument tostep_push_deploy()
andstep_do_push_deploy()
, allows restricting the set of files to be committed to Git (#42).
- New
base64serialize()
andbase64unserialize()
(#37). add_code_step()
detects required packages also for complex expressions. Packages that need to be installed from GitHub still need to be installed manually (#36).step_rcmdcheck()
now prints a summary, which also shows e.g. details on installation failures.- New
prepare_call
argument tostep_run_code()
andadd_code_step()
.
- Fix
add_package_checks()
.
add_package_checks()
gains arguments that are passed tostep_rcmdcheck()
.- New
step_setup_ssh()
(#24). - New
add_code_step()
(#21). - New
tic()
to run all steps locally (#23). - New
add_package_checks()
(#25).
- Document all exported functions and many classes (#8).
step_add_to_drat()
will also update the overview page if it exists.
- Fix
get_slug()
on AppVeyor to useAPPVEYOR_REPO_NAME
. - New
step_add_to_drat()
. - Split
step_push_deploy()
intostep_setup_push_deploy()
andstep_do_push_deploy()
. - Better traceback output.
- Use "remotes" instead of "devtools".
- Reduce output after preparation (#5).
- New
step_rcmdcheck()
. - The deparsed code is used as step name (#5).
- An error occurring when running a step is printed in red (#5).
- New
step_write_text_file()
for creating arbitrary text files, including~/.R/Makevars
(#14). - pkgdown documentation is now built for tags by default (#13).
- The "openssl" package is now only suggested, not imported.
- Removed
step_run_covr()
in favor of the newstep_run_code()
(#18). load_from_file()
reloads the file from disk if its mtime changes (#11).- All steps of a stage are run even in case of previous errors, but the stage still fails if at least one of its steps failed (#10).
- Adding to known hosts or installing a SSH keys now requires a non-interactive CI.
- New
step_run_code()
to run arbitrary code. If the code is a call with thepkg::fun()
, notation, pkg is installed if missing (#1, #3).step_run_covr()
remains for compatibility but is scheduled for removal. - Color the start of each step in the log (#5).
- New
step_add_to_known_hosts()
to work around configuration problems on OS X (#16). - Export runner methods for all stages defined in Travis CI and AppVeyor (#17).
- Technical release to sync default and production branches.
- Fix
after_success()
anddeploy()
. - Step names are now printed again.
- Use new DSL with the notion of stages with arbitrary names.
- New
load_from_file()
replacesget_xxx_steps()
task_...()
has been renamed tostep_...()
- A task is now something like an ad-hoc step
before_script()
is nowprepare_all_stages()
TravisTask
is nowTicStep
ci()
is now exported
- New
- If environment variable
CI
is undefined, useLocalCI
with sensible inference of repository and branch. - Stop if
git
exits with nonzero status.
- Install package for
task_build_pkgdown
task.
- DSL to define steps via
step()
, which are tasks with a branch and/or env var filter (#6).
- Support environment variables from both Travis and AppVeyor (#6).
- Add tests.
- Rudimentary support for multiple CI systems.
- Clean up dependencies.
Initial release.
- Rudimentary configuration based on task objects. A task object is a list/environment which contains at least the members
check()
,prepare()
andrun()
-- functions without arguments, onlycheck()
needs to return alogical
scalar. These can be subclasses of the newTravisTask
R6 class, the package now contains six subclasses:HelloWorld
,RunCovr
,BuildPkgdown
,InstallSSHKeys
,TestSSH
, andPushDeploy
. Thenew
methods of theses subclasses are exported astask_hello_world()
,task_run_covr()
,task_build_pkgdown()
task_install_ssh_keys()
,task_test_ssh()
, andtask_push_deploy()
, respectively. The three functionsbefore_script()
,after_success()
anddeploy()
accept a semicolon-separated list of task objects, which is by default taken from theTIC_AFTER_SUCCESS_TASKS
andTIC_DEPLOY_TASKS
environment variables. These functions call theprepare()
andrun()
methods of the task objects if and only if thecheck()
method returnsTRUE
(#42).