DEV: Silence successful database migration output in github actions (#24416)

The output of db:migrate for a new database is 20k+ lines. We only need the output when an error occurs.
This commit is contained in:
David Taylor 2023-11-16 15:55:41 +00:00 committed by GitHub
parent 8db0eb2afd
commit 9449a0e0ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 3 deletions

View File

@ -141,7 +141,7 @@ jobs:
- name: Restore database from cache
if: steps.app-cache.outputs.cache-hit == 'true'
run: psql --quiet -o /dev/null -f tmp/app-cache/cache.sql postgres
run: script/silence_successful_output psql --quiet -o /dev/null -f tmp/app-cache/cache.sql postgres
- name: Restore uploads from cache
if: steps.app-cache.outputs.cache-hit == 'true'
@ -151,7 +151,7 @@ jobs:
if: steps.app-cache.outputs.cache-hit != 'true'
run: |
bin/rake db:create
bin/rake db:migrate
script/silence_successful_output bin/rake db:migrate
- name: Create and migrate parallel databases
if: >-
@ -159,7 +159,7 @@ jobs:
steps.app-cache.outputs.cache-hit != 'true'
run: |
bin/rake parallel:create
bin/rake parallel:migrate
script/silence_successful_output bin/rake parallel:migrate
- name: Dump database for cache
if: steps.app-cache.outputs.cache-hit != 'true'

View File

@ -0,0 +1,21 @@
#!/bin/bash
# Run a command and write stdout/stderr to a temporary file. Print the output only if the command exits with a non-zero exit status
tmp=$(mktemp)
echo "[silence_successful_output] Running '$@' with output silenced..." >&2
("$@") 2>&1 &> "$tmp"
STATUS=$?
if (( $STATUS )) ; then
echo "[silence_successful_output] '$@' failed! Output:" >&2
cat "$tmp" >&2
else
echo "[silence_successful_output] '$@' succeeded!"
fi
rm "$tmp"
exit $STATUS