-
Notifications
You must be signed in to change notification settings - Fork 86
93 lines (86 loc) · 3.5 KB
/
e2e.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
81
82
83
84
85
86
87
88
89
90
91
92
93
name: e2e
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
permissions:
contents: read
jobs:
git-test:
if: github.actor != 'dependabot[bot]'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
provider:
- gitkit
- gitlab-ce
- gitlab
- github
- bitbucket-server
steps:
- name: Checkout
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
# Since this is a monorepo, changes in other packages will also trigger these e2e tests
# meant only for the git package. This detects us whether the changed files are part of the
# git directory. Subsequent steps check if this is true, before executing, thus helping us
# run these tests only when there are changes to the git package.
- name: Check for changes to git/ or e2e workflow
uses: dorny/paths-filter@v2
id: filter
with:
filters: |
e2e:
- '.github/workflows/e2e.yaml'
git:
- 'git/**'
- name: Setup Go
if: ${{ steps.filter.outputs.git == 'true' || steps.filter.outputs.e2e == 'true' || github.event_name == 'workflow_dispatch' }}
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
with:
go-version: 1.20.x
# https://github.com/actions/setup-go/blob/main/docs/adrs/0000-caching-dependencies.md#example-of-real-use-cases
cache-dependency-path: |
**/go.sum
**/go.mod
- name: Run tests
if: ${{ steps.filter.outputs.git == 'true' || steps.filter.outputs.e2e == 'true' || github.event_name == 'workflow_dispatch' }}
run: |
run_e2e=true
# don't run e2e tests for PRs from forked repos for Github, GitLab and Bitbucket Server
if [[ ${{ github.event_name }} != "pull_request" ]] || \
[[ "${{ github.event.pull_request.head.repo.full_name }}" = ${{ github.repository }} ]]; then
if [[ ${{ matrix.provider }} = "github" ]]; then
export GO_TEST_PREFIX="TestGitHubE2E"
export GITHUB_USER="fluxcd-gitprovider-bot"
export GITHUB_ORG="fluxcd-testing"
export GITHUB_TOKEN="${{ secrets.GITPROVIDER_BOT_TOKEN }}"
elif [[ ${{ matrix.provider }} = "gitlab" ]]; then
export GO_TEST_PREFIX="TestGitLabE2E"
export GITLAB_USER="fluxcd-gitprovider-bot"
export GITLAB_GROUP="fluxcd-testing"
export GITLAB_PAT="${{ secrets.GITLAB_BOT_TOKEN }}"
elif [[ ${{ matrix.provider }} = "bitbucket-server" ]]; then
export GO_TEST_PREFIX="TestBitbucketServerE2E"
export STASH_PROJECT_KEY="GOG"
export STASH_TOKEN="${{ secrets.STASH_TOKEN }}"
export STASH_DOMAIN="${{ secrets.STASH_DOMAIN }}"
export STASH_USER="${{ secrets.STASH_USER }}"
fi
else
run_e2e=false
fi
if [[ ${{ matrix.provider }} = "gitkit" ]]; then
export GO_TEST_PREFIX="TestGitKitE2E"
run_e2e=true
elif [[ ${{ matrix.provider }} = "gitlab-ce" ]]; then
export GO_TEST_PREFIX="TestGitLabCEE2E"
run_e2e=true
fi
if [ $run_e2e = true ]; then
cd git/internal/e2e && GO_TEST_PREFIX="${GO_TEST_PREFIX}" ./run.sh
else
echo "skipping tests for ${{ matrix.provider }}"
fi