Skip to content

Add bun devcontainer feature (#13) #18

Add bun devcontainer feature (#13)

Add bun devcontainer feature (#13) #18

name: CI - Test Features
on:
push:
branches:
- develop
paths:
- "features/**"
pull_request:
paths:
- "features/**"
workflow_dispatch:
jobs:
detect:
runs-on: ubuntu-latest
outputs:
features: ${{ steps.set-matrix.outputs.features }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Detect changed features
id: set-matrix
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
features=$(ls -d features/src/*/ | xargs -n1 basename | jq -R -s -c 'split("\n")[:-1]')
elif [ "${{ github.event_name }}" = "pull_request" ]; then
base="${{ github.event.pull_request.base.sha }}"
features=$(git diff --name-only "$base" HEAD -- features/src/ | cut -d/ -f3 | sort -u | jq -R -s -c 'split("\n")[:-1]')
else
features=$(git diff --name-only "${{ github.event.before }}" HEAD -- features/src/ | cut -d/ -f3 | sort -u | jq -R -s -c 'split("\n")[:-1]')
fi
echo "features=$features" >> $GITHUB_OUTPUT
test:
needs: detect
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
feature: ${{ fromJson(needs.detect.outputs.features) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install devcontainer CLI
run: npm install -g @devcontainers/cli
- name: Test feature
working-directory: features
run: |
devcontainer features test \
-f ${{ matrix.feature }} \
--skip-autogenerated