84 lines
2.3 KiB
YAML
84 lines
2.3 KiB
YAML
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 (with another workaround)
|
|
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
|