Skip to content

Fix backtick evaluation in add-script and run-script inline scripts #395

Fix backtick evaluation in add-script and run-script inline scripts

Fix backtick evaluation in add-script and run-script inline scripts #395

Workflow file for this run

name: "CI - Test Features"
on:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
get-changed-features:
runs-on: ubuntu-latest
outputs:
features: ${{ steps.filter.outputs.features }}
has-features: ${{ steps.filter.outputs.has-features }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: "Detect changed features"
id: filter
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
git fetch origin ${{ github.base_ref }}
FEATURES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD \
| grep -E '^(src|test)/' \
| sed -E 's#^(src|test)/([^/]+)/.*#\2#' \
| sort -u \
| jq -R -s -c 'split("\n") | map(select(length > 0))')
else
FEATURES=$(ls src/ | sort | jq -R -s -c 'split("\n") | map(select(length > 0))')
fi
echo "features=$FEATURES" >> $GITHUB_OUTPUT
echo "has-features=$(echo "$FEATURES" | jq '. | length > 0')" >> $GITHUB_OUTPUT
test-autogenerated:
needs: get-changed-features
if: needs.get-changed-features.outputs.has-features == 'true'
runs-on: ubuntu-latest
timeout-minutes: 60
continue-on-error: true
strategy:
matrix:
features: ${{ fromJson(needs.get-changed-features.outputs.features) }}
baseImage:
- debian:latest
- ubuntu:latest
- mcr.microsoft.com/devcontainers/base:ubuntu
steps:
- uses: actions/checkout@v4
- name: "Install latest devcontainer CLI"
run: npm install -g @devcontainers/cli
- name: "Generating tests for '${{ matrix.features }}' against '${{ matrix.baseImage }}'"
run: devcontainer features test --skip-scenarios -f ${{ matrix.features }} -i ${{ matrix.baseImage }} .
test-scenarios:
needs: get-changed-features
if: needs.get-changed-features.outputs.has-features == 'true'
runs-on: ubuntu-latest
timeout-minutes: 60
continue-on-error: true
strategy:
matrix:
features: ${{ fromJson(needs.get-changed-features.outputs.features) }}
steps:
- uses: actions/checkout@v4
- name: "Install latest devcontainer CLI"
run: npm install -g @devcontainers/cli
- name: "Generating tests for '${{ matrix.features }}' scenarios"
run: devcontainer features test -f ${{ matrix.features }} --skip-autogenerated --skip-duplicated .
test-global:
runs-on: ubuntu-latest
timeout-minutes: 60
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: "Install latest devcontainer CLI"
run: npm install -g @devcontainers/cli
- name: "Testing global scenarios"
run: devcontainer features test --global-scenarios-only .