mirror of
				https://github.com/matrix-org/synapse.git
				synced 2025-11-03 21:57:26 +00:00 
			
		
		
		
	Print complement failure results last (#13639)
Since github always scrolls to the bottom of any test output, let's put the failed tests last and hide any successful packages.
This commit is contained in:
		
							parent
							
								
									c4e29b6908
								
							
						
					
					
						commit
						4f6de33f41
					
				@ -27,10 +27,10 @@ which is under the Unlicense licence.
 | 
			
		||||
        {{- . -}}{{- "\n" -}}
 | 
			
		||||
    {{- end -}}
 | 
			
		||||
    {{- with .TestCases -}}
 | 
			
		||||
        {{- /* Failing tests are first */ -}}
 | 
			
		||||
        {{- /* Passing tests are first */ -}}
 | 
			
		||||
        {{- range . -}}
 | 
			
		||||
            {{- if and (ne .Result "PASS") (ne .Result "SKIP") -}}
 | 
			
		||||
                ::group::{{ "\033" }}[0;31m❌{{ " " }}{{- .Name -}}
 | 
			
		||||
            {{- if eq .Result "PASS" -}}
 | 
			
		||||
                ::group::{{ "\033" }}[0;32m✅{{ " " }}{{- .Name -}}
 | 
			
		||||
                {{- "\033" -}}[0;37m ({{if $settings.ShowTestStatus}}{{.Result}}; {{end}}{{ .Duration -}}
 | 
			
		||||
                {{- with .Coverage -}}
 | 
			
		||||
                    , coverage: {{ . }}%
 | 
			
		||||
@ -47,7 +47,6 @@ which is under the Unlicense licence.
 | 
			
		||||
            {{- end -}}
 | 
			
		||||
        {{- end -}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        {{- /* Then skipped tests are second */ -}}
 | 
			
		||||
        {{- range . -}}
 | 
			
		||||
            {{- if eq .Result "SKIP" -}}
 | 
			
		||||
@ -68,11 +67,10 @@ which is under the Unlicense licence.
 | 
			
		||||
            {{- end -}}
 | 
			
		||||
        {{- end -}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        {{- /* Then passing tests are last */ -}}
 | 
			
		||||
        {{- /* and failing tests are last */ -}}
 | 
			
		||||
        {{- range . -}}
 | 
			
		||||
            {{- if eq .Result "PASS" -}}
 | 
			
		||||
                ::group::{{ "\033" }}[0;32m✅{{ " " }}{{- .Name -}}
 | 
			
		||||
            {{- if and (ne .Result "PASS") (ne .Result "SKIP") -}}
 | 
			
		||||
                ::group::{{ "\033" }}[0;31m❌{{ " " }}{{- .Name -}}
 | 
			
		||||
                {{- "\033" -}}[0;37m ({{if $settings.ShowTestStatus}}{{.Result}}; {{end}}{{ .Duration -}}
 | 
			
		||||
                {{- with .Coverage -}}
 | 
			
		||||
                    , coverage: {{ . }}%
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										21
									
								
								.ci/scripts/gotestfmt
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										21
									
								
								.ci/scripts/gotestfmt
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
#
 | 
			
		||||
# wraps `gotestfmt`, hiding output from successful packages unless
 | 
			
		||||
# all tests passed.
 | 
			
		||||
 | 
			
		||||
set -o pipefail
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
# tee the test results to a log, whilst also piping them into gotestfmt,
 | 
			
		||||
# telling it to hide successful results, so that we can clearly see
 | 
			
		||||
# unsuccessful results.
 | 
			
		||||
tee complement.log | gotestfmt -hide successful-packages
 | 
			
		||||
 | 
			
		||||
# gotestfmt will exit non-zero if there were any failures, so if we got to this
 | 
			
		||||
# point, we must have had a successful result.
 | 
			
		||||
echo "All tests successful; showing all test results"
 | 
			
		||||
 | 
			
		||||
# Pipe the test results back through gotestfmt, showing all results.
 | 
			
		||||
# The log file consists of JSON lines giving the test results, interspersed
 | 
			
		||||
# with regular stdout lines (including reports of downloaded packages).
 | 
			
		||||
grep '^{"Time":' complement.log | gotestfmt
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/latest_deps.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/latest_deps.yml
									
									
									
									
										vendored
									
									
								
							@ -163,7 +163,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - run: |
 | 
			
		||||
          set -o pipefail
 | 
			
		||||
          TEST_ONLY_IGNORE_POETRY_LOCKFILE=1 POSTGRES=${{ (matrix.database == 'Postgres') && 1 || '' }} WORKERS=${{ (matrix.arrangement == 'workers') && 1 || '' }} COMPLEMENT_DIR=`pwd`/complement synapse/scripts-dev/complement.sh -json 2>&1 | gotestfmt
 | 
			
		||||
          TEST_ONLY_IGNORE_POETRY_LOCKFILE=1 POSTGRES=${{ (matrix.database == 'Postgres') && 1 || '' }} WORKERS=${{ (matrix.arrangement == 'workers') && 1 || '' }} COMPLEMENT_DIR=`pwd`/complement synapse/scripts-dev/complement.sh -json 2>&1 | synapse/.ci/scripts/gotestfmt
 | 
			
		||||
        shell: bash
 | 
			
		||||
        name: Run Complement Tests
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/tests.yml
									
									
									
									
										vendored
									
									
								
							@ -354,7 +354,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - run: |
 | 
			
		||||
          set -o pipefail
 | 
			
		||||
          POSTGRES=${{ (matrix.database == 'Postgres') && 1 || '' }} WORKERS=${{ (matrix.arrangement == 'workers') && 1 || '' }} COMPLEMENT_DIR=`pwd`/complement synapse/scripts-dev/complement.sh -json 2>&1 | gotestfmt
 | 
			
		||||
          POSTGRES=${{ (matrix.database == 'Postgres') && 1 || '' }} WORKERS=${{ (matrix.arrangement == 'workers') && 1 || '' }} COMPLEMENT_DIR=`pwd`/complement synapse/scripts-dev/complement.sh -json 2>&1 | synapse/.ci/scripts/gotestfmt
 | 
			
		||||
        shell: bash
 | 
			
		||||
        name: Run Complement Tests
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/twisted_trunk.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/twisted_trunk.yml
									
									
									
									
										vendored
									
									
								
							@ -137,7 +137,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - run: |
 | 
			
		||||
          set -o pipefail
 | 
			
		||||
          TEST_ONLY_SKIP_DEP_HASH_VERIFICATION=1 POSTGRES=${{ (matrix.database == 'Postgres') && 1 || '' }} WORKERS=${{ (matrix.arrangement == 'workers') && 1 || '' }} COMPLEMENT_DIR=`pwd`/complement synapse/scripts-dev/complement.sh -json 2>&1 | gotestfmt
 | 
			
		||||
          TEST_ONLY_SKIP_DEP_HASH_VERIFICATION=1 POSTGRES=${{ (matrix.database == 'Postgres') && 1 || '' }} WORKERS=${{ (matrix.arrangement == 'workers') && 1 || '' }} COMPLEMENT_DIR=`pwd`/complement synapse/scripts-dev/complement.sh -json 2>&1 | synapse/.ci/scripts/gotestfmt
 | 
			
		||||
        shell: bash
 | 
			
		||||
        name: Run Complement Tests
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								changelog.d/13639.misc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								changelog.d/13639.misc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
Improve readability of Complement CI logs by printing failure results last.
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user