CI / CI (pull_request) Failing after 3m38s
Implement Kubernetes-native CI/CD with Tekton Pipelines: ARCHITECTURE: - Tekton Task: Runs integration tests in container - Tekton Pipeline: Orchestrates test execution - ArgoCD Application: Manages Tekton installation - CI: Triggers PipelineRun, reads results, promotes image FLOW: 1. CI builds image:sha 2. CI creates PipelineRun with new image 3. Tekton controller watches PipelineRun 4. Task executes integration tests 5. Results written to PipelineRun status 6. CI reads status, promotes to :latest if pass 7. ArgoCD detects :latest change and deploys BENEFITS: ✓ Kubernetes-native (CRDs, no external dependencies) ✓ DRY (parameterized Task/Pipeline) ✓ SOLID (single responsibility, clean interfaces) ✓ GitOps (Tekton managed by ArgoCD) ✓ Observable (logs, status, results) ✓ Secure (non-root, resource limits) FILES: - k8s/tekton/task-integration-test.yaml: Task definition - k8s/tekton/pipeline-integration-test.yaml: Pipeline definition - k8s/tekton/kustomization.yaml: Kustomize management - k8s/tekton/README.md: Documentation - k8s/argocd-apps/tekton.yaml: ArgoCD Application - .gitea/workflows/ci.yaml: Updated CI to use Tekton NEXT: 1. Merge PR 2. ArgoCD syncs and installs Tekton 3. First git push triggers PipelineRun 4. Integration tests run in cluster 5. Results feedback to CI
36 lines
936 B
YAML
36 lines
936 B
YAML
apiVersion: tekton.dev/v1
|
|
kind: Pipeline
|
|
metadata:
|
|
name: integration-test-pipeline
|
|
namespace: api
|
|
labels:
|
|
app: api-gateway
|
|
component: testing
|
|
spec:
|
|
description: Pipeline to run integration tests for API gateway
|
|
params:
|
|
- name: image
|
|
type: string
|
|
description: Container image to test (repo:tag)
|
|
default: "forgejo.riotpiao.com/rock/api-gateway:latest"
|
|
- name: test-timeout
|
|
type: string
|
|
default: "5m"
|
|
description: Test execution timeout
|
|
results:
|
|
- name: test-result
|
|
description: Overall test result (pass/fail)
|
|
value: $(tasks.run-integration-tests.results.result)
|
|
- name: test-message
|
|
description: Test summary message
|
|
value: $(tasks.run-integration-tests.results.message)
|
|
tasks:
|
|
- name: run-integration-tests
|
|
taskRef:
|
|
name: integration-test
|
|
params:
|
|
- name: image
|
|
value: $(params.image)
|
|
- name: timeout
|
|
value: $(params.test-timeout)
|