Skip to content

Commit f6e80ef

Browse files
pratap0007claude
andcommitted
fix: Skip GitHub API-dependent examples in e2e tests
The github-add-changed-files-* and github-owners examples require real GitHub API access to fetch PR data, which is not available in CI environment. These tests were failing because they couldn't authenticate with GitHub API. Removed these examples from the e2e test suite. They can still be tested manually with proper GitHub credentials. Remove the presubmit ci and update ci from main branch Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 59b9df5 commit f6e80ef

8 files changed

Lines changed: 357 additions & 210 deletions

File tree

.github/workflows/ci.yaml

Lines changed: 217 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,217 @@
1+
name: ci
2+
3+
on: [pull_request] # yamllint disable-line rule:truthy
4+
5+
concurrency:
6+
group: ${{ github.workflow }}-${{ github.event.pull-request.number || github.ref }}
7+
cancel-in-progress: true
8+
9+
defaults:
10+
run:
11+
shell: bash
12+
13+
permissions:
14+
contents: read
15+
16+
jobs:
17+
changes:
18+
name: categorize changes
19+
runs-on: ubuntu-latest
20+
outputs:
21+
non-docs: ${{ steps.detect.outputs.non-docs }}
22+
yaml: ${{ steps.detect.outputs.yaml }}
23+
steps:
24+
- name: Get base depth
25+
id: base-depth
26+
env:
27+
PR_COMMITS: ${{ github.event.pull_request.commits }}
28+
run: echo "base-depth=$(expr "${PR_COMMITS}" + 1)" >> $GITHUB_OUTPUT
29+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
30+
with:
31+
ref: ${{ github.event.pull_request.head.sha }}
32+
fetch-depth: ${{ steps.base-depth.outputs.base-depth }}
33+
persist-credentials: false
34+
- name: detect
35+
id: detect
36+
env:
37+
GITHUB_BASE_REF_NAME: ${{ github.base_ref }}
38+
BASE_SHA: ${{ github.event.pull_request.base.sha }}
39+
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
40+
run: |
41+
git fetch origin "${GITHUB_BASE_REF_NAME}"
42+
CHANGED_FILES=$(git diff --name-only "${BASE_SHA}...${HEAD_SHA}" | tr ' ' '\n')
43+
44+
echo -e "Changed files:\n${CHANGED_FILES}"
45+
46+
if [[ -n "${CHANGED_FILES}" ]]; then
47+
NON_DOCS='false'
48+
YAML='false'
49+
50+
while read -r file; do
51+
if [[ "$file" != *.md ]]; then
52+
NON_DOCS='true'
53+
break
54+
fi
55+
done <<< "${CHANGED_FILES}"
56+
57+
while read -r file; do
58+
if [[ "$file" == *.yaml || "$file" == *.yml ]]; then
59+
YAML='true'
60+
break
61+
fi
62+
done <<< "${CHANGED_FILES}"
63+
64+
echo "non-docs=${NON_DOCS}" | tee -a $GITHUB_OUTPUT
65+
echo "yaml=${YAML}" | tee -a $GITHUB_OUTPUT
66+
fi
67+
68+
build:
69+
name: build
70+
runs-on: ubuntu-latest
71+
needs: [changes]
72+
if: ${{ needs.changes.outputs.non-docs == 'true' }}
73+
steps:
74+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
75+
with:
76+
persist-credentials: false
77+
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
78+
with:
79+
go-version-file: "go.mod"
80+
- name: build
81+
run: |
82+
go build -v ./...
83+
linting:
84+
name: lint
85+
runs-on: ubuntu-latest
86+
needs: [changes]
87+
permissions:
88+
contents: read
89+
checks: write # Used by golangci-lint-action to annotate code in the PR
90+
steps:
91+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
92+
with:
93+
fetch-depth: 0
94+
persist-credentials: false
95+
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
96+
with:
97+
go-version-file: "go.mod"
98+
- name: gofmt
99+
if: ${{ needs.changes.outputs.non-docs == 'true' }}
100+
run: |
101+
gofmt_out=$(gofmt -d $(find * -name '*.go' ! -path 'vendor/*' ! -path 'third_party/*'))
102+
if [[ -n "$gofmt_out" ]]; then
103+
failed=1
104+
fi
105+
echo "$gofmt_out"
106+
- name: golangci-lint
107+
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0
108+
if: ${{ needs.changes.outputs.non-docs == 'true' }}
109+
with:
110+
version: v2.8.0
111+
args: --new-from-merge-base=origin/${{ github.base_ref }} --timeout=10m
112+
- name: yamllint
113+
if: ${{ needs.changes.outputs.yaml == 'true' }}
114+
run: |
115+
sudo apt-get update && sudo apt-get install -y yamllint
116+
make yamllint
117+
- name: check-license
118+
if: ${{ needs.changes.outputs.non-docs == 'true' }}
119+
run: |
120+
go install github.com/google/go-licenses@v1.0.0
121+
go-licenses check ./...
122+
tests:
123+
needs: [build]
124+
name: test
125+
runs-on: ubuntu-latest
126+
steps:
127+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
128+
with:
129+
persist-credentials: false
130+
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
131+
with:
132+
go-version-file: "go.mod"
133+
- name: unit-test
134+
run: |
135+
make test-unit-verbose-and-race
136+
generated:
137+
needs: [build]
138+
name: Check generated code
139+
runs-on: ubuntu-latest
140+
steps:
141+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
142+
with:
143+
persist-credentials: false
144+
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
145+
with:
146+
go-version-file: "go.mod"
147+
- name: generated
148+
run: |
149+
./hack/verify-codegen.sh
150+
multi-arch-build:
151+
needs: [build]
152+
name: Multi-arch build
153+
runs-on: ubuntu-latest
154+
env:
155+
KOCACHE: /tmp/ko-cache
156+
steps:
157+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
158+
with:
159+
persist-credentials: false
160+
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
161+
with:
162+
go-version-file: "go.mod"
163+
- name: Cache ko build cache
164+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
165+
with:
166+
path: /tmp/ko-cache
167+
key: ${{ runner.os }}-${{ runner.arch }}-ko-${{ hashFiles('go.sum') }}
168+
restore-keys: |
169+
${{ runner.os }}-${{ runner.arch }}-ko-
170+
- uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9
171+
- name: ko-resolve
172+
run: |
173+
KO_DOCKER_REPO=example.com ko resolve --platform=all --push=false -R -f config 1>/dev/null
174+
KO_DOCKER_REPO=example.com ko resolve --platform=all --push=false -f config/interceptors 1>/dev/null
175+
e2e-tests:
176+
needs: [build]
177+
uses: ./.github/workflows/e2e-matrix.yml
178+
179+
ci-summary:
180+
name: CI summary
181+
needs: [build, linting, tests, generated, multi-arch-build, e2e-tests]
182+
runs-on: ubuntu-latest
183+
if: always()
184+
steps:
185+
- name: Check CI results
186+
env:
187+
BUILD: ${{ needs.build.result }}
188+
LINTING: ${{ needs.linting.result }}
189+
TESTS: ${{ needs.tests.result }}
190+
GENERATED: ${{ needs.generated.result }}
191+
MULTI_ARCH_BUILD: ${{ needs.multi-arch-build.result }}
192+
E2E_TESTS: ${{ needs.e2e-tests.result }}
193+
run: |
194+
results=(
195+
"build=${BUILD}"
196+
"linting=${LINTING}"
197+
"tests=${TESTS}"
198+
"generated=${GENERATED}"
199+
"multi-arch-build=${MULTI_ARCH_BUILD}"
200+
"e2e-tests=${E2E_TESTS}"
201+
)
202+
failed=0
203+
for r in "${results[@]}"; do
204+
name="${r%%=*}"
205+
result="${r#*=}"
206+
echo "${name}: ${result}"
207+
if [ "$result" != "success" ] && [ "$result" != "skipped" ]; then
208+
failed=1
209+
fi
210+
done
211+
if [ "$failed" -eq 1 ]; then
212+
echo ""
213+
echo "Some CI jobs failed or were cancelled"
214+
exit 1
215+
fi
216+
echo ""
217+
echo "All CI checks passed"

.github/workflows/e2e-matrix.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Triggers Integration
2+
3+
on: [workflow_call]
4+
5+
defaults:
6+
run:
7+
shell: bash
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
e2e-tests:
14+
concurrency:
15+
group: ${{ github.workflow }}-e2e-${{ github.event.pull_request.number || github.ref }}
16+
cancel-in-progress: true
17+
name: e2e tests
18+
runs-on: ubuntu-latest
19+
env:
20+
KO_DOCKER_REPO: registry.local:5000/tekton
21+
CLUSTER_DOMAIN: c${{ github.run_id }}.local
22+
ARTIFACTS: ${{ github.workspace }}/artifacts
23+
KOCACHE: /tmp/ko-cache
24+
25+
steps:
26+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
27+
with:
28+
persist-credentials: false
29+
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
30+
with:
31+
go-version-file: "go.mod"
32+
- name: Cache ko build cache
33+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
34+
with:
35+
path: /tmp/ko-cache
36+
key: ${{ runner.os }}-${{ runner.arch }}-ko-${{ hashFiles('go.sum') }}
37+
restore-keys: |
38+
${{ runner.os }}-${{ runner.arch }}-ko-
39+
- uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9
40+
41+
- name: Install Dependencies
42+
working-directory: ./
43+
run: |
44+
echo '::group:: install go-junit-report'
45+
go install github.com/jstemmer/go-junit-report@v0.9.1
46+
echo '::endgroup::'
47+
48+
echo '::group::create required folders'
49+
mkdir -p "${ARTIFACTS}"
50+
echo '::endgroup::'
51+
52+
echo "${GOPATH}/bin" >> "$GITHUB_PATH"
53+
54+
- name: Run Integration tests
55+
env:
56+
GOTOOLCHAIN: auto
57+
run: |
58+
./test/setup-kind.sh \
59+
--registry-url $(echo ${KO_DOCKER_REPO} | cut -d'/' -f 1) \
60+
--cluster-suffix "${CLUSTER_DOMAIN}" \
61+
--nodes 3 \
62+
--k8s-version v1.29.x \
63+
--e2e-script ./test/gh-e2e-tests.sh \
64+
--e2e-env ./test/e2e-tests-kind-prow.env
65+
66+
- name: Upload test results
67+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
68+
if: ${{ failure() }}
69+
with:
70+
path: ${{ env.ARTIFACTS }}

0 commit comments

Comments
 (0)