diff options
author | Charadon <dev@iotib.net> | 2022-07-28 07:04:55 -0400 |
---|---|---|
committer | Charadon <dev@iotib.net> | 2022-07-28 07:04:55 -0400 |
commit | 31e93d820bb2a4f875e50c73e605e910a1778eb7 (patch) | |
tree | 3f80707bec1277ace2e3764cf5837bcce66b7f75 | |
parent | 5ab17c998ef890ce0fe85e1e523a1b62dcb1bef5 (diff) | |
download | dscip-31e93d820bb2a4f875e50c73e605e910a1778eb7.tar.gz |
Added a failure check
-rwxr-xr-x | config.sh | 4 | ||||
-rwxr-xr-x | dscip | 13 | ||||
-rwxr-xr-x | failed.sh | 18 |
3 files changed, 30 insertions, 5 deletions
diff --git a/config.sh b/config.sh index 8d19ad6..342ff83 100755 --- a/config.sh +++ b/config.sh @@ -17,8 +17,10 @@ export WORKING_DIRECTORY export DSCIP_PRE_CMD="$WORKING_DIRECTORY/pre.sh" # Commands to run to build program. # export DSCIP_BUILD_CMD="$WORKING_DIRECTORY/build.sh" -# Commands to run after building is done. # +# Commands to run after building has succeeded. # export DSCIP_POST_CMD="$WORKING_DIRECTORY/post.sh" +# Commands to run after building has failed. +export DSCIP_FAILED_CMD="$WORKING_DIRECTORY/failed.sh" # Daemon mode options # export DSCIP_DAEMON="false" # If daemon mode should be enabled or not. # export DSCIP_DAEMON_FORK="true" # If the daemon should run in the background. # diff --git a/dscip b/dscip index 6e3adbf..275648d 100755 --- a/dscip +++ b/dscip @@ -63,6 +63,7 @@ build () { echo "DSCIP_PRE_CMD=$DSCIP_PRE_CMD"; echo "DSCIP_BUILD_CMD=$DSCIP_BUILD_CMD"; echo "DSCIP_POST_CMD=$DSCIP_POST_CMD"; + echo "DSCIP_FAILED_CMD=$DSCIP_FAILED_CMD"; echo "DSCIP_DAEMON=$DSCIP_DAEMON"; echo "DSCIP_DAEMON_FORK=$DSCIP_DAEMON_FORK"; echo "DSCIP_SLEEP=$DSCIP_SLEEP"; @@ -90,10 +91,14 @@ build () { "$DSCIP_PRE_CMD"; echo "Running build commands..."; cd "$WORKING_DIRECTORY/wrkdir"; - "$DSCIP_BUILD_CMD"; - echo "Running post-build commands..."; - cd "$WORKING_DIRECTORY/wrkdir"; - "$DSCIP_POST_CMD"; + if "$DSCIP_BUILD_CMD"; then + echo "Running post-build commands..."; + cd "$WORKING_DIRECTORY/wrkdir"; + "$DSCIP_POST_CMD"; + else + echo "Build failed. Running failure commands..."; + "$DSCIP_FAILED_CMD"; + fi } >> "$DSCIP_OUTPUT_TO" 2>&1 echo "$CURRENT_COMMIT" > "$WORKING_DIRECTORY/LAST_COMMIT" # Save commit # } diff --git a/failed.sh b/failed.sh new file mode 100755 index 0000000..524f16c --- /dev/null +++ b/failed.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +set -eu + +# This script determines what to do if the build failed. +# Below is an example of uploading the output.txt to an ftp server. +ftp -in <<EOF +open 192.168.1.5 +mkdir $DSCIP_NAME +cd $DSCIP_NAME +mkdir $CURRENT_NAME +cd $CURRENT_NAME +mkdir $(uname) +cd $(uname) +put $WORKING_DIRECTORY/output.txt output-failed.txt +close +bye +EOF |