Skip to content

Bump sqrl version to 0.6.1 release #61

Bump sqrl version to 0.6.1 release

Bump sqrl version to 0.6.1 release #61

Workflow file for this run

name: Build and test DataSQRL Examples
on:
push:
branches: [ "main" ]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- example: recommendation
path: clickstream-ai-recommendation
test_commands: |
compile -c package-api.json
compile -c package-kafka.json
- example: finance-rewards
path: finance-credit-card-chatbot
test_commands: |
compile -c package-rewards-local.json
compile -c package-rewards-kafka.json
test -c package-rewards-local.json --snapshots snapshots-rewards
- example: finance-analytics
path: finance-credit-card-chatbot
test_commands: |
compile -c package-analytics-local.json
compile -c package-analytics-kafka.json
test -c package-analytics-local.json --snapshots snapshots-analytics
- example: healthcare-compile
path: healthcare-study-monitoring
test_commands: |
compile -c study_stream_local_package.json
compile -c study_stream_kafka_package.json
compile -c study_api_run_package.json
compile -c study_api_test_package.json
compile -c study_analytics_package.json
# FIXME https://github.com/DataSQRL/sqrl/issues/1140 compile -c study_analytics_snowflake_package.json
- example: healthcare-analytics
path: healthcare-study-monitoring
test_commands: |
test -c study_analytics_package.json study_analytics.sqrl --snapshots snapshots-study-analytics
- example: healthcare-api
path: healthcare-study-monitoring
test_commands: |
test -c study_api_test_package.json --tests tests-study-api --snapshots snapshots-study-api
- example: healthcare-stream
path: healthcare-study-monitoring
test_commands: |
test -c study_stream_local_package.json study_stream.sqrl --snapshots snapshots-study-stream
- example: logistics
path: logistics-shipping-geodata
test_commands: |
compile logistics.sqrl logistics.graphqls
test logistics.sqrl --snapshots snapshots
- example: iot-sensor
path: iot-sensor-metrics
test_commands: |
compile -c sensor-api.json
compile -c sensor-static.json
test -c sensor-static.json --snapshots snapshots-static
test -c sensor-api.json --tests test-api --snapshots snapshots-api
- example: law
path: law-enforcement
test_commands: |
compile -c baseball-card-local.json
test -c baseball-card-local.json --snapshots snapshots
- example: oil-gas
path: oil-gas-agent-automation
test_commands: |
compile -c package-local.json
test -c package-local.json
env:
TZ: 'America/Los_Angeles'
SQRL_VERSION: '0.6.1'
steps:
- uses: actions/checkout@v4
- name: Setup Timezone
uses: szenius/set-timezone@v1.1
with:
timezoneLinux: "America/Los_Angeles"
- name: Cache Docker images
uses: ScribeMD/docker-cache@0.5.0
with:
# one cache entry per SQRL version & OS
key: sqrl-${{ runner.os }}-${{ env.SQRL_VERSION }}
- name: Pull SQRL Docker image
run: docker pull datasqrl/cmd:${{ env.SQRL_VERSION }}
- name: Run ${{ matrix.example }} Tests
working-directory: ${{ matrix.path }}
run: |
# Read raw lines from the matrix value
mapfile -t raw_cmds <<< "${{ matrix.test_commands }}"
# Keep only non‑empty lines
cmds=()
for c in "${raw_cmds[@]}"; do
[[ -z "${c//[[:space:]]/}" ]] && continue # skip blanks
cmds+=("$c")
done
if (( ${#cmds[@]} == 0 )); then
echo "ERROR: No test commands specified for ${{ matrix.example }}"
exit 1
fi
for cmd in "${cmds[@]}"; do
echo "::group::Running: $cmd"
docker run -i -p 8888:8888 -p 8081:8081 -p 9092:9092 \
--rm -v "$PWD":/build "datasqrl/cmd:${SQRL_VERSION}" $cmd
echo "::endgroup::"
done
- name: Write Dockerfile
run: |
cat <<EOF > ${{ matrix.path }}/Dockerfile
FROM datasqrl/cmd:${SQRL_VERSION}
ENV TZ="UTC"
COPY . /build
WORKDIR /build
EOF
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Publish ${{ matrix.example }}
uses: docker/build-push-action@v3
with:
context: ./${{ matrix.path }}
file: ./${{ matrix.path }}/Dockerfile
push: true
tags: datasqrl/examples:${{ matrix.path }}
platforms: linux/amd64,linux/arm64
ci-summary:
name: build ✅ summary
needs: build
runs-on: ubuntu-latest
if: always()
steps:
- name: Fail if any build job failed
run: |
failed=$(jq -r '.[] | select(.result=="failure")' <<< '${{ toJson(needs) }}' | wc -l)
if [[ "$failed" -gt 0 ]]; then
echo "::error ::${failed} matrix job(s) failed"
exit 1
fi