name: Config Provider on: workflow_call: inputs: config_path: required: true type: string secrets: GITEA_TOKEN: required: true GIT_PAGES_PUBLISH_TOKEN: required: true outputs: env_json: value: ${{ jobs.parse-config.outputs.json_data }} config_path: value: ${{ jobs.parse-config.outputs.config_path }} env: CI_CONF_FILE: ${{ inputs.config_path }} GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GIT_PAGES_PUBLISH_TOKEN: ${{ secrets.GIT_PAGES_PUBLISH_TOKEN }} jobs: parse-config: runs-on: ubuntu-latest outputs: json_data: ${{ steps.convert.outputs.JSON_OUT }} config_path: ${{ steps.set-path.outputs.CONFIG_PATH }} steps: - uses: actions/checkout@v4 - uses: actions/checkout@v4 with: repository: niko/gitea-ci-library path: .ci - name: Validate CI config run: bash .ci/scripts/ci-validate.sh - 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" - id: set-path run: echo "CONFIG_PATH=${{ inputs.config_path }}" >> "$GITHUB_OUTPUT"