From 8ef950af4cadd1cc56af189cb3e7fe599dc42e08 Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Fri, 24 Sep 2021 15:26:20 -0700 Subject: [PATCH] feat(brew-bump): add check for cleanup step --- ci/steps/brew-bump.sh | 33 ++++++++++++++++++++------------- ci/steps/steps-lib.sh | 16 ++++++++-------- test/scripts/steps-lib.bats | 16 ++++++++-------- 3 files changed, 36 insertions(+), 29 deletions(-) diff --git a/ci/steps/brew-bump.sh b/ci/steps/brew-bump.sh index ded41bec..6e6889c5 100755 --- a/ci/steps/brew-bump.sh +++ b/ci/steps/brew-bump.sh @@ -10,13 +10,13 @@ main() { echo "Checking environment variables" # We need VERSION to bump the brew formula - if [[ $(is_env_var_set "VERSION") -eq 1 ]]; then + if is_env_var_set "VERSION"; then echo "VERSION is not set" exit 1 fi # We need HOMEBREW_GITHUB_API_TOKEN to push up commits - if [[ $(is_env_var_set "HOMEBREW_GITHUB_API_TOKEN") -eq 1 ]]; then + if is_env_var_set "HOMEBREW_GITHUB_API_TOKEN"; then echo "HOMEBREW_GITHUB_API_TOKEN is not set" exit 1 fi @@ -29,14 +29,14 @@ main() { git clone https://github.com/cdrci/homebrew-core.git # Make sure the git clone step is successful - if [[ $(directory_exists "homebrew-core") -eq 1 ]]; then + if directory_exists "homebrew-core"; then echo "git clone failed. Cannot find homebrew-core directory." ls -la exit 1 fi echo "Changing into homebrew-core directory" - cd homebrew-core && pwd + pushd homebrew-core && pwd echo "Adding Homebrew/homebrew-core" git remote add upstream https://github.com/Homebrew/homebrew-core.git @@ -61,28 +61,31 @@ main() { # GIT_ASKPASS lets us use the password when pushing without revealing it in the process list # See: https://serverfault.com/a/912788 - GIT_ASKPASS="$HOME/git-askpass.sh" + PATH_TO_GIT_ASKPASS="$HOME/git-askpass.sh" # Source: https://serverfault.com/a/912788 # shellcheck disable=SC2016,SC2028 - echo '#!/bin/sh\nexec echo "$HOMEBREW_GITHUB_API_TOKEN"' > "$GIT_ASKPASS" + echo 'echo $HOMEBREW_GITHUB_API_TOKEN' > "$PATH_TO_ASKPASS" # Make sure the git-askpass.sh file creation is successful - if [[ $(file_exists "git-askpass.sh") -eq 1 ]]; then + if file_exists "$PATH_TO_GIT_ASKPASS"; then echo "git-askpass.sh not found in $HOME." ls -la "$HOME" exit 1 fi # Ensure it's executable since we just created it - chmod +x "$GIT_ASKPASS" + chmod +x "$PATH_TO_GIT_ASKPASS" # Make sure the git-askpass.sh file is executable - if [[ $(is_executable "$GIT_ASKPASS") -eq 1 ]]; then - echo "git-askpass.sh is not executable." - ls -la "$GIT_ASKPASS" + if is_executable "$PATH_TO_GIT_ASKPASS"; then + echo "$PATH_TO_GIT_ASKPASS is not executable." + ls -la "$PATH_TO_GIT_ASKPASS" exit 1 fi + # Export the variables so git sees them + export HOMEBREW_GITHUB_API_TOKEN="$HOMEBREW_GITHUB_API_TOKEN" + export GIT_ASKPASS="$PATH_TO_ASKPASS" git push https://cdr-oss@github.com/cdr-oss/homebrew-core.git --all # Find the docs for bump-formula-pr here @@ -98,10 +101,14 @@ main() { fi # Clean up and remove homebrew-core - cd .. + popd rm -rf homebrew-core - # TODO@jsjoeio - check that homebrew-core was removed + # Make sure homebrew-core is removed + if directory_exists "homebrew-core"; then + echo "rm -rf homebrew-core failed." + ls -la + fi } main "$@" diff --git a/ci/steps/steps-lib.sh b/ci/steps/steps-lib.sh index 1b07acde..e71378e2 100755 --- a/ci/steps/steps-lib.sh +++ b/ci/steps/steps-lib.sh @@ -10,9 +10,9 @@ is_env_var_set() { local name="${1:-}" if test -n "${!name:-}"; then - echo 0 + return 0 else - echo 1 + return 1 fi } @@ -20,9 +20,9 @@ is_env_var_set() { directory_exists() { local dir="${1:-}" if [[ -d "${dir:-}" ]]; then - echo 0 + return 0 else - echo 1 + return 1 fi } @@ -30,9 +30,9 @@ directory_exists() { file_exists() { local file="${1:-}" if test -f "${file:-}"; then - echo 0 + return 0 else - echo 1 + return 1 fi } @@ -40,8 +40,8 @@ file_exists() { is_executable() { local file="${1:-}" if [ -f "${file}" ] && [ -r "${file}" ] && [ -x "${file}" ]; then - echo 0 + return 0 else - echo 1 + return 1 fi } diff --git a/test/scripts/steps-lib.bats b/test/scripts/steps-lib.bats index 0764fcb3..2071a062 100644 --- a/test/scripts/steps-lib.bats +++ b/test/scripts/steps-lib.bats @@ -7,40 +7,40 @@ source "$SCRIPT" @test "is_env_var_set should return 1 if env var is not set" { run is_env_var_set "ASDF_TEST_SET" - [ "$output" = 1 ] + [ "$status" = 1 ] } @test "is_env_var_set should return 0 if env var is set" { ASDF_TEST_SET="test" run is_env_var_set "ASDF_TEST_SET" - [ "$output" = 0 ] + [ "$status" = 0 ] } @test "directory_exists should 1 if directory doesn't exist" { run directory_exists "/tmp/asdfasdfasdf" - [ "$output" = 1 ] + [ "$status" = 1 ] } @test "directory_exists should 0 if directory exists" { run directory_exists "$(pwd)" - [ "$output" = 0 ] + [ "$status" = 0 ] } @test "file_exists should 1 if file doesn't exist" { run file_exists "hello-asfd.sh" - [ "$output" = 1 ] + [ "$status" = 1 ] } @test "file_exists should 0 if file exists" { run file_exists "$SCRIPT" - [ "$output" = 0 ] + [ "$status" = 0 ] } @test "is_executable should 1 if file isn't executable" { run is_executable "hello-asfd.sh" - [ "$output" = 1 ] + [ "$status" = 1 ] } @test "is_executable should 0 if file is executable" { run is_executable "$SCRIPT" - [ "$output" = 0 ] + [ "$status" = 0 ] } \ No newline at end of file