build.yml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. name: auto CI
  2. on:
  3. push:
  4. branches: [ master, release]
  5. pull_request:
  6. branches: [ master, release ]
  7. # schedule:
  8. # - cron: "0 2 * * 1-5"
  9. jobs:
  10. build:
  11. strategy:
  12. matrix:
  13. config:
  14. # - { os: windows-latest, suffix: 'zip' }
  15. - { os: ubuntu-latest, suffix: 'tar.gz', rspm: "https://packagemanager.rstudio.com/cran/__linux__/xenial/latest"}
  16. r-version: ['4.1.1']
  17. runs-on: ${{ matrix.config.os }}
  18. name: ${{ matrix.config.os }} (${{ matrix.r-version }})
  19. env:
  20. R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
  21. RSPM: ${{ matrix.config.rspm }}
  22. GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
  23. R_KEEP_PKG_SOURCE: yes
  24. # R_LIBS_USER:
  25. steps:
  26. - uses: actions/checkout@v3
  27. - name: Set up R ${{ matrix.r-version }}
  28. uses: r-lib/actions/setup-r@v2
  29. with:
  30. r-version: ${{ matrix.r-version }}
  31. use-public-rspm: true
  32. # http-user-agent: ${{ matrix.config.http-user-agent }}
  33. # - uses: r-lib/actions/setup-pandoc@v1
  34. - name: Set RENV_PATHS_ROOT
  35. shell: bash
  36. run: |
  37. echo "RENV_PATHS_ROOT=${{ runner.temp }}/renv" >> $GITHUB_ENV
  38. - name: Install and activate renv
  39. run: |
  40. install.packages("renv")
  41. renv::activate()
  42. shell: Rscript {0}
  43. - name: Get R and OS version
  44. id: get-version
  45. run: |
  46. cat("##[set-output name=os-version;]", sessionInfo()$running, "\n", sep = "")
  47. cat("##[set-output name=r-version;]", R.Version()$version.string, sep = "")
  48. shell: Rscript {0}
  49. - name: Restore Renv package cache
  50. uses: actions/cache@v3
  51. with:
  52. path: ${{ env.RENV_PATHS_ROOT }}
  53. key: ${{ steps.get-version.outputs.os-version }}-${{ steps.get-version.outputs.r-version }}-${{ inputs.cache-version }}-${{ hashFiles('renv.lock') }}
  54. restore-keys: ${{ steps.get-version.outputs.os-version }}-${{ steps.get-version.outputs.r-version }}-${{inputs.cache-version }}-
  55. - name: Install Linux build tools
  56. if: startsWith(runner.os, 'Linux')
  57. run: |
  58. sudo apt update
  59. sudo apt upgrade
  60. sudo apt install build-essential libcurl4-openssl-dev libbz2-dev liblzma-dev libfontconfig1-dev libharfbuzz-dev libfribidi-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev libxml2-dev libssl-dev libgtk-3-dev libzmq3-dev
  61. - name: Install dependencies
  62. run: |
  63. install.packages(c("devtools", "remotes"))
  64. saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2)
  65. writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version")
  66. shell: Rscript {0}
  67. # - name: Check
  68. # run: rcmdcheck::rcmdcheck(args = "--no-manual", error_on = "error")
  69. # shell: Rscript {0}
  70. # - name: Build src pkg
  71. # run: |
  72. # devtools::build()
  73. # shell: Rscript {0}
  74. - name: Build bin pkg
  75. run: |
  76. devtools::build(binary = TRUE)
  77. shell: Rscript {0}
  78. - name: List all file
  79. run: |
  80. cd ..
  81. tree
  82. # - name: Upload Release Asset
  83. # uses: svenstaro/upload-release-action@v2
  84. # with:
  85. # repo_token: ${{ secrets.GITHUB_TOKEN }}
  86. # file: '../*.${{ matrix.config.suffix }}'
  87. # file_glob: true
  88. # tag: bioc_${{ env.bioc_ver}}
  89. # overwrite: true
  90. # body: "This is my release text"
  91. # - name: Release
  92. # uses: ncipollo/release-action@v1
  93. # with:
  94. # tag: ${{ env.APP_VERSION }}
  95. # name: ${{ env.APP_VERSION }}
  96. # token: ${{ secrets.GITHUB_TOKEN }}
  97. # artifacts: '**.*.tar.gz,**.*.zip'