-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
tests/e2e: Migrate e2e test for s390x to GHA #295
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
name: ccruntime e2e test nightly | ||
on: | ||
schedule: | ||
- cron: '0 2 * * *' | ||
workflow_dispatch: | ||
|
||
jobs: | ||
e2e-nightly: | ||
uses: ./.github/workflows/ccruntime_e2e.yaml | ||
|
||
e2e-ibm-se-nightly: | ||
runs-on: s390x | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
test_title: | ||
- cc-operator-e2e-tests | ||
steps: | ||
- name: Fetch a test result for {{ matrix.test_title }} | ||
run: | | ||
file_name="${TEST_TITLE}-$(date +%Y-%m-%d).log" | ||
/home/${USER}/script/handle_test_log.sh download $file_name | ||
env: | ||
TEST_TITLE: ${{ matrix.test_title }} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
name: ccruntime e2e test for PR | ||
on: | ||
pull_request_target: | ||
branches: | ||
- 'main' | ||
types: | ||
- opened | ||
- synchronize | ||
- reopened | ||
- labeled | ||
paths-ignore: | ||
- 'docs/**' | ||
|
||
jobs: | ||
e2e-pr: | ||
if: ${{ contains(github.event.pull_request.labels.*.name, 'ok-to-test') }} | ||
uses: ./.github/workflows/ccruntime_e2e.yaml | ||
with: | ||
target-branch: ${{ github.event.pull_request.base.ref }} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
#!/usr/bin/env bash | ||
# | ||
# Copyright Confidential Containers Contributors | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
|
||
set -o errexit | ||
set -o nounset | ||
set -o pipefail | ||
|
||
function install_jq() { | ||
if [ -n "$(command -v apt-get)" ]; then | ||
sudo apt-get update | ||
sudo apt-get install -y jq | ||
elif [ -n "$(command -v yum)" ]; then | ||
sudo yum install -y epel-release | ||
sudo yum install -y jq | ||
else | ||
>&2 echo "No supported package manager found" | ||
exit 1 | ||
fi | ||
} | ||
|
||
function configure_github() { | ||
if [ ! command -v jq &> /dev/null ]; then | ||
echo "jq is not installed, installing it" | ||
install_jq | ||
fi | ||
USERNAME=$(jq -r '.pull_request.user.login' "$GITHUB_EVENT_PATH") | ||
EMAIL=$(jq -r '.pull_request.user.email' "$GITHUB_EVENT_PATH") | ||
# if the email is null, stuff with a dummy email | ||
if [ "${EMAIL}" == "null" ]; then | ||
EMAIL="dummy@email.address" | ||
fi | ||
echo "Adding user name ${USERNAME} and email ${EMAIL} to the local git repo" | ||
git config user.name "${USERNAME}" | ||
git config user.email "${EMAIL}" | ||
} | ||
|
||
function rebase_atop_of_the_latest_target_branch() { | ||
if [ -n "${TARGET_BRANCH}" ]; then | ||
configure_github | ||
echo "Rebasing atop of the latest ${TARGET_BRANCH}" | ||
# Recover from any previous rebase left halfway | ||
git rebase --abort 2> /dev/null || true | ||
if ! git rebase origin/${TARGET_BRANCH}; then | ||
>&2 echo "Rebase failed, exiting" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hey Choi, in the kata-containers version there was a different path for self-hosted runner than deleted the workspace directory to avoid merge conflicts impacting runs IIRC - is that needed here too? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I intentionally removed those lines here, wanting to see if that is also the case for this repo. Even if that is the case again, that could be handled by {pre,post}-action, I guess. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Great, thanks for the explanation! |
||
exit 1 | ||
fi | ||
fi | ||
} | ||
|
||
function main() { | ||
action="${1:-}" | ||
|
||
case "${action}" in | ||
rebase-atop-of-the-latest-target-branch) rebase_atop_of_the_latest_target_branch;; | ||
*) >&2 echo "Invalid argument"; exit 2 ;; | ||
esac | ||
} | ||
|
||
main "$@" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@BbolroC so s390x is not going to run the undo (-u) operations from the e2e framework. Will it be done (undo) by the post-action then?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it was concluded that the option
-u
is not suitable for a self-hosted runner context. The functionality of the option is delegated to the {pre,post}-action.