name: "Setup authentik testing environment"
description: "Setup authentik testing environment"

inputs:
  postgresql_tag:
    description: "Optional postgresql image tag"
    default: "12"

runs:
  using: "composite"
  steps:
    - name: Install poetry
      shell: bash
      run: |
        pipx install poetry || true
        sudo apt update
        sudo apt install -y libxmlsec1-dev pkg-config gettext
    - name: Setup python and restore poetry
      uses: actions/setup-python@v3
      with:
        python-version: "3.11"
        cache: "poetry"
    - name: Setup node
      uses: actions/setup-node@v3
      with:
        node-version: "20"
        cache: "npm"
        cache-dependency-path: web/package-lock.json
    - name: Setup dependencies
      shell: bash
      run: |
        export PSQL_TAG=${{ inputs.postgresql_tag }}
        docker-compose -f .github/actions/setup/docker-compose.yml up -d
        poetry env use python3.11
        poetry install
        cd web && npm ci
    - name: Generate config
      shell: poetry run python {0}
      run: |
        from authentik.lib.generators import generate_id
        from yaml import safe_dump

        with open("local.env.yml", "w") as _config:
            safe_dump(
                {
                    "log_level": "debug",
                    "secret_key": generate_id(),
                },
                _config,
                default_flow_style=False,
            )