Skip to content

Commit

Permalink
feat: Add GitHub Actions workflow and action for Vespa CLI
Browse files Browse the repository at this point in the history
Adds a GitHub Actions workflow to test the Vespa CLI installation using the latest and a specific version of the CLI. Also adds a reusable action to install the Vespa CLI on the runner.
  • Loading branch information
esolitos authored and gitbutler-client committed Aug 8, 2024
1 parent 5b6b7b0 commit 4ebc00a
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 0 deletions.
39 changes: 39 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: Test

on:
push:
branches:
- 1.x
pull_request:
branches:
- 1.x

jobs:
test:
strategy:
fail-fast: true
matrix:
vespa-cli-version: [latest, 8.371.16]
runner: [ubuntu-latest, macos-latest]

runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4

- name: Setup Vespa CLI
uses: ./
with:
version: ${{ matrix.vespa-cli-version }}

- name: Verify Vespa CLI
run: vespa version

lint:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Lint YAML files
run: yamllint --format github .
7 changes: 7 additions & 0 deletions .yamllint
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
extends: default

rules:
line-length: disable
truthy:
check-keys: false
43 changes: 43 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
name: "Setup Vespa CLI"
description: "Installs the Vespa CLI tool on the runner."

inputs:
# The version of the Vespa CLI to install.
version:
description: "The version of the Vespa CLI to install."
default: "latest"

runs:
using: "composite"
steps:
- name: Select CLI version
shell: bash
id: vespa-cli-version
run: |
if [ "${{ inputs.version }}" == "latest" ]; then
VESPA_CLI_VERSION=$(curl -fsSL https://api.github.com/repos/vespa-engine/vespa/releases/latest | jq -r '.tag_name' | sed 's/^v//')
else
VESPA_CLI_VERSION="${{ inputs.version }}"
fi
echo "version=${VESPA_CLI_VERSION}" >> "$GITHUB_OUTPUT"
- name: Install Vespa CLI
shell: bash
env:
VESPA_CLI_VERSION: ${{ steps.vespa-cli-version.outputs.version }}
OS: ${{ startswith(runner.os, 'macOS') && 'darwin' || 'linux' }}
ARCH: ${{ startswith(runner.arch, 'ARM') && 'arm64' || 'amd64' }}
run: |
ARCHIVE_NAME="$(echo "vespa-cli_${VESPA_CLI_VERSION}_${OS}_${ARCH}" | tr '[:upper:]' '[:lower:]')"
DOWNLOAD_URL="https://github.com/vespa-engine/vespa/releases/download/v${VESPA_CLI_VERSION}/${ARCHIVE_NAME}.tar.gz"
echo "Downloading: ${DOWNLOAD_URL}"
curl -fsSL "${DOWNLOAD_URL}" | tar -zxf - -C /opt
chmod +x /opt/${ARCHIVE_NAME}/bin/*
ln -sf /opt/${ARCHIVE_NAME}/bin/vespa /usr/local/bin/
# Verify the installation
vespa version

0 comments on commit 4ebc00a

Please sign in to comment.