name: "Test ed template" on: workflow_dispatch: push: paths: - 'templates/ed/**' - 'tests/ed/**' - '.github/workflows/check_ed.yml' pull_request: paths: - 'templates/ed/**' - 'tests/ed/**' - '.github/workflows/check_ed.yml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: tests: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest] steps: - uses: actions/checkout@v6 - uses: cachix/install-nix-action@v31 with: github_access_token: ${{ github.token }} - uses: cachix/cachix-action@v17 with: name: rde authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' extraPullNames: rstats-on-nix, nix-community - name: Build template run: nix build ./templates/ed - name: Test R script env: NO_NUSHELL: '1' run: | cd templates/ed nix develop --command bash -c "Rscript ${{ github.workspace }}/tests/ed/test.R" - name: Test Python script (disabled by default) env: NO_NUSHELL: '1' run: | cd templates/ed nix develop --command bash -c "python3 ${{ github.workspace }}/tests/ed/test.py" || echo "SKIP: Python packages not enabled" test-with-python: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: cachix/install-nix-action@v31 with: github_access_token: ${{ github.token }} - uses: cachix/cachix-action@v17 with: name: rde authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' extraPullNames: rstats-on-nix, nix-community - name: Setup test directory with Python enabled run: | TEST_DIR=$(mktemp -d) cp -r templates/ed/. "$TEST_DIR/" cd "$TEST_DIR" sed -i 's/python[[:space:]]*=[[:space:]]*false;/python = true;/' flake.nix grep -q "python[[:space:]]*=[[:space:]]*true;" flake.nix || { echo "Error: Failed to enable Python in flake.nix" exit 1 } echo "TEST_DIR=$TEST_DIR" >> $GITHUB_ENV - name: Build with Python enabled run: | cd "$TEST_DIR" nix build - name: Test Python packages env: NO_NUSHELL: '1' run: | cd "$TEST_DIR" nix develop --command bash -c "python3 ${{ github.workspace }}/tests/ed/test.py" test-with-julia: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: cachix/install-nix-action@v31 with: github_access_token: ${{ github.token }} - uses: cachix/cachix-action@v17 with: name: rde authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' extraPullNames: rstats-on-nix, nix-community - name: Setup test directory with Julia enabled run: | TEST_DIR=$(mktemp -d) cp -r templates/ed/. "$TEST_DIR/" cd "$TEST_DIR" sed -i 's/julia[[:space:]]*=[[:space:]]*false;/julia = true;/' flake.nix grep -q "julia[[:space:]]*=[[:space:]]*true;" flake.nix || { echo "Error: Failed to enable Julia in flake.nix" exit 1 } echo "TEST_DIR=$TEST_DIR" >> $GITHUB_ENV - name: Build with Julia enabled run: | cd "$TEST_DIR" nix build - name: Test Julia packages env: NO_NUSHELL: '1' run: | cd "$TEST_DIR" # nix develop --command bash -c "julia ${{ github.workspace }}/tests/ed/test.jl"