From cea696d91e4547526544cb875a2028d5ca0b1b40 Mon Sep 17 00:00:00 2001 From: Hong Ooi Date: Thu, 15 Oct 2020 01:19:45 +1100 Subject: [PATCH] switch to Github Actions, change maintainer email --- .Rbuildignore | 2 +- .github/workflows/check-standard.yaml | 111 ++++++++++++++++++++++++++ DESCRIPTION | 4 +- NEWS.md | 4 + azure-pipelines.yml | 55 ------------- 5 files changed, 118 insertions(+), 58 deletions(-) create mode 100644 .github/workflows/check-standard.yaml delete mode 100644 azure-pipelines.yml diff --git a/.Rbuildignore b/.Rbuildignore index 323f209..5411999 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -8,5 +8,5 @@ CONTRIBUTING.md drat.sh .travis.yml ^LICENSE\.md$ -azure-pipelines.yml +^\.github$ ^tpl$ diff --git a/.github/workflows/check-standard.yaml b/.github/workflows/check-standard.yaml new file mode 100644 index 0000000..d2dfb7e --- /dev/null +++ b/.github/workflows/check-standard.yaml @@ -0,0 +1,111 @@ +# For help debugging build failures open an issue on the RStudio community with the 'github-actions' tag. +# https://community.rstudio.com/new-topic?category=Package%20development&tags=github-actions +on: [push, pull_request] + +name: R-CMD-check + +jobs: + R-CMD-check: + if: github.repository_owner == 'Azure' + runs-on: ${{ matrix.config.os }} + + name: ${{ matrix.config.os }} (${{ matrix.config.r }}) + + strategy: + fail-fast: false + matrix: + config: + - {os: windows-latest, r: 'release'} + - {os: macOS-latest, r: 'release'} + - {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"} + + env: + R_REMOTES_NO_ERRORS_FROM_WARNINGS: true + RSPM: ${{ matrix.config.rspm }} + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 # required for mirroring, see https://stackoverflow.com/a/64272409/474349 + + - name: Copy to Cloudyr + if: runner.os == 'Linux' && github.ref == 'refs/heads/master' + env: + token: "${{ secrets.ghPat }}" + # git config hack required, see https://stackoverflow.com/q/64270867/474349 + run: | + export CLOUDYR_REPO=$(echo $GITHUB_REPOSITORY | sed "s/Azure/cloudyr/") + git config -l | grep 'http\..*\.extraheader' | cut -d= -f1 | \ + xargs -L1 git config --unset-all + git push --prune https://token:$token@github.com/${CLOUDYR_REPO}.git +refs/remotes/origin/*:refs/heads/* +refs/tags/*:refs/tags/* + + - uses: r-lib/actions/setup-r@master + with: + r-version: ${{ matrix.config.r }} + + - uses: r-lib/actions/setup-pandoc@master + + - name: Query dependencies + run: | + install.packages('remotes') + saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) + writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") + shell: Rscript {0} + + - name: Cache R packages + if: runner.os != 'Windows' + uses: actions/cache@v2 + with: + path: ${{ env.R_LIBS_USER }} + key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} + restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- + + - name: Install system dependencies + if: runner.os == 'Linux' + run: | + while read -r cmd + do + eval sudo $cmd + done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))') + + - name: Install dependencies + run: | + remotes::install_deps(dependencies = TRUE) + remotes::install_cran(c("pkgbuild", "rcmdcheck", "drat")) + shell: Rscript {0} + + - name: Check + env: + _R_CHECK_CRAN_INCOMING_REMOTE_: false + _R_CHECK_FORCE_SUGGESTS_: false + run: | + pkg <- pkgbuild::build() + rcmdcheck::rcmdcheck(pkg, args = c("--no-manual", "--as-cran"), error_on = "warning", check_dir = "check") + shell: Rscript {0} + + - name: Upload check results + if: failure() + uses: actions/upload-artifact@main + with: + name: ${{ runner.os }}-r${{ matrix.config.r }}-results + path: check + + - name: Update Cloudyr drat + if: success() && runner.os == 'Linux' && github.ref == 'refs/heads/master' + env: + token: "${{ secrets.ghPat }}" + run: | + cd .. + export PKGBUILD_GZ=$(ls *.gz) + mkdir drat + cd drat + git init + git config user.email "dummy@example.com" + git config user.name "Github Actions" + git remote add upstream "https://token:$token@github.com/cloudyr/cloudyr.github.io.git" + git fetch upstream + git checkout master + Rscript -e "drat::insertPackage('../$PKGBUILD_GZ', repodir='./drat')" + git add --all + git commit -m "add $PKGBUILD_GZ (build $GITHUB_RUN_NUMBER)" + git push diff --git a/DESCRIPTION b/DESCRIPTION index 3049f06..24002e2 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: AzureVM Title: Virtual Machines in 'Azure' -Version: 2.2.1 +Version: 2.2.2 Authors@R: c( - person("Hong", "Ooi", , "hongooi@microsoft.com", role = c("aut", "cre")), + person("Hong", "Ooi", , "hongooi73@gmail.com", role = c("aut", "cre")), person("Microsoft", role="cph") ) Description: Functionality for working with virtual machines (VMs) in Microsoft's 'Azure' cloud: . Includes facilities to deploy, startup, shutdown, and cleanly delete VMs and VM clusters. Deployment configurations can be highly customised, and can make use of existing resources as well as creating new ones. A selection of predefined configurations is provided to allow easy deployment of commonly used Linux and Windows images, including Data Science Virtual Machines. With a running VM, execute scripts and install optional extensions. Part of the 'AzureR' family of packages. diff --git a/NEWS.md b/NEWS.md index 6aa918b..022ea43 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,7 @@ +# AzureVM 2.2.2 + +- Change maintainer email address. + # AzureVM 2.2.1 - Hotfix to previous version, to export `windows_2019_gen2` and `windows_2019_gen2_ss` configuration functions. diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 7b7e1d1..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,55 +0,0 @@ -variables: -- group: GH -- name: R_LIBS_USER - value: '$(Agent.BuildDirectory)/R/library' - -pool: - vmImage: 'ubuntu-latest' - -container: $[variables['rockerImage']] - -steps: -- bash: | - export CLOUDYR_REPO=$(echo $(Build.Repository.Name) | sed "s/Azure/cloudyr/") - git push --prune https://$(ghPat)@github.com/$CLOUDYR_REPO +refs/remotes/origin/*:refs/heads/* +refs/tags/*:refs/tags/* - displayName: 'Copy to Cloudyr' - condition: eq(variables['Build.SourceBranch'], 'refs/heads/master') - -- bash: | - echo "options(repos = '$(cranRepo)')" > ~/.Rprofile - echo ".libPaths(c('$R_LIBS_USER', .libPaths()))" >> ~/.Rprofile - mkdir -p $R_LIBS_USER - displayName: 'Setup R library directory' - -- task: CacheBeta@0 - inputs: - key: ./DESCRIPTION | "$(rockerImage)" | "$(cranRepo)" - path: $(R_LIBS_USER) - displayName: 'Caching packages' - -- bash: | - Rscript -e "pkgs <- c('remotes', 'rcmdcheck', 'drat'); if(length(find.package(pkgs, quiet=TRUE)) != length(pkgs)) install.packages(pkgs)" - Rscript -e "remotes::install_deps(dependencies=TRUE)" - displayName: 'Installing package dependencies' - -- bash: | - Rscript -e "f <- pkgbuild::build(dest_path='$(Build.ArtifactStagingDirectory)'); rcmdcheck::rcmdcheck(f, args='--no-manual', error_on='warning', check_dir='check')" - displayName: 'Checking package' - -- bash: | - export PKGBUILD_GZ=$(ls $(Build.ArtifactStagingDirectory)/*.gz) - mkdir drat - cd drat - git init - git config user.email "dummy@example.com" - git config user.name "Azure Pipelines" - git remote add upstream "https://$(ghPat)@github.com/cloudyr/cloudyr.github.io.git" - git fetch upstream - git checkout master - Rscript -e "drat::insertPackage('$PKGBUILD_GZ', repodir='./drat')" - git add --all - git commit -m "add $PKGBUILD_GZ (build $(Build.BuildId))" - git push - displayName: 'Update Cloudyr drat' - condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) - \ No newline at end of file