-
Notifications
You must be signed in to change notification settings - Fork 0
/
action.yaml
64 lines (64 loc) · 2.49 KB
/
action.yaml
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
name: Install μpkg
description: Install μpkg
inputs:
version:
description: The version of μpkg to install
default: latest
required: false
install-prefix:
description: Where to install μpkg
default: ""
required: false
install-dependencies:
description: Whether to install dependencies in the current working-directory
default: ''
required: false
working-directory:
description: "The working directory to change to before installing dependencies"
default: "."
required: false
outputs:
version:
description: The μpkg version that was installed
value: ${{ steps.install.outputs.version }}
install-prefix:
description: Where μpkg was installed
value: ${{ steps.install.outputs.install-prefix }}
runs:
using: composite
steps:
- name: Install μpkg
id: install
shell: bash
run: |
if [[ -z $INSTALL_PREFIX ]]; then
export INSTALL_PREFIX=$HOME/.local
[[ $EUID != 0 ]] || export INSTALL_PREFIX=/usr/local
fi
printf "install-prefix=%s\n" "$INSTALL_PREFIX" >> $GITHUB_OUTPUT
[[ ! -e $INSTALL_PREFIX/bin/upkg ]] || VERSION=$($INSTALL_PREFIX/bin/upkg list -g -- -J | jq -r '.packages[] | select(.name=="upkg") | .version')
[[ -n $VERSION ]] || wget -qO- \
https://github.com/orbit-online/upkg/releases/${{ inputs.version != 'latest' && 'download/' || '' }}${{ inputs.version }}/${{ inputs.version == 'latest' && 'download/' || '' }}upkg-install.tar.gz | \
tar -xzC "$INSTALL_PREFIX"
VERSION=$($INSTALL_PREFIX/bin/upkg list -g -- -J | jq -r '.packages[] | select(.name=="git-release") | .version')
printf "version=%s\n" "$VERSION" >> $GITHUB_OUTPUT
env:
INSTALL_PREFIX: ${{ inputs.install-prefix }}
- name: Get working directory realpath
id: pwd
shell: bash
run: printf "pwd=%s\n" "$(realpath "${{ inputs.working-directory }}")" >> $GITHUB_OUTPUT
- name: Cache dependencies
uses: actions/cache@v4
with:
path: ${{ inputs.working-directory }}/.upkg
key: upkg-deps-${{ steps.pwd.outputs.pwd }}
if: ${{ inputs.install-dependencies == '' || inputs.install-dependencies == 'true' }}
- name: Install dependencies
shell: bash
run: >
if [[ "${{ inputs.install-dependencies }}" = true || -e upkg.json ]]; then
${{ steps.install.outputs.install-prefix }}/bin/upkg install
fi
working-directory: ${{ inputs.working-directory }}
if: ${{ inputs.install-dependencies == '' || inputs.install-dependencies == 'true' }}