fix cleanup params; test SSH on GHA #574
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |