on: workflow_dispatch: inputs: verbose: description: "Verbose" required: false default: false type: boolean build: description: "Build container image" required: false default: false type: boolean push: description: "Push container image to registry" required: false default: false type: boolean jobs: build: runs-on: container container: image: tiptop:5000/treetrail-backend-ci volumes: - "uv_cache:/root/.cache/uv" - "ca-cert:/etc/containers/certs.d" services: treetrail-database: image: treetrail-database env: PYTHONPATH: /app/lib/python3.12/site-packages UV_PROJECT_ENVIRONMENT: /app steps: - uses: actions/checkout@v4 - name: Install dependencies (to uv's project environment) run: uv sync --locked --no-dev --no-editable - name: Install dependencies for testing run: uv pip install httpx - name: Echo env if: ${{ inputs.verbose }} run: | echo '${{ toJSON(env) }}' - name: Run basic test (bootstrap) run: pytest -s tests/basic.py - name: Install podman and buildah if: ${{ inputs.build }} run: | apt-get install -y --no-install-recommends podman buildah - name: Workaround for bug of podman-login run: | mkdir $HOME/.docker echo "{ \"auths\": {} }" > $HOME/.docker/config.json - name: Log in to container registry uses: actions/podman-login@v1 with: registry: ${{ vars.REGISTRY }} username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_PASSWORD }} auth_file_path: /tmp/auth.json - name: Build container image if: ${{ inputs.build }} uses: actions/buildah-build@v1 with: image: treetrail-backend #tags: foo # v1 ${{ github.sha }} containerfiles: | ./Containerfile.for_runner - name: Push container image to registry uses: actions/push-to-registry@v2 if: ${{ inputs.push }} with: registry: "docker://${{ vars.REGISTRY }}" image: treetrail-backend tags: latest