Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
9be40761
Unverified
Commit
9be40761
authored
Oct 23, 2024
by
Derek Nola
Committed by
GitHub
Oct 23, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reduce the number of GH api request for E2E nightly (#11148)
Signed-off-by:
Derek Nola
<
derek.nola@suse.com
>
parent
8ce04d3a
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
57 additions
and
5 deletions
+57
-5
latest_commit.sh
tests/e2e/scripts/latest_commit.sh
+22
-2
run_tests.sh
tests/e2e/scripts/run_tests.sh
+26
-1
vagrantdefaults.rb
tests/e2e/vagrantdefaults.rb
+9
-2
No files found.
tests/e2e/scripts/latest_commit.sh
View file @
9be40761
...
...
@@ -4,8 +4,6 @@ branch=$1
output_file
=
$2
# Grabs the last 10 commit SHA's from the given branch, then purges any commits that do not have a passing CI build
iterations
=
0
commits_str
=
$(
curl
-s
-H
'Accept: application/vnd.github.v3+json'
"https://api.github.com/repos/k3s-io/k3s/commits?per_page=10&sha=
$branch
"
| jq
-j
-r
'.[] | .sha, " "'
)
read
-a
commits
<<<
"
$commits_str
"
# The VMs take time on startup to hit aws, wait loop until we can
while
!
curl
-s
--fail
https://k3s-ci-builds.s3.amazonaws.com
>
/dev/null
;
do
...
...
@@ -17,6 +15,28 @@ while ! curl -s --fail https://k3s-ci-builds.s3.amazonaws.com > /dev/null; do
sleep
1
done
if
[
-n
"
$GH_TOKEN
"
]
;
then
response
=
$(
curl
-s
-H
"Authorization: token
$GH_TOKEN
"
-H
'Accept: application/vnd.github.v3+json'
"https://api.github.com/repos/k3s-io/k3s/commits?per_page=10&sha=
$branch
"
)
else
response
=
$(
curl
-s
-H
'Accept: application/vnd.github.v3+json'
"https://api.github.com/repos/k3s-io/k3s/commits?per_page=10&sha=
$branch
"
)
fi
type
=
$(
echo
"
$response
"
| jq
-r
type
)
# Verify if the response is an array with the k3s commits
if
[[
$type
==
"object"
]]
;
then
message
=
$(
echo
"
$response
"
| jq
-r
.message
)
if
[[
$message
==
"API rate limit exceeded for "
*
]]
;
then
echo
"Github API rate limit exceeded"
exit
1
fi
echo
"Github API returned a non-expected response
${
message
}
"
exit
1
elif
[[
$type
==
"array"
]]
;
then
commits_str
=
$(
echo
"
$response
"
| jq
-j
-r
'.[] | .sha, " "'
)
fi
read
-a
commits
<<<
"
$commits_str
"
for
commit
in
"
${
commits
[@]
}
"
;
do
if
curl
-s
--fail
https://k3s-ci-builds.s3.amazonaws.com/k3s-
$commit
.sha256sum
>
/dev/null
;
then
echo
"
$commit
"
>
"
$output_file
"
...
...
tests/e2e/scripts/run_tests.sh
View file @
9be40761
...
...
@@ -6,6 +6,26 @@ agentcount=${3:-1}
db
=
${
4
:-
"etcd"
}
hardened
=
${
5
:-
""
}
cleanup
()
{
for
net
in
$(
virsh net-list
--all
|
tail
-n
+2 |
tr
-s
' '
|
cut
-d
' '
-f2
|
grep
-v
default
)
;
do
virsh net-destroy
"
$net
"
virsh net-undefine
"
$net
"
done
for
domain
in
$(
virsh list
--all
|
tail
-n
+2 |
tr
-s
' '
|
cut
-d
' '
-f3
)
;
do
virsh destroy
"
$domain
"
virsh undefine
"
$domain
"
--remove-all-storage
done
for
vm
in
$(
vagrant global-status |tr
-s
' '
|tail +3 |grep
"/"
|cut
-d
' '
-f5
)
;
do
cd
$vm
vagrant destroy
-f
cd
..
done
# Prune Vagrant global status
vagrant global-status
--prune
}
E2E_EXTERNAL_DB
=
$db
&&
export
E2E_EXTERNAL_DB
E2E_REGISTRY
=
true
&&
export
E2E_REGISTRY
...
...
@@ -18,7 +38,10 @@ OS=$(echo "$nodeOS"|cut -d'/' -f2)
echo
"
$OS
"
vagrant global-status |
awk
'/running/'
|cut
-c1-7
| xargs
-r
-d
'\n'
-n
1
--
vagrant destroy
-f
E2E_RELEASE_CHANNEL
=
"commit"
&&
export
E2E_RELEASE_CHANNEL
# To reduce GH API requsts, we grab the latest commit on the host and pass it to the tests
./scripts/latest_commit.sh master latest_commit.txt
E2E_RELEASE_VERSION
=
$(
cat
latest_commit.txt
)
&&
export
E2E_RELEASE_VERSION
echo
'RUNNING DUALSTACK TEST'
E2E_HARDENED
=
"
$hardened
"
/usr/local/go/bin/go
test
-v
dualstack/dualstack_test.go
-nodeOS
=
"
$nodeOS
"
-serverCount
=
1
-agentCount
=
1
-timeout
=
30m
-json
-ci
|tee k3s_
"
$OS
"
.log
...
...
@@ -44,6 +67,8 @@ echo 'RUNNING SNAPSHOT AND RESTORE TEST'
echo
'RUNNING ROTATE CUSTOM CA TEST'
/usr/local/go/bin/go
test
-v
rotateca/rotateca_test.go
-nodeOS
=
"
$nodeOS
"
-serverCount
=
1
-agentCount
=
1
-timeout
=
30m
-json
-ci
|
tee
-a
k3s_
"
$OS
"
.log
# For upgrade test we use the release channel install as the starting point
unset
E2E_RELEASE_VERSION
E2E_RELEASE_CHANNEL
=
"latest"
&&
export
E2E_RELEASE_CHANNEL
echo
'RUNNING CLUSTER UPGRADE TEST'
E2E_REGISTRY
=
true
/usr/local/go/bin/go
test
-v
upgradecluster/upgradecluster_test.go
-nodeOS
=
"
$nodeOS
"
-serverCount
=
$((
servercount
))
-agentCount
=
$((
agentcount
))
-timeout
=
1h
-json
-ci
|
tee
-a
k3s_
"
$OS
"
.log
tests/e2e/vagrantdefaults.rb
View file @
9be40761
...
...
@@ -14,11 +14,18 @@ def defaultOSConfigure(vm)
end
end
# getInstallType is used to control which version of k3s to install
# To install a specific version, set release_version to the version number
# To install a specific commit, set release_version to the commit SHA
# To install the latest commit from a branch, leave release_version empty
# and set release_channel to "commit" and set branch to the branch name
def
getInstallType
(
vm
,
release_version
,
branch
,
release_channel
=
''
)
if
release_version
==
"skip"
install_type
=
"INSTALL_K3S_SKIP_DOWNLOAD=true"
elsif
!
release_version
.
empty?
elsif
!
release_version
.
empty?
&&
release_version
.
start_with?
(
"v1"
)
return
"INSTALL_K3S_VERSION=
#{
release_version
}
"
elsif
!
release_version
.
empty?
return
"INSTALL_K3S_COMMIT=
#{
release_version
}
"
elsif
!
release_channel
.
empty?
&&
release_channel
!=
"commit"
return
"INSTALL_K3S_CHANNEL=
#{
release_channel
}
"
else
...
...
@@ -26,7 +33,7 @@ def getInstallType(vm, release_version, branch, release_channel='')
scripts_location
=
Dir
.
exist?
(
"./scripts"
)
?
"./scripts"
:
"../scripts"
# Grabs the last 5 commit SHA's from the given branch, then purges any commits that do not have a passing CI build
# MicroOS requires it not be in a /tmp/ or other root system folder
vm
.
provision
"Get latest commit"
,
type:
"shell"
,
path:
scripts_location
+
"/latest_commit.sh"
,
args:
[
branch
,
"/tmp/k3s_commits"
]
vm
.
provision
"Get latest commit"
,
type:
"shell"
,
path:
scripts_location
+
"/latest_commit.sh"
,
env:
{
GH_TOKEN
:ENV
[
'GH_TOKEN'
]},
args:
[
branch
,
"/tmp/k3s_commits"
]
return
"INSTALL_K3S_COMMIT=$(head
\
-n
\
1
\
/tmp/k3s_commits)"
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment