Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alexellis/setup-arkade
Your favourite developer CLIs for GitHub Actions
https://github.com/alexellis/setup-arkade
Last synced: 20 days ago
JSON representation
Your favourite developer CLIs for GitHub Actions
- Host: GitHub
- URL: https://github.com/alexellis/setup-arkade
- Owner: alexellis
- License: mit
- Created: 2022-10-13T07:31:30.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-09-18T10:09:45.000Z (about 2 months ago)
- Last Synced: 2024-10-04T16:47:36.915Z (about 1 month ago)
- Homepage: https://arkade.dev
- Size: 18.6 KB
- Stars: 11
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# setup-arkade
## Your favourite developer CLIs for GitHub Actions
This is a GitHub action to make it a bit quicker to use [arkade](https://arkade.dev) from GitHub Actions.
What's arkade?
arkade is a cross-platform tool for downloading the latest (or pinned) versions of your favourite CLIs, for installing Helm charts and Kubernetes apps, and system-level packages like Go, containerd and Firecracker.
That means you don't need a lot of curl statements in your builds, and when you support Arm, you don't need if statements for the architecture. When you support multiple operating systems, you don't need if statements for Linux/Darwin, etc.
How is it different to apt-get, brew and spending hours trawling README files?
[Learn more](https://arkade.dev)
## You may also like "alexellis/arkade-get"
Whilst `alexellis/setup-arkade` installs the arkade binary, `alexellis/arkade-get` is all about making the `arkade get` command seamless.
```yaml
- uses: alexellis/arkade-get@master
with:
kubectl: v1.25.0
faas-cli: 0.14.10
helm: latest
terraform: latest
inletsctl: latest
docker-compose: latest
flyctl: latest
- name: check for faas-cli
run: |
faas-cli version
```Binaries are placed in `$HOME/.arkade/bin/` and this path is added to the runner's PATH, so there's no need to prefix any binaries that you then go on to use.
See also: ["alexellis/arkade-get"](https://github.com/alexellis/arkade-get)
## Install arkade
Install arkade in a GitHub Action
```yaml
- name: Install arkade
uses: alexellis/setup-arkade@v2
```Use the latest version in master:
```yaml
- name: Setup arkade
uses: alexellis/setup-arkade@master
```## Use arkade to download a CLI
Install arkade in a GitHub Action and get the latest version of kubectl
```yaml
- name: Setup arkade
uses: alexellis/setup-arkade@v2
- name: Get kubectl
run: |
arkade get kubectl
- name: Run kubectl
run: |
kubectl version
```Install a specific version of a tool
```yaml
- name: Setup arkade
uses: alexellis/setup-arkade@v2
- name: Get faas-cli 0.14.10
run: |
arkade get [email protected]
- name: Run kubectl
run: |
faas-cli version
```Install multiple tools
```yaml
- name: Setup arkade
uses: alexellis/setup-arkade@v2
- name: Get tools for CI
run: |
arkade get kubectl \
faas-cli \
inletsctl \
helm
```Or install to /usr/local/bin
```yaml
- name: Setup arkade
uses: alexellis/setup-arkade@v2
- name: Get kubectl
run: |
arkade get kubectl
sudo mv .arkade/bin/kubectl /usr/local/bin
- name: Run kubectl
run: |
kubectl version
```## System apps
Did you know that arkade contains system-level apps for Linux servers and desktops?
```bash
$ arkade system install --help
Install system apps for Linux hostsUsage:
arkade system install [command]Examples:
arkade system install [APP]
arkade system install --helpAvailable Commands:
actions-runner Install GitHub Actions Runner
cni Install CNI plugins
containerd Install containerd
firecracker Install Firecracker
go Install Go
node Install Node.js
prometheus Install Prometheus
tc-redirect-tap Install tc-redirect-tap
```Install firecracker:
```yaml
- name: Setup arkade
uses: alexellis/setup-arkade@v2
- name: Get kubectl
run: |
arkade system install firecracker
- name: Run firecracker
run: |
firecracker --version
```Install containerd and go (latest):
```yaml
- name: Setup arkade
uses: alexellis/setup-arkade@v2
- name: Get containerd
run: |
arkade system install containerd
/usr/local/bin/containerd version
- name: Run go
run: |
arkade system install go
/usr/local/bin/go version
```