Skip to content

Commit

Permalink
Fix brew formula update
Browse files Browse the repository at this point in the history
  • Loading branch information
paulrouget committed Jan 5, 2017
1 parent 143dfc8 commit e1654d9
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 54 deletions.
1 change: 0 additions & 1 deletion etc/ci/buildbot_steps.yml
Expand Up @@ -34,7 +34,6 @@ mac-nightly:
- ./mach package --release
- ./etc/ci/upload_nightly.sh mac
- ./etc/ci/upload_nightly.sh macbrew
- ./etc/ci/update_brew.sh

linux-rel-intermittent:
- ./mach build --release
Expand Down
48 changes: 0 additions & 48 deletions etc/ci/update_brew.sh

This file was deleted.

49 changes: 44 additions & 5 deletions etc/ci/upload_nightly.sh
Expand Up @@ -16,25 +16,60 @@ usage() {


upload() {
local nightly_filename nightly_timestamp
nightly_timestamp="$(date -u +"%Y-%m-%dT%H-%M-%SZ")"
nightly_filename="${nightly_timestamp}-$(basename "${2}")"
local nightly_filename
nightly_filename="${4}-$(basename "${2}")"
local -r nightly_upload_dir="s3://servo-builds/nightly/${1}"
local -r package_upload_path="${nightly_upload_dir}/${nightly_filename}"
s3cmd --mime-type="application/octet-stream" \
put "${2}" "${package_upload_path}"
s3cmd cp "${package_upload_path}" "${nightly_upload_dir}/servo-latest.${3}"
}

update_brew() {
echo "Updating brew formula"

local package_url sha version script_dir tmp_dir nightly_filename

nightly_filename="${2}-$(basename "${1}")"
package_url="https://download.servo.org/nightly/macbrew/${nightly_filename}"
sha="$(shasum -a 256 "${1}" | sed -e 's/ .*//')"

# This will transform a timestamp (2016-12-13T08-01-10Z for example)
# into a valid brew version number (2016.12.13).
version="$(echo "${2}" | \
sed -n 's/\([0-9]\{4\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\).*/\1.\2.\3/p')"

script_dir="${PWD}/$(dirname "${0}")"
tmp_dir="$(mktemp -d -t homebrew-servo.XXXXX)"

git -C "${tmp_dir}" clone https://github.com/servo/homebrew-servo.git .

# Not using "/" as it's used in PACKAGEURL
sed "s|PACKAGEURL|${package_url}|g
s|SHA|${sha}|g
s|VERSION|${version}|g" \
< "${script_dir}/servo-binary-formula.rb.in" \
> "${tmp_dir}/Formula/servo-bin.rb"

git -C "${tmp_dir}" add ./Formula/servo-bin.rb
git -C "${tmp_dir}" commit -m "Version bump: ${version}"

git -C "${tmp_dir}" push -qf \
"https://${GITHUB_HOMEBREW_TOKEN}@github.com/servo/homebrew-servo.git" \
master >/dev/null 2>&1

rm -rf "${tmp_dir}"
}

main() {
if (( "${#}" != 1 )); then
usage >&2
return 1
fi

local platform package extension
local platform package extension nightly_timestamp
platform="${1}"
nightly_timestamp="$(date -u +"%Y-%m-%dT%H-%M-%SZ")"

if [[ "${platform}" == "android" ]]; then
extension=apk
Expand All @@ -60,7 +95,11 @@ main() {
# Lack of quotes on package allows glob expansion
# Note that this is not robust in the case of embedded spaces
# TODO(aneeshusa): make this glob robust using e.g. arrays or Python
upload "${platform}" ${package} "${extension}"
upload "${platform}" ${package} "${extension}" "${nightly_timestamp}"

if [[ "${platform}" == "macbrew" ]]; then
update_brew ${package} "${nightly_timestamp}"
fi
}

main "${@}"

0 comments on commit e1654d9

Please sign in to comment.