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