feat: refactor config flow and directory structure
- Create config-provider.yml (reusable workflow, conf→JSON) - Replace duplicated job env blocks with workflow env + fromJson - Move provider workflows to workflows/ directory - Move consumer scripts to .gitea/scripts/ - Move feature-env.conf to .gitea/workflows/ - Add bats-report.sh for TAP→HTML conversion - Update ci.yml with setup→needs→with pattern - Add ADR 0006 directory ownership - Document cross-job config propagation in ci-pipeline-practices.md - Remove config.yaml, scripts/load-config.sh unused
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
name: Config Provider Library
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
config_path:
|
||||
required: true
|
||||
type: string
|
||||
outputs:
|
||||
env_json:
|
||||
value: ${{ jobs.parse-config.outputs.json_data }}
|
||||
|
||||
jobs:
|
||||
parse-config:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
json_data: ${{ steps.convert.outputs.JSON_OUT }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- id: convert
|
||||
run: |
|
||||
JSON_STRING=$(jq -R -s '
|
||||
split("\n")
|
||||
| map(select(length > 0 and (startswith("#") | not)))
|
||||
| map(split("="))
|
||||
| map({(.[0]): .[1]})
|
||||
| add
|
||||
' "${{ inputs.config_path }}")
|
||||
|
||||
CLEAN_JSON=$(echo "$JSON_STRING" | jq -c .)
|
||||
echo "JSON_OUT=$CLEAN_JSON" >> "$GITHUB_OUTPUT"
|
||||
Reference in New Issue
Block a user