Skip to content

Commit

Permalink
chore(tests): migrate the documentation workflow from Screwdriver to …
Browse files Browse the repository at this point in the history
…GH Actions (#3296)
  • Loading branch information
esolitos authored Aug 8, 2024
2 parents d72ae1e + 8c36a25 commit 98a3927
Show file tree
Hide file tree
Showing 5 changed files with 174 additions and 40 deletions.
56 changes: 56 additions & 0 deletions .github/actions/install-deps/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: "Setup Vespa CLI and dependencies"
description: "Install Vespa CLI and dependencies"

inputs:
# The version of the Vespa CLI to install.
vespa-cli-version:
description: "The version of the Vespa CLI to install."
required: true
default: "latest"

runs:
using: "composite"
steps:
- name: Select CLI version
shell: bash
id: vespa-cli-version
run: |
if [ "${{ inputs.vespa-cli-version }}" == "latest" ]; then
VESPA_CLI_VERSION=$(curl -fsSL https://api.github.com/repos/vespa-engine/vespa/releases/latest | grep -Po '"tag_name": "v\K.*?(?=")')
else
VESPA_CLI_VERSION="${{ inputs.vespa-cli-version }}"
fi
echo "version=${VESPA_CLI_VERSION}" >> "$GITHUB_OUTPUT"
# - name: Install dnf dependencies
# shell: bash
# run: |
# dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
# dnf -y install docker-ce protobuf-compiler protobuf-devel python3 python3-pip --nobest

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.1
bundler-cache: true

- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"

- name: Install python dependencies
shell: bash
run: |
python3 -m pip install --upgrade pip
python3 -m pip install -qqq -r test/requirements.txt --user
python3 -m pip install -qqq pytest nbmake --user
- name: Install Vespa CLI
shell: bash
env:
VESPA_CLI_VERSION: ${{ steps.vespa-cli-version.outputs.version }}
run: |
curl -fsSL https://github.com/vespa-engine/vespa/releases/download/v${VESPA_CLI_VERSION}/vespa-cli_${VESPA_CLI_VERSION}_linux_amd64.tar.gz | tar -zxf - -C /opt && \
ln -sf /opt/vespa-cli_${VESPA_CLI_VERSION}_linux_amd64/bin/vespa /usr/local/bin/
18 changes: 18 additions & 0 deletions .github/workflows/verify-guides-large.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Verify Giudes (Large)

on:
workflow_dispatch: # Allow manual triggering of this workflow.

push:
paths: ["en/tutorials/"]
branches: ["master"]

pull_request:
paths: ["en/tutorials/"] # Enable before merge!
branches: ["master"]

jobs:
large:
uses: ./.github/workflows/verify-guides.yml
with:
test-config-path: "test/_test_config-large.yml"
16 changes: 16 additions & 0 deletions .github/workflows/verify-guides-small.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Verify Giudes (Small)

on:
workflow_dispatch: # Allow manual triggering of this workflow.

push:
branches: ["master"]

pull_request:
branches: ["master"]

jobs:
small:
uses: ./.github/workflows/verify-guides.yml
with:
test-config-path: "test/_test_config.yml"
44 changes: 44 additions & 0 deletions .github/workflows/verify-guides.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Verify Giudes

on:
workflow_call:
inputs:
test-config-path:
description: |
The path to the test configuration file, relative to the repository root.
Example: `test/_test_config.yml`
type: string
required: true

defaults:
run:
# Specify to ensure "pipefail and errexit" are set.
# Ref: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#defaultsrunshell
shell: bash

jobs:
test:
runs-on: ubuntu-latest
env:
LANG: "C.UTF-8"
steps:
- uses: jlumbroso/free-disk-space@main

- uses: actions/checkout@v4

- uses: ./.github/actions/install-deps
with:
vespa-cli-version: latest

- name: build-site
run: |
bundle exec jekyll build
- name: check-queries
run: |
./test/test_queries.py _site
- name: run-tests
run: |
./test/test.py -c ./test/_test_config.yml -w $GITHUB_WORKSPACE
80 changes: 40 additions & 40 deletions screwdriver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,47 +19,47 @@ shared:
ln -sf /opt/vespa-cli_${VESPA_CLI_VERSION}_linux_amd64/bin/vespa /usr/local/bin/
jobs:
verify-guides:
requires: [~pr, ~commit]
image: vespaengine/vespa-build-almalinux-8:latest
annotations:
screwdriver.cd/cpu: HIGH
screwdriver.cd/ram: HIGH
screwdriver.cd/dockerEnabled: true
screwdriver.cd/dockerCpu: HIGH
screwdriver.cd/dockerRam: HIGH
screwdriver.cd/buildPeriodically: H H(0-5) * * 1-5 # some time between 12:00 AM UTC (midnight) to 5:59 AM UTC Mon-Fri
steps:
- *install-deps-new
- install-bundler: |
gem install bundler
export LANG=C.UTF-8
bundle install
- build-site: |
bundle exec jekyll build
- check-queries: |
./test/test_queries.py _site
- run-tests: |
cd $SD_DIND_SHARE_PATH
$SD_SOURCE_DIR/test/test.py -c $SD_SOURCE_DIR/test/_test_config.yml -w $SD_SOURCE_DIR
# verify-guides:
# requires: [~pr, ~commit]
# image: vespaengine/vespa-build-almalinux-8:latest
# annotations:
# screwdriver.cd/cpu: HIGH
# screwdriver.cd/ram: HIGH
# screwdriver.cd/dockerEnabled: true
# screwdriver.cd/dockerCpu: HIGH
# screwdriver.cd/dockerRam: HIGH
# screwdriver.cd/buildPeriodically: H H(0-5) * * 1-5 # some time between 12:00 AM UTC (midnight) to 5:59 AM UTC Mon-Fri
# steps:
# - *install-deps-new
# - install-bundler: |
# gem install bundler
# export LANG=C.UTF-8
# bundle install
# - build-site: |
# bundle exec jekyll build
# - check-queries: |
# ./test/test_queries.py _site
# - run-tests: |
# cd $SD_DIND_SHARE_PATH
# $SD_SOURCE_DIR/test/test.py -c $SD_SOURCE_DIR/test/_test_config.yml -w $SD_SOURCE_DIR

verify-guides-large:
requires: [~pr, ~commit]
sourcePaths: ["en/tutorials/"]
image: vespaengine/vespa-build-almalinux-8:latest
annotations:
screwdriver.cd/cpu: TURBO
screwdriver.cd/ram: TURBO
screwdriver.cd/dockerEnabled: true
screwdriver.cd/dockerCpu: TURBO
screwdriver.cd/dockerRam: TURBO
screwdriver.cd/timeout: 180
screwdriver.cd/buildPeriodically: H H(0-5) * * 1-5 # some time between 12:00 AM UTC (midnight) to 5:59 AM UTC Mon-Fri
steps:
- *install-deps-new
- run-tests: |
cd $SD_DIND_SHARE_PATH
$SD_SOURCE_DIR/test/test.py -c $SD_SOURCE_DIR/test/_test_config-large.yml -w $SD_SOURCE_DIR
# verify-guides-large:
# requires: [~pr, ~commit]
# sourcePaths: ["en/tutorials/"]
# image: vespaengine/vespa-build-almalinux-8:latest
# annotations:
# screwdriver.cd/cpu: TURBO
# screwdriver.cd/ram: TURBO
# screwdriver.cd/dockerEnabled: true
# screwdriver.cd/dockerCpu: TURBO
# screwdriver.cd/dockerRam: TURBO
# screwdriver.cd/timeout: 180
# screwdriver.cd/buildPeriodically: H H(0-5) * * 1-5 # some time between 12:00 AM UTC (midnight) to 5:59 AM UTC Mon-Fri
# steps:
# - *install-deps-new
# - run-tests: |
# cd $SD_DIND_SHARE_PATH
# $SD_SOURCE_DIR/test/test.py -c $SD_SOURCE_DIR/test/_test_config-large.yml -w $SD_SOURCE_DIR

update-vespa-version:
image: buildpack-deps
Expand Down

0 comments on commit 98a3927

Please sign in to comment.