Some checks failed
Lint Code / lint (push) Failing after 2m2s
CI/CD Pipeline / lint (push) Successful in 0s
Run Tests / test (3.12) (push) Successful in 54s
CI/CD Pipeline / build-and-release (push) Has been cancelled
CI/CD Pipeline / test (push) Has been cancelled
CI/CD Pipeline / notify (push) Has been cancelled
Run Tests / test (3.13) (push) Has been cancelled
- Create a GitHub Actions workflow for testing with Python 3.12 and 3.13. - Update Makefile to include release management commands and pipeline checks. - Document the CI/CD pipeline structure and usage in PIPELINE.md. - Add structlog for structured logging and enhance logging utilities. - Implement release management script for automated versioning and tagging. - Modify logging configuration to support structured logging and improved formatting. - Update dependencies in pyproject.toml and poetry.lock to include structlog. - Enhance access logging in server and middleware to include structured data.
50 lines
1.9 KiB
YAML
50 lines
1.9 KiB
YAML
name: CI/CD Pipeline
|
|
run-name: ${{ gitea.actor }} started full pipeline
|
|
on:
|
|
push:
|
|
branches: ["*"]
|
|
tags: ["v*"]
|
|
pull_request:
|
|
branches: ["dev", "master", "main"]
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: 'Release version (e.g., v0.6.1)'
|
|
required: false
|
|
default: ''
|
|
|
|
jobs:
|
|
lint:
|
|
uses: ./.gitea/workflows/lint.yaml
|
|
|
|
test:
|
|
if: github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
|
|
needs: lint
|
|
uses: ./.gitea/workflows/test.yaml
|
|
|
|
build-and-release:
|
|
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch'
|
|
needs: [lint, test]
|
|
uses: ./.gitea/workflows/release.yaml
|
|
with:
|
|
version: ${{ github.event.inputs.version }}
|
|
|
|
notify:
|
|
runs-on: ubuntu-latest
|
|
needs: [lint, test, build-and-release]
|
|
if: always()
|
|
steps:
|
|
- name: Pipeline Summary
|
|
run: |
|
|
echo "## Pipeline Execution Results" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "| Stage | Status |" >> $GITHUB_STEP_SUMMARY
|
|
echo "|-------|--------|" >> $GITHUB_STEP_SUMMARY
|
|
echo "| Linting | ${{ needs.lint.result == 'success' && 'Success' || 'Failed' }} |" >> $GITHUB_STEP_SUMMARY
|
|
echo "| Tests | ${{ needs.test.result == 'success' && 'Success' || needs.test.result == 'skipped' && 'Skipped' || 'Failed' }} |" >> $GITHUB_STEP_SUMMARY
|
|
echo "| Build and Release | ${{ needs.build-and-release.result == 'success' && 'Success' || needs.build-and-release.result == 'skipped' && 'Skipped' || 'Failed' }} |" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
if [[ "${{ needs.build-and-release.result }}" == "success" ]]; then
|
|
echo "**Draft release created!** Check and publish in Gitea interface." >> $GITHUB_STEP_SUMMARY
|
|
fi
|