From 8f3d2b37926d0bf94cd7b9334cd410b624ecc8e2 Mon Sep 17 00:00:00 2001 From: cockroacher <163405488+cockroacher@users.noreply.github.com> Date: Tue, 17 Dec 2024 15:34:26 +0100 Subject: [PATCH 1/4] remove requirement of workflow permission --- ...ression-test-sitespeed-browsertime-har.yml | 3 +- .github/workflows/update-docker.yml | 2 -- .github/workflows/verify_result.py | 29 ++++++++++++------- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/.github/workflows/regression-test-sitespeed-browsertime-har.yml b/.github/workflows/regression-test-sitespeed-browsertime-har.yml index a228a0c9..2a786b8b 100644 --- a/.github/workflows/regression-test-sitespeed-browsertime-har.yml +++ b/.github/workflows/regression-test-sitespeed-browsertime-har.yml @@ -29,7 +29,8 @@ jobs: - name: Testing sitespeed.io:s browsertime.har output using ${{ matrix.browser }} if: always() run: | - command="docker run --rm -v $(pwd):/sitespeed.io sitespeedio/sitespeed.io:35.7.0 -b ${{ matrix.browser }} -n 1 --chrome.includeResponseBodies all --firefox.includeResponseBodies all https://webperf.se" + $sitespeedversion=$(echo python .github/workflows/verify_result.py --docker-sitespeed-version) + command="docker run --rm -v $(pwd):/sitespeed.io $sitespeedversion -b ${{ matrix.browser }} -n 1 --chrome.includeResponseBodies all --firefox.includeResponseBodies all https://webperf.se" echo "$command" testresult=$($command) echo "$testresult" diff --git a/.github/workflows/update-docker.yml b/.github/workflows/update-docker.yml index 906bc6ec..ef4a5f5e 100644 --- a/.github/workflows/update-docker.yml +++ b/.github/workflows/update-docker.yml @@ -37,9 +37,7 @@ jobs: Following files may be touched: - Dockerfile - - .github/workflows/regression-test-sitespeed-browsertime-har.yml assignees: 7h3Rabbit reviewers: 7h3Rabbit add-paths: | Dockerfile - .github/workflows/regression-test-sitespeed-browsertime-har.yml diff --git a/.github/workflows/verify_result.py b/.github/workflows/verify_result.py index 41aa7fbb..b2ec55e3 100644 --- a/.github/workflows/verify_result.py +++ b/.github/workflows/verify_result.py @@ -470,6 +470,7 @@ def main(argv): opts, _ = getopt.getopt(argv, "hlt:d:s:b:", [ "help", "test=", "sample-config=", "browsertime=", + "docker-sitespeed-version", "language", "docker="]) except getopt.GetoptError: print(main.__doc__) @@ -489,6 +490,9 @@ def main(argv): handle_test_result(arg) elif opt in ("-d", "--docker"): # docker handle_update_docker() + elif opt in ("--docker-sitespeed-version"): # get docker version used + get_sitespeed_docker_image() + sys.exit(0) # No match for command so return error code to fail verification sys.exit(2) @@ -564,6 +568,20 @@ def set_file_content(file_path, content): with open(file_path, 'w', encoding='utf-8', newline='') as file: file.write(content) +def get_sitespeed_docker_image(): + base_directory = Path(os.path.dirname( + os.path.realpath(__file__)) + os.path.sep).parent.parent + + our_docker_filepath = os.path.join(base_directory, 'Dockerfile') + if not os.path.exists(our_docker_filepath): + print(f'Dockerfile doesn\'t exists at: {our_docker_filepath}') + return False + + our_docker_content = get_file_content(our_docker_filepath) + our_from_os = get_base_os_from_dockerfile(our_docker_content) + our_from_os = our_from_os.replace('FROM ', '') + print(our_from_os) + return our_from_os def handle_update_docker(): """ Terminate the programme with an error if updating docker contains unexpected content """ @@ -596,17 +614,6 @@ def handle_update_docker(): print('Dockerfile requires update') set_file_content(our_docker_filepath, our_docker_content) print('Dockerfile was updated') - - our_browsertime_har_yml_filepath = os.path.join(base_directory, '.github', 'workflows', 'regression-test-sitespeed-browsertime-har.yml') - if os.path.exists(our_browsertime_har_yml_filepath): - our_from_os = our_from_os.replace('FROM ', '') - sitespeed_from_os = sitespeed_from_os.replace('FROM ', '') - - our_browsertime_har_yml_content = get_file_content(our_browsertime_har_yml_filepath) - our_browsertime_har_yml_content = our_browsertime_har_yml_content.replace(our_from_os, sitespeed_from_os) - print('regression-test-sitespeed-browsertime-har.yml requires update') - set_file_content(our_browsertime_har_yml_filepath, our_browsertime_har_yml_content) - print('regression-test-sitespeed-browsertime-har.yml was updated') else: print('Dockerfile is up to date') From f23b6bc436b35ff0d340366d28233a40453cf8bd Mon Sep 17 00:00:00 2001 From: cockroacher <163405488+cockroacher@users.noreply.github.com> Date: Tue, 17 Dec 2024 15:42:25 +0100 Subject: [PATCH 2/4] fixed syntax --- .../workflows/regression-test-sitespeed-browsertime-har.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/regression-test-sitespeed-browsertime-har.yml b/.github/workflows/regression-test-sitespeed-browsertime-har.yml index 2a786b8b..6d21fd6a 100644 --- a/.github/workflows/regression-test-sitespeed-browsertime-har.yml +++ b/.github/workflows/regression-test-sitespeed-browsertime-har.yml @@ -29,13 +29,13 @@ jobs: - name: Testing sitespeed.io:s browsertime.har output using ${{ matrix.browser }} if: always() run: | - $sitespeedversion=$(echo python .github/workflows/verify_result.py --docker-sitespeed-version) + $sitespeedversion=$(python .github/workflows/verify_result.py --docker-sitespeed-version) command="docker run --rm -v $(pwd):/sitespeed.io $sitespeedversion -b ${{ matrix.browser }} -n 1 --chrome.includeResponseBodies all --firefox.includeResponseBodies all https://webperf.se" echo "$command" testresult=$($command) echo "$testresult" path=$(echo "$testresult" | grep -o "/sitespeed.io/.*") - if [ -n result ]; then + if [ -n "$path" ]; then har_file=$(find $(pwd) -name "browsertime.har") if [ -f "$har_file" ]; then echo "Found browsertime.har at $har_file" From 9bed021d9d92dfc2db98a4108b8e1a6141e41c32 Mon Sep 17 00:00:00 2001 From: cockroacher <163405488+cockroacher@users.noreply.github.com> Date: Tue, 17 Dec 2024 15:52:47 +0100 Subject: [PATCH 3/4] testing output --- .../workflows/regression-test-sitespeed-browsertime-har.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/regression-test-sitespeed-browsertime-har.yml b/.github/workflows/regression-test-sitespeed-browsertime-har.yml index 6d21fd6a..bcc8b1dc 100644 --- a/.github/workflows/regression-test-sitespeed-browsertime-har.yml +++ b/.github/workflows/regression-test-sitespeed-browsertime-har.yml @@ -29,11 +29,13 @@ jobs: - name: Testing sitespeed.io:s browsertime.har output using ${{ matrix.browser }} if: always() run: | + echo "TEST A: $sitespeedversion" $sitespeedversion=$(python .github/workflows/verify_result.py --docker-sitespeed-version) + echo "TEST B: $sitespeedversion" command="docker run --rm -v $(pwd):/sitespeed.io $sitespeedversion -b ${{ matrix.browser }} -n 1 --chrome.includeResponseBodies all --firefox.includeResponseBodies all https://webperf.se" - echo "$command" + echo "TEST C: $command" testresult=$($command) - echo "$testresult" + echo "TEST D: $testresult" path=$(echo "$testresult" | grep -o "/sitespeed.io/.*") if [ -n "$path" ]; then har_file=$(find $(pwd) -name "browsertime.har") From 31c09dea6118b859d6d48762e3267873e57b7835 Mon Sep 17 00:00:00 2001 From: cockroacher <163405488+cockroacher@users.noreply.github.com> Date: Tue, 17 Dec 2024 15:57:29 +0100 Subject: [PATCH 4/4] fixing c&p error --- .../workflows/regression-test-sitespeed-browsertime-har.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/regression-test-sitespeed-browsertime-har.yml b/.github/workflows/regression-test-sitespeed-browsertime-har.yml index bcc8b1dc..d22e4f8e 100644 --- a/.github/workflows/regression-test-sitespeed-browsertime-har.yml +++ b/.github/workflows/regression-test-sitespeed-browsertime-har.yml @@ -29,8 +29,8 @@ jobs: - name: Testing sitespeed.io:s browsertime.har output using ${{ matrix.browser }} if: always() run: | - echo "TEST A: $sitespeedversion" - $sitespeedversion=$(python .github/workflows/verify_result.py --docker-sitespeed-version) + echo "TEST A" + sitespeedversion=$(python .github/workflows/verify_result.py --docker-sitespeed-version) echo "TEST B: $sitespeedversion" command="docker run --rm -v $(pwd):/sitespeed.io $sitespeedversion -b ${{ matrix.browser }} -n 1 --chrome.includeResponseBodies all --firefox.includeResponseBodies all https://webperf.se" echo "TEST C: $command"