-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathaction.yml
87 lines (79 loc) · 2.85 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
name: Publish R Package to Posit Package Manager
author: Posit Package Manager Team
inputs:
url:
description: Package Manager URL
required: true
api-token:
description: API token generated by Package Manager
required: true
r-version:
description: R version to use
default: 'release'
source:
description: Package Manager Source to publish to
required: true
distro:
description: Package Manager Distribution to upload binary
check:
description: Run package checks before publishing
default: true
replace:
description: If version already exists, replace it with new version
default: true
dir:
description: Package source directory
default: '.'
runs:
using: composite
steps:
- name: Set up Pandoc for vignette building
uses: r-lib/actions/setup-pandoc@v2
- name: Set up R ${{ inputs.r-version }}
uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ inputs.r-version }}
use-public-rspm: true
- name: Set up R dependencies
uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check
- name: Run package checks
if: inputs.check == 'true'
uses: r-lib/actions/check-r-package@v2
- name: Build source package
run: |
source_dir=$(mktemp -d)
(cd $source_dir; R CMD build $OLDPWD/${{ inputs.dir }})
echo "SOURCE_FILE=$(ls -d $source_dir/*)" >> $GITHUB_ENV
shell: bash
- name: Build binary package
if: inputs.distro
run: |
binary_dir=$(mktemp -d)
(cd $binary_dir; R CMD INSTALL --build $OLDPWD/${{ inputs.dir }})
echo "BINARY_FILE=$(ls -d $binary_dir/*)" >> $GITHUB_ENV
shell: bash
- name: Install RSPM CLI
env:
PACKAGEMANAGER_ADDRESS: ${{ inputs.url }}
PACKAGEMANAGER_TOKEN: ${{ inputs.api-token }}
run: |
curl -fL -o rspm -H "Authorization: Bearer ${PACKAGEMANAGER_TOKEN}" ${PACKAGEMANAGER_ADDRESS}/__api__/download${{ runner.os == 'Windows' && '?os=windows' || '' }}
chmod +x ./rspm
shell: bash
- name: Upload source package
if: github.ref == 'refs/heads/main'
env:
PACKAGEMANAGER_ADDRESS: ${{ inputs.url }}
PACKAGEMANAGER_TOKEN: ${{ inputs.api-token }}
run: "./rspm add --source=${{ inputs.source }} --path=$SOURCE_FILE ${{ inputs.replace == 'true' && '--replace' || '' }} || echo 'Already uploaded'"
shell: bash
- name: Upload binary package
if: github.ref == 'refs/heads/main' && inputs.distro
env:
PACKAGEMANAGER_ADDRESS: ${{ inputs.url }}
PACKAGEMANAGER_TOKEN: ${{ inputs.api-token }}
run: "./rspm add binary --source=${{ inputs.source }} --distribution=${{ inputs.distro }} --path=$BINARY_FILE ${{ inputs.replace == 'true' && '--replace' || '' }} || echo 'Already uploaded'"
shell: bash