Skip to content

fix cleanup params; test SSH on GHA #574

fix cleanup params; test SSH on GHA

fix cleanup params; test SSH on GHA #574

# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
push:
branches-ignore: gh-pages
pull_request:
branches-ignore: gh-pages
schedule:
- cron: "0 0 * * 2"
name: R-check
jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}
name: ${{ matrix.config.os }} (${{ matrix.config.r }})
strategy:
fail-fast: false
matrix:
config:
- {os: windows-latest, r: 'release'}
- {os: windows-latest, r: '4.2'}
- {os: macOS-latest, r: 'release'}
- {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'}
- {os: ubuntu-latest, r: 'release'}
- {os: ubuntu-latest, r: 'oldrel-1'}
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: r-lib/actions/setup-pandoc@v2
- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
http-user-agent: ${{ matrix.config.http-user-agent }}
use-public-rspm: true
- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check
- name: Install system dependencies (macOS)
if: runner.os == 'macOS'
run: |
brew update
brew install coreutils automake
- name: Set up local key-based SSH
if: runner.os != 'Windows' # GHA does not allow empty passphrase on Windows
run: |
ssh-keygen -t rsa -f ~/.ssh/id_rsa -N "" -q
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh-keyscan -t rsa 127.0.0.1 >> ~/.ssh/known_hosts
echo "Host 127.0.0.1" >> ~/.ssh/config
echo " IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config
echo "$(hostname) 127.0.0.1" >> ~/.hosts
chmod og-rw ~
- name: Install R package and add paths
if: runner.os != 'Windows'
run: |
R CMD INSTALL .
echo '.libPaths("~/work/_temp/Library")' >> ~/.Rprofile # cmq package in R
echo 'options(clustermq.scheduler="multicore")' >> ~/.Rprofile
echo "$(pwd)/tests/bin" >> $GITHUB_PATH # local cmq
sed -i "1iexport PATH=$(pwd)/tests/bin:\$PATH" ~/.bashrc || true # ssh cmq
- name: Query capabilities
if: runner.os != 'Windows' # does not recognize -e
run: |
set -x
which R
which sbatch || echo "sbatch not found"
ssh 127.0.0.1 'which R; which sbatch; echo $PATH' || true
ssh 127.0.0.1 'R --slave --no-restore -e ".libPaths()"' || true
R --slave --no-restore -e "message(clustermq:::qsys_default)" || true
ssh 127.0.0.1 'R --slave --no-restore -e "message(clustermq:::qsys_default)"' || true
- name: make test
if: runner.os != 'Windows'
run: |
timeout 300 make test
- uses: r-lib/actions/check-r-package@v2
with:
error-on: '"error"'
upload-snapshots: true
- name: Print logs if failure
if: failure() && runner.os != 'Windows'
run: |
set -x
cat ~/*.log || true
cat ~/worker.log || true
cat ~/ssh_proxy.log || true
cat clustermq.Rcheck/tests/* || true
- name: Upload check results
if: failure()
uses: actions/upload-artifact@main
with:
name: ${{ runner.os }}-r${{ matrix.config.r }}-results
path: check