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

Clean up CI bash scripts #10948

Merged
merged 2 commits into from May 1, 2016
Merged
Changes from 1 commit
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Next

Clean up CI bash scripts, add docs/STYLE_GUIDE.md

  • Loading branch information
aneeshusa committed May 1, 2016
commit 1e0d0395111033453c865a79eda1e6cda7ba3348
@@ -0,0 +1,29 @@
# Style Guide

The majority of our style recommendations are automatically enforced via our
automated linters. This document has guidelines that are less easy to lint for.

## Shell scripts

Shell scripts are OK for small tasks or wrappers, but prefer to use Python for
anything with a hint of complexity or in general.

Shell scripts should be written against bash, starting with this shebang:
```
#!/usr/bin/env bash
```

Note that the version of bash available on OS X by default is quite old, so be
careful when using new features.

Scripts should enable a few options at the top for robustness:
```
set -o errexit
set -o nounset
set -o pipefail
```

Quote all variables, using the full form: `"${SOME_VARIABLE}"`.

Use `"$(some-command)"` instead of backticks for command substitution. Note
that these should be quoted as well.
@@ -1,11 +1,12 @@
#!/bin/bash
#!/usr/bin/env bash
#
# Make sure listed files do not contain "unwrap"

set -o errexit
set -o nounset
set -o pipefail

cd $(git rev-parse --show-toplevel) # cd into repo root so make sure paths works in any case
cd "$(git rev-parse --show-toplevel)" # cd into repo root so make sure paths works in any case

# files that should not contain "unwrap"
FILES=("components/compositing/compositor.rs"
@@ -1,4 +1,9 @@
#!/bin/bash
diff=$(git diff -- */*/Cargo.lock)
#!/usr/bin/env bash

set -o errexit
set -o nounset
set -o pipefail

diff="$(git diff -- */*/Cargo.lock)"
echo "$diff"
[[ ! $diff ]]
@@ -1,4 +1,5 @@
#!/bin/bash
#!/usr/bin/env bash

set -o errexit
set -o nounset
set -o pipefail
@@ -11,6 +12,6 @@ set -o pipefail
# Adding "--binary=" to skip looking for a compiled servo binary.
./mach test-wpt --manifest-update --binary= SKIP_TESTS > /dev/null

diff=$(git diff -- tests/*/MANIFEST.json)
diff="$(git diff -- tests/*/MANIFEST.json)"
echo "$diff"
[[ ! $diff ]]
@@ -1,17 +1,19 @@
#!/bin/bash
#!/usr/bin/env bash

# Retries a given command until it passes
# Run as `retry.sh N command args...`
# where `N` is the maximum number of tries, and `command args...` is the
# command to run, with arguments

n=$1
set -o errexit
set -o nounset
set -o pipefail

n="$1"
shift; # this removes the first argument from $@
for i in `seq $n`; do
for i in $(seq $n); do
echo "====== RUN NUMBER: $i ======";
if $@ # run command, check if exit code is zero
then
exit 0 # command passed, all is well
fi
# Run command and exit success if return code is 0, else ignore it
"$@" && exit 0 || true
done
exit 1
@@ -1,10 +1,12 @@
#!/bin/bash
#!/usr/bin/env bash
#
# Helper script to upload docs to doc.servo.org.
# Requires ghp-import (from pip)
# GitHub API token must be passed in environment var TOKEN

set -e
set -o errexit
set -o nounset
set -o pipefail

cd "$(dirname $0)/../.."

@@ -15,4 +17,4 @@ cp etc/doc.servo.org/* target/doc/
python components/style/properties/build.py servo html

ghp-import -n target/doc
git push -qf https://${TOKEN}@github.com/servo/doc.servo.org.git gh-pages
git push -qf "https://${TOKEN}@github.com/servo/doc.servo.org.git" gh-pages
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.