feat: add optional DAML SDK installation #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'dpm version to test' | |
| required: false | |
| default: 'latest' | |
| daml-version: | |
| description: 'DAML SDK version to test (empty to skip)' | |
| required: false | |
| default: '' | |
| jobs: | |
| test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| name: Linux x86_64 | |
| - os: ubuntu-24.04-arm | |
| name: Linux ARM64 | |
| - os: macos-15-intel | |
| name: macOS x86_64 | |
| - os: macos-14 | |
| name: macOS ARM64 | |
| runs-on: ${{ matrix.os }} | |
| name: Test (${{ matrix.name }}) | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup dpm (latest) | |
| id: setup-latest | |
| uses: ./ | |
| with: | |
| version: ${{ inputs.version || 'latest' }} | |
| - name: Verify dpm installation | |
| run: | | |
| echo "=== Installed version ===" | |
| echo "Version: ${{ steps.setup-latest.outputs.version }}" | |
| echo "Path: ${{ steps.setup-latest.outputs.path }}" | |
| echo "=== dpm version ===" | |
| dpm version | |
| echo "=== dpm --help ===" | |
| dpm --help | head -30 | |
| - name: Test dpm commands | |
| run: | | |
| echo "=== Testing dpm available commands ===" | |
| # These commands work without SDK installation | |
| dpm sdk list || true # May warn but should not error | |
| dpm assistant list || true | |
| echo "dpm CLI is functional" | |
| test-specific-version: | |
| runs-on: ubuntu-latest | |
| name: Test (specific version) | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup dpm (specific version) | |
| id: setup | |
| uses: ./ | |
| with: | |
| version: '3.4.9' | |
| - name: Verify specific version | |
| run: | | |
| echo "=== dpm version output ===" | |
| dpm version | |
| echo "=== Verify action output ===" | |
| echo "Requested: 3.4.9" | |
| echo "Installed: ${{ steps.setup.outputs.version }}" | |
| if [[ "${{ steps.setup.outputs.version }}" != "3.4.9" ]]; then | |
| echo "ERROR: Expected 3.4.9 but got ${{ steps.setup.outputs.version }}" | |
| exit 1 | |
| fi | |
| echo "Version check passed" | |
| test-cache: | |
| runs-on: ubuntu-latest | |
| name: Test (cache) | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup dpm (first run - cache miss) | |
| uses: ./ | |
| - name: Verify first installation | |
| run: dpm version | |
| - name: Setup dpm (second run - cache hit) | |
| uses: ./ | |
| - name: Verify cached installation | |
| run: dpm version | |
| test-daml-sdk: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| name: Linux x86_64 | |
| - os: macos-14 | |
| name: macOS ARM64 | |
| runs-on: ${{ matrix.os }} | |
| name: Test DAML SDK (${{ matrix.name }}) | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup dpm with DAML SDK | |
| id: setup | |
| uses: ./ | |
| with: | |
| daml-version: '3.4.9' | |
| - name: Verify installations | |
| run: | | |
| echo "=== dpm version ===" | |
| dpm version | |
| echo "=== daml version ===" | |
| daml version | |
| echo "=== Action outputs ===" | |
| echo "dpm version: ${{ steps.setup.outputs.version }}" | |
| echo "dpm path: ${{ steps.setup.outputs.path }}" | |
| echo "daml version: ${{ steps.setup.outputs.daml-version }}" | |
| echo "daml path: ${{ steps.setup.outputs.daml-path }}" | |
| - name: Verify DAML SDK output | |
| run: | | |
| if [[ "${{ steps.setup.outputs.daml-version }}" != "3.4.9" ]]; then | |
| echo "ERROR: Expected daml-version 3.4.9 but got ${{ steps.setup.outputs.daml-version }}" | |
| exit 1 | |
| fi | |
| echo "DAML SDK version check passed" |