Skip to content

feat: add refreshFrequency option for blocking strategy #725

feat: add refreshFrequency option for blocking strategy

feat: add refreshFrequency option for blocking strategy #725

Workflow file for this run

name: Build Sablier plugins
on:
push:
branches:
- main
- beta
pull_request:
jobs:
build:
name: Build Sablier docker image once and share it to E2E jobs
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
tags: sablierapp/sablier:local
outputs: type=docker,dest=/tmp/sablier.tar
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: sablier-image-tar
path: /tmp/sablier.tar
traefik:
name: Build Traefik Sablier Plugin
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: 1.22
cache-dependency-path: plugins/traefik/go.sum
- name: Build
run: cd plugins/traefik && go build -v .
- name: Test
run: cd plugins/traefik && go test -v ./...
traefik_e2e:
name: Run Sablier E2E tests for Traefik middleware
runs-on: ubuntu-latest
needs: build
strategy:
fail-fast: false
matrix:
provider: [docker, docker_swarm, kubernetes]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: 1.22
cache-dependency-path: |
go.sum
plugins/traefik/go.sum
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: sablier-image-tar
path: /tmp
- name: Load Docker image
run: docker load --input /tmp/sablier.tar
- name: Test ${{ matrix.provider }}
run: cd plugins/traefik/e2e/${{ matrix.provider }} && bash ./run.sh
nginx_e2e:
name: Run Sablier E2E tests for Nginx NJS module with Sablier
runs-on: ubuntu-latest
needs: build
strategy:
fail-fast: false
matrix:
provider: [docker, docker_swarm] # , kubernetes]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: 1.22
cache-dependency-path: |
go.sum
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: sablier-image-tar
path: /tmp
- name: Load Docker image
run: docker load --input /tmp/sablier.tar
- name: Test ${{ matrix.provider }}
run: cd plugins/nginx/e2e/${{ matrix.provider }} && bash ./run.sh
caddy:
name: Build Caddy Sablier Plugin
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: 1.22
cache-dependency-path: plugins/caddy/go.sum
- name: Build
run: cd plugins/caddy && go build -v .
- name: Test
run: cd plugins/caddy && go test -v ./...
build-caddy:
name: Build Caddy docker image once and share it to Caddy E2E jobs
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v6
with:
context: plugins/caddy
file: plugins/caddy/Dockerfile
tags: caddy:local
outputs: type=docker,dest=/tmp/caddy.tar
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: caddy-image-tar
path: /tmp/caddy.tar
caddy_e2e:
name: Run Sablier E2E tests for Caddy middleware
runs-on: ubuntu-latest
needs:
- build
- build-caddy
strategy:
fail-fast: false
matrix:
provider: [docker, docker_swarm] # , kubernetes]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: 1.22
cache-dependency-path: |
go.sum
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: sablier-image-tar
path: /tmp
- name: Load Docker image
run: docker load --input /tmp/sablier.tar
- name: Download Caddy artifact
uses: actions/download-artifact@v4
with:
name: caddy-image-tar
path: /tmp
- name: Load Caddy Docker image
run: docker load --input /tmp/caddy.tar
- name: Test ${{ matrix.provider }}
run: cd plugins/caddy/e2e/${{ matrix.provider }} && bash ./run.sh
build-proxywasm:
name: Build ProxyWasm Plugin once and share it to ProxyWasm E2E jobs
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup TinyGo
uses: acifani/setup-tinygo@v2
with:
tinygo-version: '0.33.0'
- name: Build
run: make proxywasm
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: proxywasm-plugin-wasm
path: ./plugins/proxywasm/sablierproxywasm.wasm
proxywasm_apisix_e2e:
name: Run Sablier E2E tests for Proxywasm middleware on Apache APISIX
runs-on: ubuntu-latest
needs:
- build
- build-proxywasm
strategy:
fail-fast: false
matrix:
provider: [ docker ] #, docker_swarm, kubernetes]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: 1.22
cache-dependency-path: |
go.sum
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: sablier-image-tar
path: /tmp
- name: Load Docker image
run: docker load --input /tmp/sablier.tar
- name: Download Proxywasm artifact
uses: actions/download-artifact@v4
with:
name: proxywasm-plugin-wasm
path: ./plugins/proxywasm
- name: Test ${{ matrix.provider }}
run: cd plugins/proxywasm/e2e/apacheapisix/${{ matrix.provider }} && bash ./run.sh
proxywasm_envoy_e2e:
name: Run Sablier E2E tests for Proxywasm middleware on Envoy
runs-on: ubuntu-latest
needs:
- build
- build-proxywasm
strategy:
fail-fast: false
matrix:
provider: [ docker ] #, docker_swarm, kubernetes]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: 1.22
cache-dependency-path: |
go.sum
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: sablier-image-tar
path: /tmp
- name: Load Docker image
run: docker load --input /tmp/sablier.tar
- name: Download Proxywasm artifact
uses: actions/download-artifact@v4
with:
name: proxywasm-plugin-wasm
path: ./plugins/proxywasm
- name: Test ${{ matrix.provider }}
run: cd plugins/proxywasm/e2e/envoy/${{ matrix.provider }} && bash ./run.sh
proxywasm_nginx_e2e:
name: Run Sablier E2E tests for Proxywasm middleware on Nginx
runs-on: ubuntu-latest
needs:
- build
- build-proxywasm
strategy:
fail-fast: false
matrix:
provider: [ docker ] #, docker_swarm, kubernetes]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: 1.22
cache-dependency-path: |
go.sum
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: sablier-image-tar
path: /tmp
- name: Load Docker image
run: docker load --input /tmp/sablier.tar
- name: Download Proxywasm artifact
uses: actions/download-artifact@v4
with:
name: proxywasm-plugin-wasm
path: ./plugins/proxywasm
- name: Test ${{ matrix.provider }}
run: cd plugins/proxywasm/e2e/nginx/${{ matrix.provider }} && bash ./run.sh