1- name : ci
1+ name : CI
22
33on :
44 push :
@@ -22,14 +22,109 @@ jobs:
2222 registry : ghcr.io
2323 username : ${{ github.actor }}
2424 password : ${{ secrets.GITHUB_TOKEN }}
25- - name : Build images
26- uses : hiberbee/github-action- skaffold@1.19 .0
25+ - name : Setup Skaffold
26+ uses : heypigeonhq/setup- skaffold@v1.0 .0
2727 with :
28- skaffold-version : 2.14.1
29- command : build
30- file-output : build/images.json
28+ version : 2.14.1
29+ - name : Build images
30+ run : |
31+ mkdir build
32+ skaffold build --file-output=build/images.json
3133 - name : Archive image tags
3234 uses : actions/upload-artifact@v4
3335 with :
3436 name : images
35- path : build/images.json
37+ path : build/images.json
38+
39+ verify :
40+ name : Verify
41+ runs-on : ubuntu-latest
42+ env :
43+ CODECOV_FILE : build/coverage.xml
44+ steps :
45+ - name : Checkout
46+ uses : actions/checkout@v4
47+ - name : Setup Go
48+ uses : actions/setup-go@v5
49+ with :
50+ go-version : ' 1.24'
51+ - name : Generate
52+ run : make generate format
53+ - name : No changed files
54+ run : git diff --name-status --exit-code
55+ - name : Lint
56+ run : make lint
57+ - name : Integration test
58+ run : make integration-test coverage
59+ - name : Generate
60+ uses : irongut/CodeCoverageSummary@v1.3.0
61+ with :
62+ filename : build/coverage.xml,build/coverage.e2e.xml
63+ badge : true
64+ format : markdown
65+ output : both
66+ - name : Archive coverage report
67+ uses : actions/upload-artifact@v4
68+ with :
69+ name : coverage
70+ path : ${{ env.CODECOV_FILE }}
71+
72+ # e2e:
73+ # name: E2E Test
74+ # needs:
75+ # - verify
76+ # - image-build
77+ # runs-on: ubuntu-latest
78+ # env:
79+ # CODECOV_FILE: build/coverage.e2e.xml
80+ # SKAFFOLD_NAMESPACE: sandbox
81+ # SKAFFOLD_RUN_ID: e2e-test
82+ # steps:
83+ # - name: Checkout
84+ # uses: actions/checkout@v4
85+ # - name: Setup Skaffold
86+ # uses: heypigeonhq/setup-skaffold@v1.0.0
87+ # with:
88+ # version: 2.14.1
89+ # - name: Create Kind cluster
90+ # uses: helm/kind-action@v1
91+ # with:
92+ # cluster_name: kind-etcd
93+ # - name: Bootstrap
94+ # run: |
95+ # kustomize build --enable-helm config/bootstrap | kubectl apply -f -
96+ # kubectl --namespace cert-manager wait --for=condition=Available deployment/cert-manager-webhook
97+ # kubectl get namespace sandbox 2>/dev/null || kubectl create namespace sandbox
98+ # - name: Build images
99+ # run: |
100+ # mkdir build
101+ # skaffold build --file-output=build/images.json
102+ # - name: Deploy
103+ # run: skaffold deploy --profile e2e --build-artifacts=build/images.json
104+ # - name: Run E2E tests
105+ # run: skaffold verify --namespace sandbox --build-artifacts=build/images.json
106+ # - name: Fetch coverage
107+ # run: make fetch-coverage
108+ # - name: Archive coverage report
109+ # uses: actions/upload-artifact@v4
110+ # with:
111+ # name: coverage-e2e
112+ # path: ${{ env.CODECOV_FILE }}
113+
114+ # coverage:
115+ # name: Coverage Report
116+ # needs:
117+ # - verify
118+ # - e2e
119+ # runs-on: ubuntu-latest
120+ # steps:
121+ # - name: Download coverage report
122+ # uses: actions/download-artifact@v4
123+ # with:
124+ # name: coverage
125+ # path: build
126+ # - name: Download E2E coverage report
127+ # uses: actions/download-artifact@v4
128+ # with:
129+ # name: coverage-e2e
130+ # path: build
0 commit comments