diff --git a/.github/workflows/rhub.yaml b/.github/workflows/rhub.yaml new file mode 100644 index 0000000..2733f56 --- /dev/null +++ b/.github/workflows/rhub.yaml @@ -0,0 +1,89 @@ +# R-hub v2 package validation workflow for a public repository. + +name: R-hub + +run-name: >- + ${{ github.event.inputs.id || format('Automatic run by @{0}', github.triggering_actor) }}: + ${{ github.event.inputs.name || github.event.inputs.config || 'linux,windows,macos' }} + +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + inputs: + config: + description: >- + Comma-separated list of R-hub platforms to use. + Full list: https://r-hub.github.io/containers/ + type: string + default: 'linux,windows,macos' + name: + description: 'Run name. You can leave this empty.' + type: string + id: + description: 'Unique ID. You can leave this empty.' + type: string + +permissions: + contents: read + +jobs: + setup: + runs-on: ubuntu-latest + outputs: + containers: ${{ steps.rhub-setup.outputs.containers }} + platforms: ${{ steps.rhub-setup.outputs.platforms }} + steps: + - uses: r-hub/actions/setup@v1 + id: rhub-setup + with: + config: ${{ github.event.inputs.config || 'linux,windows,macos' }} + + linux-containers: + needs: setup + if: ${{ needs.setup.outputs.containers != '[]' }} + runs-on: ubuntu-latest + name: ${{ matrix.config.label }} + strategy: + fail-fast: false + matrix: + config: ${{ fromJson(needs.setup.outputs.containers) }} + container: + image: ${{ matrix.config.container }} + steps: + - uses: r-hub/actions/checkout@v1 + - uses: r-hub/actions/platform-info@v1 + with: + job-config: ${{ matrix.config.job-config }} + - uses: r-hub/actions/setup-deps@v1 + with: + job-config: ${{ matrix.config.job-config }} + - uses: r-hub/actions/run-check@v1 + with: + job-config: ${{ matrix.config.job-config }} + + other-platforms: + needs: setup + if: ${{ needs.setup.outputs.platforms != '[]' }} + runs-on: ${{ matrix.config.os }} + name: ${{ matrix.config.label }} + strategy: + fail-fast: false + matrix: + config: ${{ fromJson(needs.setup.outputs.platforms) }} + steps: + - uses: r-hub/actions/checkout@v1 + - uses: r-hub/actions/setup-r@v1 + with: + job-config: ${{ matrix.config.job-config }} + - uses: r-hub/actions/platform-info@v1 + with: + job-config: ${{ matrix.config.job-config }} + - uses: r-hub/actions/setup-deps@v1 + with: + job-config: ${{ matrix.config.job-config }} + - uses: r-hub/actions/run-check@v1 + with: + job-config: ${{ matrix.config.job-config }}