#!/bin/bash # # This script creates a PR updating the nmslib index used by search-index-server. # It uses ks CLI to update the parameters. # After creating and pushing a commit it uses the hub github CLI to create a PR. set -ex DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null && pwd)" branch=master # Ksonnet Environment name. Always use pipeline ksEnvName="pipeline" usage() { echo "Usage: update_index.sh --appDir= --baseBranch= --baseGitRepo= --botEmail= --forkGitRepo= --indexFile= --lookupFile= --workflowId=" } # List of required parameters names=(appDir baseBranch baseGitRepo botEmail forkGitRepo indexFile lookupFile workflowId) source "${DIR}/parse_arguments.sh" if [ ! -z ${help} ]; then usage fi if [ -z ${dryrun} ]; then dryrun=false fi git config --global user.email ${botEmail} git clone https://${GITHUB_TOKEN}@github.com/${forkGitRepo}.git repo && cd repo/${appDir} git config credential.helper store git remote add upstream https://github.com/${baseGitRepo}.git git fetch upstream git merge upstream/${baseBranch} master git checkout -b ${workflowId} ks param set --env=${ksEnvName} search-index-server indexFile ${indexFile} ks param set --env=${ksEnvName} search-index-server lookupFile ${lookupFile} git add . && git commit -m "Update the lookup and index file." FILE=$(mktemp tmp.create_pull_request.XXXX) cat <$FILE Update the lookup and index file by pipeline ${workflowId} This PR is automatically generated by update_index.sh. This PR updates the index and lookup file used to serve predictions. EOF # Create a pull request if (! ${dryrun}); then git push origin ${workflowId} hub pull-request --base=${baseGitRepo}:${baseBranch} -F ${FILE} else echo "dry run; not committing to git." fi