Skip to content

ci: use common definition of C++ versions #343

ci: use common definition of C++ versions

ci: use common definition of C++ versions #343

Workflow file for this run

name: Run CI
on:
push:
branches: [ main ]
paths-ignore:
- '**.md' # Do not need to run CI for markdown changes.
pull_request:
branches: [ main ]
paths-ignore:
- '**.md'
jobs:
rockspec-info:
uses: ./.github/workflows/rockspec-info.yml
rockspecs:
needs: rockspec-info
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
run: |
data=$(echo '${{ needs.rockspec-info.outputs.info }}' | jq -c 'to_entries | map(.value.rockspec)')
echo "matrix=$data" >> $GITHUB_OUTPUT
linux-build:
needs: rockspecs
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: ["5.1", "5.2", "5.3", "luajit-2.0.5"]
package: ${{ fromJSON(needs.rockspecs.outputs.matrix) }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/ci
with:
lua-version: ${{ matrix.version }}
rockspec: ${{ matrix.package }}
web-server-examples:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
name: ["hello-haproxy", "hello-nginx"]
env:
LD_SDK_KEY: foo
steps:
- uses: actions/checkout@v4
- name: Get C++ Versions
id: cpp-versions
uses: ./.github/actions/cpp-versions
- name: Build ${{ matrix.name }} image
run: |
docker build \
--build-arg="CPP_SDK_VERSION=${{ steps.cpp-versions.outputs.sdk }}" \
-t launchdarkly:${{ matrix.name }} -f ./examples/${{ matrix.name }}/Dockerfile .
- name: Run ${{ matrix.name }} container in background
run: |
docker run -dit --rm --name ${{ matrix.name }} -p 8123:80 --env LD_SDK_KEY="$LD_SDK_KEY" launchdarkly:${{ matrix.name }}
- name: Evaluate feature flag
run: |
curl --retry 5 --retry-all-errors --retry-delay 1 -s -v http://localhost:8123 | tee response.txt
grep -F "is false for this user" response.txt || (echo "Expected false evaluation!" && exit 1)
- name: Stop ${{ matrix.name }} container
run: |
docker stop ${{ matrix.name }}
plain-lua-examples:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
name: [ "hello-debian"]
env:
LD_SDK_KEY: foo
steps:
- uses: actions/checkout@v4
- name: Get C++ Versions
id: cpp-versions
uses: ./.github/actions/cpp-versions
- name: Build ${{ matrix.name }} image
run: |
docker build \
--build-arg="CPP_SDK_VERSION=${{ steps.cpp-versions.outputs.sdk }}" \
-t launchdarkly:${{ matrix.name }} -f ./examples/${{ matrix.name }}/Dockerfile .
- name: Run ${{ matrix.name }} container in foreground
run: |
docker run --env LD_SDK_KEY="$LD_SDK_KEY" launchdarkly:${{ matrix.name }} > logs.txt
- name: Verify output
run: |
grep -F "is false for this user" logs.txt || (echo "Expected false evaluation!" && exit 1)