-
Notifications
You must be signed in to change notification settings - Fork 26
80 lines (70 loc) · 2.45 KB
/
pull-request.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# Jobs defined in this file are responsible for things that do not require container image
# but still relevant to the codebase such as unit tests, linting etc
name: Pull Request
on:
pull_request:
types: [ synchronize, opened, reopened, ready_for_review ]
branches:
- "main"
permissions:
contents: read
env:
GITLEAKS_VERSION: 8.21.0
jobs:
gitleaks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Fetch gitleaks ${{ env.GITLEAKS_VERSION }}
run: curl -Lso gitleaks.tar.gz https://github.com/gitleaks/gitleaks/releases/download/v${{ env.GITLEAKS_VERSION }}/gitleaks_${{ env.GITLEAKS_VERSION }}_linux_x64.tar.gz && tar -xvzf ./gitleaks.tar.gz
- name: Run gitleaks
# Scan commits between base and head of the pull request
run: ./gitleaks detect --log-opts=${PULL_BASE_SHA}...${PULL_HEAD_SHA} --verbose --redact
env:
PULL_BASE_SHA: ${{ github.event.pull_request.base.sha }}
PULL_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
build-image:
name: Build manager image
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- uses: ./.github/actions/build-manager-image
with:
operator-image-name: "api-gateway-manager:PR-${{github.event.number}}"
unit-tests:
name: Unit tests & lint
if: github.event.pull_request.draft == false
uses: ./.github/workflows/pull-unit-lint.yaml
secrets: inherit
integration-tests:
name: Integration tests
if: github.event.pull_request.draft == false
needs: [build-image]
uses: ./.github/workflows/pull-integration.yaml
secrets: inherit
ui-tests:
name: UI tests
if: github.event.pull_request.draft == false
needs: [build-image]
uses: ./.github/workflows/ui-tests.yaml
secrets: inherit
verify-pins:
name: Verify-commit-pins
if: github.event.pull_request.draft == false
uses: ./.github/workflows/verify-commit-pins.yaml
secrets: inherit
pull-request-status:
needs: [ build-image, unit-tests, integration-tests, ui-tests, verify-pins ]
runs-on: ubuntu-latest
if: always()
steps:
- if: ${{ !(contains(needs.*.result, 'failure')) }}
run: exit 0
- if: ${{ contains(needs.*.result, 'failure') }}
run: exit 1