Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix brew formula update #14403

Merged
merged 1 commit into from Jan 6, 2017
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Fix brew formula update

  • Loading branch information
paulrouget committed Jan 5, 2017
commit e1654d9b01aaf288556152d14019c2c40650c3ac
@@ -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

This file was deleted.

@@ -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
@@ -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 "${@}"
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.