Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 0 additions & 46 deletions .github/workflows/README.md

This file was deleted.

21 changes: 0 additions & 21 deletions .github/workflows/test-all-actions.yml

This file was deleted.

61 changes: 61 additions & 0 deletions .github/workflows/test-bash-framework.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Test Bash Framework

on:
push:
branches: [main]
paths: [ 'scripts-demo/**', 'tests/shell/bash/**' ]
pull_request:
paths: [ 'scripts-demo/**', 'tests/shell/bash/**' ]
workflow_dispatch:

jobs:
test-framework:
name: Test Framework on ${{ matrix.os }} with ${{ matrix.shell-name }}
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
include:
# Ubuntu - bash and zsh
- os: ubuntu-latest
shell-name: bash
shell-cmd: bash

# macOS - zsh
- os: macos-latest
shell-name: zsh
shell-cmd: zsh

# Windows - bash only
- os: windows-latest
shell-name: bash
shell-cmd: bash

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Run demo tests (excluding intentional failures)
shell: bash
working-directory: tests/shell/bash
env:
OPENDAQ_TESTS_SCRIPTS_DIR: "${{ github.workspace }}/scripts-demo/shell/bash"
OPENDAQ_TESTS_SUITES_DIR: "${{ github.workspace }}/tests/shell/bash/suites-demo"

run: |
${{ matrix.shell-cmd }} ./test-runner.sh \
--include-test 'test-basic:*' \
--include-test 'test-integration:*' \
--include-test 'test-advanced:*' \
--include-test 'test-math-utils:*' \
--exclude-test '*:test-integration-fail' \
--exclude-test '*:test-*-slow' \
--fail-fast true

- name: Test results summary
if: always()
shell: bash
run: |
echo "### Test Results for ${{ matrix.os }} - ${{ matrix.shell-name }}" >> $GITHUB_STEP_SUMMARY
echo "✅ Framework tests completed" >> $GITHUB_STEP_SUMMARY
45 changes: 45 additions & 0 deletions .github/workflows/test-bash-scripts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Test Bash Scripts

on:
push:
branches: [main]
paths: [ 'scripts/**', 'tests/shell/bash/**' ]
pull_request:
paths: [ 'scripts/**', 'tests/shell/bash/**' ]
workflow_dispatch:

jobs:
test-scripts:
name: Test on ${{ matrix.os }}
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup environment variables
shell: bash
run: |
# Set scripts directory
echo "OPENDAQ_TESTS_SCRIPTS_DIR=${{ github.workspace }}/scripts/shell/bash" >> $GITHUB_ENV
echo "OPENDAQ_TESTS_SUITES_DIR=${{ github.workspace }}/tests/shell/bash/suites" >> $GITHUB_ENV

- name: Run tests (excluding demos except math-utils)
shell: bash
working-directory: tests/shell/bash
run: |
./test-runner.sh \
--fail-fast true \
--verbose

- name: Test results summary
if: always()
shell: bash
run: |
echo "### Test Results for ${{ matrix.os }}" >> $GITHUB_STEP_SUMMARY
echo "✅ Script tests completed" >> $GITHUB_STEP_SUMMARY
57 changes: 57 additions & 0 deletions .github/workflows/test-framework-compose-filename-manual.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: "Call action manually: framework compose filename"

on:
workflow_dispatch:
inputs:
runner:
description: "Runner to use (e.g. ubuntu-latest, ubuntu-22.04, windows-latest, etc)"
type: string
required: false
default: ubuntu-latest
version:
description: 'OpenDAQ version (if not set, resolves to latest from openDAQ/openDAQ)'
required: false
platform:
description: 'Target platform (if not set, auto-detected)'
required: false
packaging:
description: 'Packaging format for cpack (if not set, uses runner OS name)'
required: false

jobs:
test-compose-filename-manually:
runs-on: ${{ inputs.runner }}
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Compose openDAQ framework filename
id: call-framework-compose-filename
uses: ./framework-compose-filename
with:
version: ${{ inputs.version }}
platform: ${{ inputs.platform }}
packaging: ${{ inputs.packaging }}

- name: Display Results
shell: bash
run: |
echo "╔══════════════════════════════════════════════════════════════════════════════╗"
echo "║ Package Filename Composition Results ║"
echo "╠══════════════════════════════════════════════════════════════════════════════╣"
echo "║ 🏷️ Version (full): ${{ steps.call-framework-compose-filename.outputs.version }}"
echo "║ ├─ Major: ${{ steps.call-framework-compose-filename.outputs.version-major }}"
echo "║ ├─ Minor: ${{ steps.call-framework-compose-filename.outputs.version-minor }}"
echo "║ ├─ Patch: ${{ steps.call-framework-compose-filename.outputs.version-patch }}"
echo "║ ├─ Suffix: ${{ steps.call-framework-compose-filename.outputs.version-suffix || '*** NOT SET ***' }}"
echo "║ └─ Hash: ${{ steps.call-framework-compose-filename.outputs.version-hash || '*** NOT SET ***' }}"
echo "╠══════════════════════════════════════════════════════════════════════════════╣"
echo "║ 🖥️ Platform (full): ${{ steps.call-framework-compose-filename.outputs.platform }}"
echo "║ ├─ OS Name: ${{ steps.call-framework-compose-filename.outputs.platform-os-name }}"
echo "║ ├─ OS Version: ${{ steps.call-framework-compose-filename.outputs.platform-os-version }}"
echo "║ └─ Architecture: ${{ steps.call-framework-compose-filename.outputs.platform-os-arch }}"
echo "╠══════════════════════════════════════════════════════════════════════════════╣"
echo "║ 📦 Packaging: ${{ steps.call-framework-compose-filename.outputs.packaging }}"
echo "╠══════════════════════════════════════════════════════════════════════════════╣"
echo "║ 📄 Filename: ${{ steps.call-framework-compose-filename.outputs.filename }}"
echo "╚══════════════════════════════════════════════════════════════════════════════╝"
75 changes: 75 additions & 0 deletions .github/workflows/test-framework-download-artifact-manual.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Test Framework Download Artifact (Manual)

on:
workflow_dispatch:
inputs:
runner:
description: 'Runner to use for testing'
required: false
default: 'ubuntu-latest'
type: string
run-id:
description: 'Workflow run ID to download artifact from'
required: true
type: string
artifact-name:
description: 'Artifact name pattern'
required: true
type: string
artifact-filename:
description: 'File name to extract from artifact'
required: true
type: string
output-dir:
description: 'Output directory (leave empty for default)'
required: false
type: string
retry-attempts:
description: 'Number of retry attempts'
required: false
default: '3'
type: string

jobs:
test-download:
name: Test Download on ${{ inputs.runner }}
runs-on: ${{ inputs.runner }}

steps:
- name: Checkout Actions Repository
uses: actions/checkout@v4

- name: Display Inputs
shell: bash
run: |
echo "📥 Inputs: Download Package:"
echo "🖥 Runner: ${{ inputs.runner || '*** NOT SET ***' }}"
echo "🚀 Run ID: ${{ inputs.run-id || '*** NOT SET ***' }}"
echo "📦 Artifact"
echo " ├─ 🏷 Name: ${{ inputs.artifact-name || '*** NOT SET ***' }}"
echo " └─ 📄 File: ${{ inputs.artifact-filename || '*** NOT SET ***' }}"
echo "📂 Output Dir: ${{ inputs.output-dir || '*** NOT SET ***' }}"
echo "🔄 Attempts: ${{ inputs.retry-attempts || '*** NOT SET ***' }}"
echo ""

- name: Download and Extract Artifact
id: download
uses: ./framework-download-artifact
with:
run-id: ${{ inputs.run-id }}
artifact-name: ${{ inputs.artifact-name }}
artifact-filename: ${{ inputs.artifact-filename }}
output-dir: ${{ inputs.output-dir }}
retry-attempts: ${{ inputs.retry-attempts }}

- name: Display outputs
if: always()
shell: bash
run: |
echo "📤 Outputs: Download Package:"
echo "📂 Directory: ${{ steps.download.outputs.artifact-dir || '*** ❌ NOT AVAILABLE ***' }}"
echo " ├─ 📄 Filename: ${{ steps.download.outputs.artifact-filename || '*** ❌ NOT AVAILABLE ***' }}"
echo " ├─ 🔒 Checksum: ${{ steps.download.outputs.artifact-checksum || '*** ❌ NOT AVAILABLE ***' }}"
echo " └─ 💾 Filesize: ${{ steps.download.outputs.artifact-filesize || '*** ❌ NOT AVAILABLE ***' }}"
echo "📦 Artifact: ${{ steps.download.outputs.artifact || '*** ❌ NOT AVAILABLE ***' }}"
echo ""
82 changes: 82 additions & 0 deletions .github/workflows/test-framework-download-release-manual.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Test Download Release Asset

on:
workflow_dispatch:
inputs:
runner-os:
description: 'Runner OS to use'
required: true
type: string
default: 'ubuntu-latest'

version:
description: 'Release version (e.g., v3.20.4) or "latest"'
required: false
type: string
default: 'latest'

platform:
description: 'Target platform (e.g., ubuntu22.04-x86_64, win64) or leave empty for auto-detect'
required: false
type: string
default: ''

packaging:
description: 'Package format override (e.g., deb, exe, tar.gz, zip) or leave empty for auto-detect'
required: false
type: string
default: ''

asset-pattern:
description: 'Custom glob pattern to filter assets (overrides auto-detection)'
required: false
type: string
default: ''

output-dir:
description: 'Output directory for downloaded assets (leave empty for runner.temp)'
required: false
type: string
default: ''

verbose:
description: 'Enable verbose output'
required: false
type: boolean
default: true

jobs:
download-release:
name: Download on ${{ inputs.runner-os }}
runs-on: ${{ inputs.runner-os }}

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Download OpenDAQ release asset
id: download
uses: ./framework-download-release
with:
version: ${{ inputs.version }}
platform: ${{ inputs.platform }}
packaging: ${{ inputs.packaging }}
asset-pattern: ${{ inputs.asset-pattern }}
output-dir: ${{ inputs.output-dir }}
verbose: ${{ inputs.verbose }}

- name: Display results
shell: bash
run: |
echo "=== Download Results ==="
echo ""
echo "📦 Asset: ${{ steps.download.outputs.asset-filename }}"
echo "📍 Path: ${{ steps.download.outputs.asset }}"
echo "📂 Directory: ${{ steps.download.outputs.asset-dir }}"
echo ""
echo "🏷️ Version: ${{ steps.download.outputs.version }}"
echo "🖥️ Platform: ${{ steps.download.outputs.platform }}"
echo "📦 Packaging: ${{ steps.download.outputs.packaging }}"
echo ""
echo "📊 Size: ${{ steps.download.outputs.asset-filesize }} bytes"
echo "🔐 SHA256: ${{ steps.download.outputs.asset-checksum }}"
Loading