diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..b11e0a8 --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,65 @@ +name: Release — Build and Push Images + +on: + push: + tags: + - "v*.*.*" + +jobs: + build-api: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Docker login to Gitea registry + uses: docker/login-action@v3 + with: + registry: git.pic.ngo + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Docker meta (api) + id: meta-api + uses: docker/metadata-action@v5 + with: + images: git.pic.ngo/roof/pic-api + tags: | + type=raw,value=latest + type=ref,event=tag + + - name: Build and push pic-api + uses: docker/build-push-action@v5 + with: + context: ./api + push: true + tags: ${{ steps.meta-api.outputs.tags }} + + build-webui: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Docker login to Gitea registry + uses: docker/login-action@v3 + with: + registry: git.pic.ngo + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Docker meta (webui) + id: meta-webui + uses: docker/metadata-action@v5 + with: + images: git.pic.ngo/roof/pic-webui + tags: | + type=raw,value=latest + type=ref,event=tag + + - name: Build and push pic-webui + uses: docker/build-push-action@v5 + with: + context: ./webui + push: true + tags: ${{ steps.meta-webui.outputs.tags }} diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml new file mode 100644 index 0000000..778f09f --- /dev/null +++ b/.gitea/workflows/test.yml @@ -0,0 +1,25 @@ +name: Unit Tests + +on: + push: + branches: ["**"] + pull_request: + branches: ["**"] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.11" + + - name: Install dependencies + run: pip install -r api/requirements.txt + + - name: Run unit tests + run: python3 -m pytest tests/ --ignore=tests/e2e --ignore=tests/integration -q