dockergithub-actionsr-packager-usethis

Error in github action from usethis package Can't find 'action.yml', 'action.yaml' or 'Dockerfile'


I have been trying to start using github actions for continuous integrations in my packages, however,even though I am using the premade functions of usethis package it is not working, and the runners stop immediately.

I have tried with the following functions:

usethis::use_github_action_check_standard()

And this one:

usethis::use_github_action_check_release()

but they both fail with the following message:

Current runner version: '2.281.1'
Operating System
Virtual Environment
Virtual Environment Provisioner
GITHUB_TOKEN Permissions
Prepare workflow directory
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v2' (SHA:5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f)
Download action repository 'r-lib/actions@v1' (SHA:55aea734d73636a0617990c2899c8f86ef8a9877)
Download action repository 'actions/upload-artifact@main' (SHA:11e311c8b504ea40cbed20583a64d75b4735cff3)
Getting action download info
Download action repository 'actions/cache@v2' (SHA:c64c572235d810460d0d6876e9c705ad5002b353)
Error: Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under '/home/runner/work/_actions/r-lib/actions/v1/check-r-package'. Did you forget to run actions/checkout before running your local action?

You can see everything in this repository

But in any case this is the code I use for the repo:

# Workflow derived from https://github.com/r-lib/actions/tree/master/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

name: R-CMD-check

jobs:
  R-CMD-check:
    runs-on: ${{ matrix.config.os }}

    name: ${{ matrix.config.os }} (${{ matrix.config.r }})

    strategy:
      fail-fast: false
      matrix:
        config:
          - {os: macOS-latest,   r: 'release'}
          - {os: windows-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@v2

      - uses: r-lib/actions/setup-pandoc@v1

      - uses: r-lib/actions/setup-r@v1
        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@v1
        with:
          extra-packages: rcmdcheck

      - uses: r-lib/actions/check-r-package@v1

      - name: Show testthat output
        if: always()
        run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true
        shell: bash

      - name: Upload check results
        if: failure()
        uses: actions/upload-artifact@main
        with:
          name: ${{ runner.os }}-r${{ matrix.config.r }}-results
          path: check

Any help is welcome


Solution

  • Notice this part in error message:

    Error: Can't find ... under '/home/runner/work/_actions/r-lib/actions/v1/check-r-package'
    

    That's because r-lib/actions@v1 does not have check-r-package.

    You can change uses: r-lib/actions/check-r-package@v1 to uses: r-lib/actions/check-r-package@master to use the latest action which contains check-r-package.