From 74640dc38fa1a82e81e4f91b5dd59e31cd4be750 Mon Sep 17 00:00:00 2001 From: bogyo210 Date: Mon, 7 Dec 2020 10:26:41 +0200 Subject: [PATCH 1/9] release --- .semaphore/release.yml | 16 +++++++++ .semaphore/semaphore.yml | 7 ++++ artifacts | 1 - install-toolbox | 5 --- release/create_release.sh | 70 +++++++++++++++++++++++++++++++++++++++ sem-version | 8 +++-- 6 files changed, 98 insertions(+), 9 deletions(-) create mode 100644 .semaphore/release.yml delete mode 100644 artifacts create mode 100755 release/create_release.sh diff --git a/.semaphore/release.yml b/.semaphore/release.yml new file mode 100644 index 00000000..2ef877ed --- /dev/null +++ b/.semaphore/release.yml @@ -0,0 +1,16 @@ +version: "v1.0" +name: Release +agent: + machine: + type: e1-standard-2 + os_image: ubuntu1804 +blocks: + - name: "Release" + task: + secrets: + - name: sem-robot-ghtoken + jobs: + - name: Create and Upload assets + commands: + - checkout + - ./release/create_release.sh diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml index d33756d9..f990b6d9 100644 --- a/.semaphore/semaphore.yml +++ b/.semaphore/semaphore.yml @@ -307,3 +307,10 @@ blocks: - ./tests/support/bats-core/install.sh /usr/local - bats tests/cache.bats - bats tests/libcheckout.bats +promotions: + - name: Release + pipeline_file: "release.yml" + auto_promote_on: + - result: passed + branch: + - "^refs/tags/v*" diff --git a/artifacts b/artifacts deleted file mode 100644 index 8b137891..00000000 --- a/artifacts +++ /dev/null @@ -1 +0,0 @@ - diff --git a/install-toolbox b/install-toolbox index ecd75fbf..0edcaba0 100644 --- a/install-toolbox +++ b/install-toolbox @@ -4,7 +4,6 @@ set -o pipefail IFS=$'\n\t' DIST=$(uname) -ARTIFACT_CLI_VERSION="v0.2.8" case $DIST in Darwin) @@ -102,12 +101,8 @@ fi # echo "Installing the artifacts CLI" -echo "Using http://packages.semaphoreci.com/${ARTIFACT_CLI_VERSION}/artifact_${DIST}_x86_64.tar.gz" -install_cmd curl -s -L --retry 5 -o artifact.tar.gz http://packages.semaphoreci.com/${ARTIFACT_CLI_VERSION}/artifact_${DIST}_x86_64.tar.gz -install_cmd tar xzf artifact.tar.gz install_cmd mv artifact $INSTALL_PATH/artifact install_cmd chmod +x $INSTALL_PATH/artifact -install_cmd rm -f artifact.tar.gz LICENSE README.md if [[ $? -eq 0 ]];then echo "artifacts installed" else diff --git a/release/create_release.sh b/release/create_release.sh new file mode 100755 index 00000000..4e561256 --- /dev/null +++ b/release/create_release.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +set -euo pipefail + +get_latest_tag(){ + local repo="$1" + local latest=$(curl --silent "https://api.github.com/repos/semaphoreci/$repo/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")') + echo $latest | cut -c 2- +} + +#LAV LATEST_ARTIFACT_VERSION +LAV="$(get_latest_tag 'artifact')" + +curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/v$LAV/artifact_Linux_x86_64.tar.gz -o Linux.tar.gz + +curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/v$LAV/artifact_Darwin_x86_64.tar.gz -o Darwin.tar.gz + +git clone git@github.com:semaphoreci/toolbox.git + +tar -zxf Linux.tar.gz + +mv artifact toolbox/ + +FILE_LIST="" +for FILE in toolbox/*; do + FILE_LIST="$FILE_LIST $FILE" +done + +tar -cf toolbox_Linux.tar $(echo $FILE_LIST) + +echo "toolbox Linux content: " +tar --list --verbose --file=toolbox_Linux.tar + +rm toolbox/artifact + +tar -zxf Darwin.tar.gz + +mv artifact toolbox/ + +FILE_LIST="" +for FILE in toolbox/*; do + FILE_LIST="$FILE_LIST $FILE" +done + +tar -cf toolbox_Darwin.tar $(echo $FILE_LIST) + +echo "toolbox Darwin content: " +tar --list --verbose --file=toolbox_Darwin.tar + +release_id=$(curl --silent "https://api.github.com/repos/semaphoreci/toolbox/releases/latest" | grep -m1 'id' | awk '{print $2}' | tr -d ',' ) + +curl \ + -X POST \ + -H "Authorization: token $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github.v3+json" \ + -H "Content-Type: $(file -b --mime-type toolbox_Linux.tar)" \ + --data-binary @toolbox_Linux.tar \ + "https://uploads.github.com/repos/semaphoreci/toolbox/releases/$release_id/assets?name=toolbox_Linux.tar" + +echo "toolbox_Linux.tar uploaded" + +curl \ + -X POST \ + -H "Authorization: token $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github.v3+json" \ + -H "Content-Type: $(file -b --mime-type toolbox_Darwin.tar)" \ + --data-binary @toolbox_Linux.tar \ + "https://uploads.github.com/repos/semaphoreci/toolbox/releases/$release_id/assets?name=toolbox_Darwin.tar" + +echo "toolbox_Darwin.tar uploaded" diff --git a/sem-version b/sem-version index e81b6274..a26084aa 100755 --- a/sem-version +++ b/sem-version @@ -70,11 +70,13 @@ version::change_php() { [[ "$software_version" == "7.0" ]] && software_version="7.0.33" [[ "$software_version" == "7.1" ]] && software_version="7.1.33" [[ "$software_version" == "7.2" ]] && software_version="7.2.34" - [[ "$software_version" == "7.3" ]] && software_version="7.3.24" - [[ "$software_version" == "7.4" ]] && software_version="7.4.12" - + [[ "$software_version" == "7.3" ]] && software_version="7.3.25" + [[ "$software_version" == "7.4" ]] && software_version="7.4.13" + phpbrew update if ! [ -d ~/.phpbrew/php/php-"${software_version}" ]; then sem-install php "${software_version}" + else + phpbrew download "${software_version}" fi software_version="php-${software_version}" version::change "phpbrew switch" From c79c2885296e94b0503e16e71e947c52fc36cbb9 Mon Sep 17 00:00:00 2001 From: bogyo210 Date: Thu, 17 Dec 2020 16:31:19 +0200 Subject: [PATCH 2/9] revert sem-version --- release/create_release.sh | 16 ++++++---------- sem-version | 4 ++-- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/release/create_release.sh b/release/create_release.sh index 4e561256..53689b7d 100755 --- a/release/create_release.sh +++ b/release/create_release.sh @@ -2,18 +2,12 @@ set -euo pipefail -get_latest_tag(){ - local repo="$1" - local latest=$(curl --silent "https://api.github.com/repos/semaphoreci/$repo/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")') - echo $latest | cut -c 2- -} - #LAV LATEST_ARTIFACT_VERSION -LAV="$(get_latest_tag 'artifact')" +LAV="v0.2.8" -curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/v$LAV/artifact_Linux_x86_64.tar.gz -o Linux.tar.gz +curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/$LAV/artifact_Linux_x86_64.tar.gz -o Linux.tar.gz -curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/v$LAV/artifact_Darwin_x86_64.tar.gz -o Darwin.tar.gz +curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/$LAV/artifact_Darwin_x86_64.tar.gz -o Darwin.tar.gz git clone git@github.com:semaphoreci/toolbox.git @@ -47,7 +41,9 @@ tar -cf toolbox_Darwin.tar $(echo $FILE_LIST) echo "toolbox Darwin content: " tar --list --verbose --file=toolbox_Darwin.tar -release_id=$(curl --silent "https://api.github.com/repos/semaphoreci/toolbox/releases/latest" | grep -m1 'id' | awk '{print $2}' | tr -d ',' ) +latest=$(git tag | sort --version-sort | tail -n 1) + +release_id=$(curl --silent "https://api.github.com/repos/semaphoreci/toolbox/releases/tags/$latest" | grep -m1 'id' | awk '{print $2}' | tr -d ',' ) curl \ -X POST \ diff --git a/sem-version b/sem-version index a26084aa..9e0bd126 100755 --- a/sem-version +++ b/sem-version @@ -70,8 +70,8 @@ version::change_php() { [[ "$software_version" == "7.0" ]] && software_version="7.0.33" [[ "$software_version" == "7.1" ]] && software_version="7.1.33" [[ "$software_version" == "7.2" ]] && software_version="7.2.34" - [[ "$software_version" == "7.3" ]] && software_version="7.3.25" - [[ "$software_version" == "7.4" ]] && software_version="7.4.13" + [[ "$software_version" == "7.3" ]] && software_version="7.3.24" + [[ "$software_version" == "7.4" ]] && software_version="7.4.12" phpbrew update if ! [ -d ~/.phpbrew/php/php-"${software_version}" ]; then sem-install php "${software_version}" From 48faa899eed2ae4bfc1f630786c69f24d2c85ce6 Mon Sep 17 00:00:00 2001 From: bogyo210 Date: Thu, 17 Dec 2020 17:33:54 +0200 Subject: [PATCH 3/9] Revert sem-version --- .semaphore/release.yml | 1 + release/create_release.sh | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.semaphore/release.yml b/.semaphore/release.yml index 2ef877ed..d21ebe9b 100644 --- a/.semaphore/release.yml +++ b/.semaphore/release.yml @@ -13,4 +13,5 @@ blocks: - name: Create and Upload assets commands: - checkout + - rm -rf toolbox - ./release/create_release.sh diff --git a/release/create_release.sh b/release/create_release.sh index 53689b7d..b5855906 100755 --- a/release/create_release.sh +++ b/release/create_release.sh @@ -2,12 +2,11 @@ set -euo pipefail -#LAV LATEST_ARTIFACT_VERSION -LAV="v0.2.8" +ARTIFACT_CLI_VERSION="v0.2.8" -curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/$LAV/artifact_Linux_x86_64.tar.gz -o Linux.tar.gz +curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/$ARTIFACT_CLI_VERSION/artifact_Linux_x86_64.tar.gz -o Linux.tar.gz -curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/$LAV/artifact_Darwin_x86_64.tar.gz -o Darwin.tar.gz +curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/$ARTIFACT_CLI_VERSION/artifact_Darwin_x86_64.tar.gz -o Darwin.tar.gz git clone git@github.com:semaphoreci/toolbox.git From a89cf203a727589846f1d6c76f5e274e9f78d871 Mon Sep 17 00:00:00 2001 From: bogyo210 Date: Thu, 17 Dec 2020 17:53:59 +0200 Subject: [PATCH 4/9] update release --- release/create_release.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/release/create_release.sh b/release/create_release.sh index b5855906..502bd00b 100755 --- a/release/create_release.sh +++ b/release/create_release.sh @@ -42,7 +42,16 @@ tar --list --verbose --file=toolbox_Darwin.tar latest=$(git tag | sort --version-sort | tail -n 1) -release_id=$(curl --silent "https://api.github.com/repos/semaphoreci/toolbox/releases/tags/$latest" | grep -m1 'id' | awk '{print $2}' | tr -d ',' ) +release_id=$(curl \ + -X POST \ + -H "Authorization: token $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github.v3+json" \ + https://api.github.com/repos/semaphoreci/toolbox/releases \ + -d '{"tag_name":"'$latest'"}' +) + + +release_id=$(echo $latest | grep -m1 'id' | awk '{print $2}' | tr -d ',' ) curl \ -X POST \ From 2c564e8b838882cb5171d9ecc11a1bf76fe37d33 Mon Sep 17 00:00:00 2001 From: bogyo210 Date: Thu, 17 Dec 2020 17:59:12 +0200 Subject: [PATCH 5/9] update release 2 --- release/create_release.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/release/create_release.sh b/release/create_release.sh index 502bd00b..7636bae8 100755 --- a/release/create_release.sh +++ b/release/create_release.sh @@ -42,16 +42,14 @@ tar --list --verbose --file=toolbox_Darwin.tar latest=$(git tag | sort --version-sort | tail -n 1) -release_id=$(curl \ +curl \ -X POST \ -H "Authorization: token $GITHUB_TOKEN" \ -H "Accept: application/vnd.github.v3+json" \ https://api.github.com/repos/semaphoreci/toolbox/releases \ -d '{"tag_name":"'$latest'"}' -) - -release_id=$(echo $latest | grep -m1 'id' | awk '{print $2}' | tr -d ',' ) +release_id=$(curl --silent https://api.github.com/repos/semaphoreci/toolbox/releases/tags/$latest | grep -m1 'id' | awk '{print $2}' | tr -d ',' ) curl \ -X POST \ From dd830b8b531ad4baaa4b6b96e298efadb0d03861 Mon Sep 17 00:00:00 2001 From: bogyo210 Date: Fri, 18 Dec 2020 13:16:09 +0200 Subject: [PATCH 6/9] delete tags --- .semaphore/release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.semaphore/release.yml b/.semaphore/release.yml index d21ebe9b..1190f0aa 100644 --- a/.semaphore/release.yml +++ b/.semaphore/release.yml @@ -4,6 +4,9 @@ agent: machine: type: e1-standard-2 os_image: ubuntu1804 +auto_cancel: + running: + when: "branch != 'master'" blocks: - name: "Release" task: From 467b06142b9f1f2ef5c6846d9398f44b1326b85d Mon Sep 17 00:00:00 2001 From: bogyo210 Date: Fri, 18 Dec 2020 14:16:48 +0200 Subject: [PATCH 7/9] skip release when branch not mster --- .semaphore/release.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.semaphore/release.yml b/.semaphore/release.yml index 1190f0aa..2b21f808 100644 --- a/.semaphore/release.yml +++ b/.semaphore/release.yml @@ -4,11 +4,10 @@ agent: machine: type: e1-standard-2 os_image: ubuntu1804 -auto_cancel: - running: - when: "branch != 'master'" blocks: - name: "Release" + skip: + when: "branch != 'master'" task: secrets: - name: sem-robot-ghtoken From 83e5c51644836aaa020527f603a3f9ebbf4e9dc7 Mon Sep 17 00:00:00 2001 From: bogyo210 Date: Tue, 22 Dec 2020 14:41:46 +0200 Subject: [PATCH 8/9] Rewrite release method --- .semaphore/release.yml | 4 +- release/create_release.sh | 91 +++++++++++++++++++++------------------ 2 files changed, 50 insertions(+), 45 deletions(-) diff --git a/.semaphore/release.yml b/.semaphore/release.yml index 2b21f808..69c37890 100644 --- a/.semaphore/release.yml +++ b/.semaphore/release.yml @@ -6,8 +6,8 @@ agent: os_image: ubuntu1804 blocks: - name: "Release" - skip: - when: "branch != 'master'" + run: + when: "branch = 'master'" task: secrets: - name: sem-robot-ghtoken diff --git a/release/create_release.sh b/release/create_release.sh index 7636bae8..ba52ecc1 100755 --- a/release/create_release.sh +++ b/release/create_release.sh @@ -3,70 +3,75 @@ set -euo pipefail ARTIFACT_CLI_VERSION="v0.2.8" - -curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/$ARTIFACT_CLI_VERSION/artifact_Linux_x86_64.tar.gz -o Linux.tar.gz - -curl -s -L --retry 5 https://github.com/semaphoreci/artifact/releases/download/$ARTIFACT_CLI_VERSION/artifact_Darwin_x86_64.tar.gz -o Darwin.tar.gz - -git clone git@github.com:semaphoreci/toolbox.git - -tar -zxf Linux.tar.gz - -mv artifact toolbox/ - -FILE_LIST="" -for FILE in toolbox/*; do - FILE_LIST="$FILE_LIST $FILE" -done - -tar -cf toolbox_Linux.tar $(echo $FILE_LIST) +ARTIFACT_CLI_URL="https://github.com/semaphoreci/artifact/releases/download/$ARTIFACT_CLI_VERSION" + +mkdir /tmp/Linux/toolbox +mkdir /tmp/Darwin/toolbox + +# +# Get artifact releases +# +curl -s -L --retry 5 $ARTIFACT_CLI_URL/artifact_Linux_x86_64.tar.gz -o /tmp/Linux/Linux.tar.gz +curl -s -L --retry 5 $ARTIFACT_CLI_URL/artifact_Darwin_x86_64.tar.gz -o /tmp/Darwin/Darwin.tar.gz + +# +# Unpack artifacts +# +cd /tmp/Linux && tar -zxf Linux.tar.gz && mv artifact toolbox/ && cd - +cd /tmp/Darwin && tar -zxf Darwin.tar.gz && mv artifact toolbox/ && cd - + +# +# Cp toolbox files, to not mess up workspace +# +cp $SEMAPHORE_PROJECT_DIR/* /tmp/Linux/toolbox +cp $SEMAPHORE_PROJECT_DIR/* /tmp/Darwin/toolbox + +# +# Create linux release +# +cd /tmp/Linux +tar -cf linux.tar toolbox echo "toolbox Linux content: " -tar --list --verbose --file=toolbox_Linux.tar - -rm toolbox/artifact - -tar -zxf Darwin.tar.gz +tar --list --verbose --file=linux.tar -mv artifact toolbox/ - -FILE_LIST="" -for FILE in toolbox/*; do - FILE_LIST="$FILE_LIST $FILE" -done - -tar -cf toolbox_Darwin.tar $(echo $FILE_LIST) +# +# Create darwin release +# +cd /tmp/Darwin +tar -cf darwin.tar toolbox echo "toolbox Darwin content: " -tar --list --verbose --file=toolbox_Darwin.tar - -latest=$(git tag | sort --version-sort | tail -n 1) +tar --list --verbose --file=darwin.tar +# +# Upload created release files to GitHub +# curl \ -X POST \ -H "Authorization: token $GITHUB_TOKEN" \ -H "Accept: application/vnd.github.v3+json" \ https://api.github.com/repos/semaphoreci/toolbox/releases \ - -d '{"tag_name":"'$latest'"}' + -d '{"tag_name":"'$SEMAPHORE_GIT_TAG_NAME'"}' -release_id=$(curl --silent https://api.github.com/repos/semaphoreci/toolbox/releases/tags/$latest | grep -m1 'id' | awk '{print $2}' | tr -d ',' ) +release_id=$(curl --silent https://api.github.com/repos/semaphoreci/toolbox/releases/tags/$SEMAPHORE_GIT_TAG_NAME | grep -m1 'id' | awk '{print $2}' | tr -d ',' ) curl \ -X POST \ -H "Authorization: token $GITHUB_TOKEN" \ -H "Accept: application/vnd.github.v3+json" \ - -H "Content-Type: $(file -b --mime-type toolbox_Linux.tar)" \ - --data-binary @toolbox_Linux.tar \ - "https://uploads.github.com/repos/semaphoreci/toolbox/releases/$release_id/assets?name=toolbox_Linux.tar" + -H "Content-Type: $(file -b --mime-type /tmp/Linux/linux.tar)" \ + --data-binary @/tmp/Linux/linux.tar \ + "https://uploads.github.com/repos/semaphoreci/toolbox/releases/$release_id/assets?name=linux.tar" -echo "toolbox_Linux.tar uploaded" +echo "linux.tar uploaded" curl \ -X POST \ -H "Authorization: token $GITHUB_TOKEN" \ -H "Accept: application/vnd.github.v3+json" \ - -H "Content-Type: $(file -b --mime-type toolbox_Darwin.tar)" \ - --data-binary @toolbox_Linux.tar \ - "https://uploads.github.com/repos/semaphoreci/toolbox/releases/$release_id/assets?name=toolbox_Darwin.tar" + -H "Content-Type: $(file -b --mime-type /tmp/Darwin/darwin.tar)" \ + --data-binary @/tmp/Darwin/darwin.tar \ + "https://uploads.github.com/repos/semaphoreci/toolbox/releases/$release_id/assets?name=darwin.tar" -echo "toolbox_Darwin.tar uploaded" +echo "darwin.tar uploaded" \ No newline at end of file From b3789306c81b32a1937853bd135215b6c9ac3402 Mon Sep 17 00:00:00 2001 From: bogyo210 Date: Tue, 22 Dec 2020 14:47:34 +0200 Subject: [PATCH 9/9] revert sem-version --- sem-version | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sem-version b/sem-version index 9e0bd126..e81b6274 100755 --- a/sem-version +++ b/sem-version @@ -72,11 +72,9 @@ version::change_php() { [[ "$software_version" == "7.2" ]] && software_version="7.2.34" [[ "$software_version" == "7.3" ]] && software_version="7.3.24" [[ "$software_version" == "7.4" ]] && software_version="7.4.12" - phpbrew update + if ! [ -d ~/.phpbrew/php/php-"${software_version}" ]; then sem-install php "${software_version}" - else - phpbrew download "${software_version}" fi software_version="php-${software_version}" version::change "phpbrew switch"