#!/usr/bin/env bash

# Copyright 2019 Datawire. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License

set -o errexit
set -o nounset

website_branch=${1:-master}

if ! [[ -d /tmp/getambassador.io-${website_branch}/public ]]; then
	echo '[publish-website-preview] skipping: website preview was not built'
	exit 0
fi

if [[ -n "$TRAVIS_PULL_REQUEST_SHA" ]]; then
	build_type=pr
else
	build_type=push
fi

set -o verbose

npm install netlify-cli -g

netlify deploy \
	--dir="/tmp/getambassador.io-${website_branch}/public" \
	--message="ambassador-docs.git preview ${TRAVIS_JOB_WEB_URL}" \
	--site=1d6f5395-6386-49af-8b47-e85aa28488f8 \
	--auth="${NETLIFY_AUTH_TOKEN}" \
	--json \
	> /tmp/netlify-deploy.json

cat /tmp/netlify-deploy.json

cat >/tmp/github-status.json <<EOF
{
  "context": "website-preview/${build_type}",
  "state": "success",
  "target_url": $(jq .deploy_url </tmp/netlify-deploy.json),
  "description": "Website ${website_branch} preview"
}
EOF

curl --fail \
	-H "Accept: application/json" \
	-H "Content-Type: application/json" \
	-X POST \
	--data '@/tmp/github-status.json' \
	"https://${GH_TOKEN}@api.github.com/repos/datawire/ambassador-docs/statuses/${TRAVIS_PULL_REQUEST_SHA:-${TRAVIS_COMMIT}}"
