forked from cilium/cilium-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
/
action.yaml
82 lines (76 loc) · 3.18 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
name: 'install-cilium-cli'
description: 'Install Cilium CLI'
inputs:
repository:
description: 'Repository from which the release is downloaded'
default: 'cilium/cilium-cli'
release-version:
description: 'Cilium CLI release version'
ci-version:
description: 'Cilium CLI CI build version'
local-path:
description: 'Path to the local copy of the Cilium CLI repository'
default: '*/cilium-cli'
binary-dir:
description: 'Directory to store Cilium CLI executable'
required: true
default: '/usr/local/bin'
binary-name:
description: 'Cilium CLI executable name'
required: true
default: 'cilium'
skip-build:
description: 'Skip building CLI from source'
default: 'false'
runs:
using: "composite"
steps:
- name: Check if we should build the Cilium CLI from source
if: ${{ inputs.skip-build != 'true' }}
id: build-cli
shell: bash
run: |
CLI_PATH=$(find . -iwholename '${{ inputs.local-path }}' -type d -not -path './.git/*' -not -path './vendor/*' | head -n 1)
echo path="${CLI_PATH}" >> $GITHUB_OUTPUT
- name: Setup Go
uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4.0.1
if: ${{ steps.build-cli.outputs.path != '' }}
with:
go-version-file: '${{ steps.build-cli.outputs.path }}/go.mod'
cache: true
cache-dependency-path: '${{ steps.build-cli.outputs.path }}/go.sum'
- name: Build Cilium CLI from source
if: ${{ steps.build-cli.outputs.path != '' }}
shell: bash
run: |
TARGET=/tmp/cilium
make -C ${{ steps.build-cli.outputs.path }} TARGET=${TARGET}
# Install the binary in a separate step (rather than executing make install)
# to avoid building the binary as root, which would cause issues with caching.
sudo mv ${TARGET} ${{ inputs.binary-dir }}/${{ inputs.binary-name }}
- name: Check Required Version
if: ${{ steps.build-cli.outputs.path == '' && inputs.release-version == '' && inputs.ci-version == '' }}
shell: bash
run: |
echo "'release-version' or 'ci-version' has to be specified!"
exit 42
- name: Install Released Cilium CLI
if: ${{ steps.build-cli.outputs.path == '' && inputs.release-version != '' && inputs.ci-version == '' }}
shell: bash
run: |
curl -sSL --remote-name-all https://github.com/${{ inputs.repository }}/releases/download/${{ inputs.release-version }}/cilium-linux-amd64.tar.gz{,.sha256sum}
sha256sum --check cilium-linux-amd64.tar.gz.sha256sum
tar xzvfC cilium-linux-amd64.tar.gz /tmp
sudo mv /tmp/cilium ${{ inputs.binary-dir }}/${{ inputs.binary-name }}
rm cilium-linux-amd64.tar.gz{,.sha256sum}
- name: Install Cilium CLI from CI
if: ${{ steps.build-cli.outputs.path == '' && inputs.ci-version != '' }}
shell: bash
run: |
cid=$(docker create quay.io/cilium/cilium-cli-ci:${{ inputs.ci-version }} ls)
docker cp $cid:/usr/local/bin/cilium ${{ inputs.binary-dir }}/${{ inputs.binary-name }}
docker rm $cid
- name: Run Cilium CLI Version
shell: bash
run: |
${{ inputs.binary-dir }}/${{ inputs.binary-name }} version