diff --git a/.circleci/config.yml b/.circleci/config.yml index b5eb6fe85221..7373aa3a258e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,13 +14,6 @@ workflows: - prep-build: requires: - prep-deps - - create_github_release: - requires: - - prep-build - filters: - branches: - only: - - develop # - prep-docs: # requires: # - prep-deps @@ -243,6 +236,13 @@ jobs: - run: name: sentry sourcemaps upload command: yarn sentry:publish + - run: + name: Create GitHub release + command: | + .circleci/scripts/release-create-gh-release + - run: + name: Create GitHub Pull Request to sync master with develop + command: .circleci/scripts/release-create-master-pr # - run: # name: github gh-pages docs publish # command: > @@ -321,15 +321,3 @@ jobs: - run: name: Coveralls upload command: yarn test:coveralls-upload - - create_github_release: - docker: - - image: circleci/node:8.15.1-browsers - steps: - - checkout - - attach_workspace: - at: . - - run: - name: Create GitHub release - command: | - .circleci/scripts/release-create-gh-release diff --git a/.circleci/scripts/release-create-gh-release b/.circleci/scripts/release-create-gh-release index f40df49983fd..93303f576ebe 100755 --- a/.circleci/scripts/release-create-gh-release +++ b/.circleci/scripts/release-create-gh-release @@ -28,24 +28,24 @@ function install_github_cli () current_commit_msg=$(git show -s --format='%s' HEAD) -if grep --quiet '^Version v' <<< "$current_commit_msg" +if [[ $current_commit_msg =~ Version[-[:space:]](v[[:digit:]]+.[[:digit:]]+.[[:digit:]]+) ]] then + tag="${BASH_REMATCH[1]}" + install_github_cli printf '%s\n' 'Creating GitHub Release' - read -ra commit_words <<< "$current_commit_msg" - tag="${commit_words[1]}" release_body="$(awk -v version="${tag##v}" -f .circleci/scripts/show-changelog.awk CHANGELOG.md)" pushd builds hub release create \ --attach metamask-chrome-*.zip \ --attach metamask-firefox-*.zip \ - --message "${commit_words[0]} ${commit_words[1]#v}" \ + --message "Version ${tag##v}" \ --message "$release_body" \ --commitish "$CIRCLE_SHA1" \ "$tag" popd else - printf '%s\n' 'Skipping GitHub Release' + printf '%s\n' 'Version not found in commit message; skipping GitHub Release' exit 0 fi diff --git a/.circleci/scripts/release-create-master-pr b/.circleci/scripts/release-create-master-pr new file mode 100755 index 000000000000..74eeed86c84b --- /dev/null +++ b/.circleci/scripts/release-create-master-pr @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +if [[ "${CI:-}" != 'true' ]] +then + printf '%s\n' 'CI environment variable must be set to true' + exit 1 +fi + +if [[ "${CIRCLECI:-}" != 'true' ]] +then + printf '%s\n' 'CIRCLECI environment variable must be set to true' + exit 1 +fi + +if [[ -z "${GITHUB_TOKEN:-}" ]] +then + printf '%s\n' 'GITHUB_TOKEN environment variable must be set' + exit 1 +fi + +function install_github_cli () +{ + printf '%s\n' 'Installing hub CLI' + pushd "$(mktemp -d)" + curl -sSL 'https://github.com/github/hub/releases/download/v2.11.2/hub-linux-amd64-2.11.2.tgz' | tar xz + PATH="$PATH:$PWD/hub-linux-amd64-2.11.2/bin" + popd +} + +base_branch='develop' + +if [[ -n "${CI_PULL_REQUEST:-}" ]] +then + printf '%s\n' 'CI_PULL_REQUEST is set, pull request already exists for this build' + exit 0 +fi + +install_github_cli + +printf '%s\n' "Creating a Pull Request to sync 'master' with 'develop'" + +if ! hub pull-request \ + --reviewer '@MetaMask/extension-release-team' \ + --message "Master => develop" --message 'Merge latest release back into develop' \ + --base "$CIRCLE_PROJECT_USERNAME:$base_branch" \ + --head "$CIRCLE_PROJECT_USERNAME:$CIRCLE_BRANCH"; +then + printf '%s\n' 'Pull Request already exists' +fi diff --git a/.circleci/scripts/release-create-release-pr b/.circleci/scripts/release-create-release-pr index 8a2238ec4467..76f30ece4c19 100755 --- a/.circleci/scripts/release-create-release-pr +++ b/.circleci/scripts/release-create-release-pr @@ -32,7 +32,7 @@ function install_github_cli () } version="${CIRCLE_BRANCH/Version-v/}" -base_branch='develop' +base_branch='master' if [[ -n "${CI_PULL_REQUEST:-}" ]] then