Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
ruby-build
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ruby-build
Commits
de409790
Commit
de409790
authored
Oct 26, 2013
by
Mislav Marohnić
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'provide-bundle-rake'
parents
eaa187b4
9a2c45ba
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
100 additions
and
15 deletions
+100
-15
bin/ruby-build
+28
-0
test/build.bats
+53
-12
test/stubs/stub
+5
-0
test/test_helper.bash
+14
-3
No files found.
bin/ruby-build
View file @
de409790
...
@@ -699,6 +699,34 @@ build_package_verify_openssl() {
...
@@ -699,6 +699,34 @@ build_package_verify_openssl() {
end'
>
&4 2>&1
end'
>
&4 2>&1
}
}
rake
()
{
if
[
-e
"./Gemfile"
]
;
then
bundle
exec
rake
"
$@
"
else
isolated_gem_dependency
"rake --version"
rake
-v
'~> 10.1.0'
command
rake
"
$@
"
fi
}
bundle
()
{
isolated_gem_dependency
"bundle --version"
bundler
-v
'~> 1.3.5'
command
bundle
"
$@
"
}
isolated_gem_dependency
()
{
local
output
=
"
$(
command
$1
2>/dev/null
||
true
)
"
if
[
-z
"
$output
"
]
;
then
shift
1
isolated_gem_install
"
$@
"
fi
}
isolated_gem_install
()
{
export
GEM_HOME
=
"
${
PWD
}
/.gem"
export
PATH
=
"
${
GEM_HOME
}
/bin:
${
PATH
}
"
gem install
"
$@
"
}
version
()
{
version
()
{
echo
"ruby-build
${
RUBY_BUILD_VERSION
}
"
echo
"ruby-build
${
RUBY_BUILD_VERSION
}
"
}
}
...
...
test/build.bats
View file @
de409790
...
@@ -13,7 +13,7 @@ setup() {
...
@@ -13,7 +13,7 @@ setup() {
cached_tarball() {
cached_tarball() {
mkdir -p "$RUBY_BUILD_CACHE_PATH"
mkdir -p "$RUBY_BUILD_CACHE_PATH"
pushd "$RUBY_BUILD_CACHE_PATH" >/dev/null
pushd "$RUBY_BUILD_CACHE_PATH" >/dev/null
tarball "$
1
"
tarball "$
@
"
popd >/dev/null
popd >/dev/null
}
}
...
@@ -21,14 +21,20 @@ tarball() {
...
@@ -21,14 +21,20 @@ tarball() {
local name="$1"
local name="$1"
local path="$PWD/$name"
local path="$PWD/$name"
local configure="$path/configure"
local configure="$path/configure"
shift 1
mkdir -p "$path"
mkdir -p "$path"
cat > "$configure" <<OUT
cat > "$configure" <<OUT
#!$BASH
#!$BASH
echo "$name: \$@" > build.log
echo "$name: \$@" >
>
build.log
OUT
OUT
chmod +x "$configure"
chmod +x "$configure"
for file; do
mkdir -p "$(dirname "${path}/${file}")"
touch "${path}/${file}"
done
tar czf "${path}.tar.gz" -C "${path%/*}" "$name"
tar czf "${path}.tar.gz" -C "${path%/*}" "$name"
}
}
...
@@ -122,23 +128,18 @@ OUT
...
@@ -122,23 +128,18 @@ OUT
}
}
@test "mruby strategy overwrites non-writable files" {
@test "mruby strategy overwrites non-writable files" {
mkdir -p "$RUBY_BUILD_CACHE_PATH"
cached_tarball "mruby-1.0" build/host/bin/{mruby,mirb}
cd "$RUBY_BUILD_CACHE_PATH"
mkdir -p "mruby-1.0/build/host/bin"
touch "mruby-1.0/build/host/bin"/{mruby,mirb}
tar czf "mruby-1.0.tar.gz" "mruby-1.0"
mkdir -p "$INSTALL_ROOT/bin"
mkdir -p "$INSTALL_ROOT/bin"
touch "$INSTALL_ROOT/bin/mruby"
touch "$INSTALL_ROOT/bin/mruby"
chmod -w "$INSTALL_ROOT/bin/mruby"
chmod -w "$INSTALL_ROOT/bin/mruby"
cat > "definition" <<DEF
stub gem false
stub rake '--version : echo 1' true
run_inline_definition <<DEF
install_package "mruby-1.0" "http://ruby-lang.org/pub/mruby-1.0.tar.gz" mruby
install_package "mruby-1.0" "http://ruby-lang.org/pub/mruby-1.0.tar.gz" mruby
DEF
DEF
stub rake true
run ruby-build "definition" "$INSTALL_ROOT"
assert_success
assert_success
unstub rake
unstub rake
...
@@ -147,3 +148,43 @@ DEF
...
@@ -147,3 +148,43 @@ DEF
assert [ -e "$INSTALL_ROOT/bin/ruby" ]
assert [ -e "$INSTALL_ROOT/bin/ruby" ]
assert [ -e "$INSTALL_ROOT/bin/irb" ]
assert [ -e "$INSTALL_ROOT/bin/irb" ]
}
}
@test "mruby strategy fetches rake if missing" {
cached_tarball "mruby-1.0" build/host/bin/mruby
stub rake '--version : false' true
stub gem 'install rake -v *10.1.0 : true'
run_inline_definition <<DEF
install_package "mruby-1.0" "http://ruby-lang.org/pub/mruby-1.0.tar.gz" mruby
DEF
assert_success
unstub gem
unstub rake
}
@test "rbx uses bundle then rake" {
cached_tarball "rubinius-2.0.0" "Gemfile"
stub gem false
stub rake false
stub bundle \
'--version : echo 1' \
' : echo bundle >> build.log' \
'--version : echo 1' \
" exec rake install : { cat build.log; echo bundle \"\$@\"; } >> '$INSTALL_ROOT/build.log'"
run_inline_definition <<DEF
install_package "rubinius-2.0.0" "http://releases.rubini.us/rubinius-2.0.0.tar.gz" rbx
DEF
assert_success
unstub bundle
assert_build_log <<OUT
bundle
rubinius-2.0.0: --prefix=$INSTALL_ROOT
bundle exec rake install
OUT
}
test/stubs/stub
View file @
de409790
...
@@ -11,6 +11,11 @@ _STUB_RUN="${PROGRAM}_STUB_RUN"
...
@@ -11,6 +11,11 @@ _STUB_RUN="${PROGRAM}_STUB_RUN"
_STUB_INDEX
=
"
${
PROGRAM
}
_STUB_INDEX"
_STUB_INDEX
=
"
${
PROGRAM
}
_STUB_INDEX"
_STUB_RESULT
=
"
${
PROGRAM
}
_STUB_RESULT"
_STUB_RESULT
=
"
${
PROGRAM
}
_STUB_RESULT"
_STUB_END
=
"
${
PROGRAM
}
_STUB_END"
_STUB_END
=
"
${
PROGRAM
}
_STUB_END"
_STUB_DEBUG
=
"
${
PROGRAM
}
_STUB_DEBUG"
if
[
-n
"
${
!_STUB_DEBUG
}
"
]
;
then
echo
"
$program
"
"
$@
"
>
&
${
!_STUB_DEBUG
}
fi
[
-e
"
${
!_STUB_PLAN
}
"
]
||
exit
1
[
-e
"
${
!_STUB_PLAN
}
"
]
||
exit
1
[
-n
"
${
!_STUB_RUN
}
"
]
||
eval
"
${
_STUB_RUN
}
"
=
"
${
TMPDIR
}
/
${
program
}
-stub-run"
[
-n
"
${
!_STUB_RUN
}
"
]
||
eval
"
${
_STUB_RUN
}
"
=
"
${
TMPDIR
}
/
${
program
}
-stub-run"
...
...
test/test_helper.bash
View file @
de409790
...
@@ -3,8 +3,10 @@ export TMP="$BATS_TEST_DIRNAME/tmp"
...
@@ -3,8 +3,10 @@ export TMP="$BATS_TEST_DIRNAME/tmp"
if
[
"
$FIXTURE_ROOT
"
!=
"
$BATS_TEST_DIRNAME
/fixtures"
]
;
then
if
[
"
$FIXTURE_ROOT
"
!=
"
$BATS_TEST_DIRNAME
/fixtures"
]
;
then
export
FIXTURE_ROOT
=
"
$BATS_TEST_DIRNAME
/fixtures"
export
FIXTURE_ROOT
=
"
$BATS_TEST_DIRNAME
/fixtures"
export
INSTALL_ROOT
=
"
$TMP
/install"
export
INSTALL_ROOT
=
"
$TMP
/install"
export
PATH
=
"
$BATS_TEST_DIRNAME
/../bin:
$PATH
"
PATH
=
/usr/bin:/usr/sbin:/bin/:/sbin
export
PATH
=
"
$TMP
/bin:
$PATH
"
PATH
=
"
$BATS_TEST_DIRNAME
/../bin:
$PATH
"
PATH
=
"
$TMP
/bin:
$PATH
"
export
PATH
fi
fi
teardown
()
{
teardown
()
{
...
@@ -34,9 +36,18 @@ unstub() {
...
@@ -34,9 +36,18 @@ unstub() {
export
"
${
prefix
}
_STUB_END"
=
1
export
"
${
prefix
}
_STUB_END"
=
1
"
$path
"
local
STATUS
=
0
"
$path
"
||
STATUS
=
"
$?
"
rm
-f
"
$path
"
rm
-f
"
$path
"
rm
-f
"
${
TMP
}
/
${
program
}
-stub-plan"
"
${
TMP
}
/
${
program
}
-stub-run"
rm
-f
"
${
TMP
}
/
${
program
}
-stub-plan"
"
${
TMP
}
/
${
program
}
-stub-run"
return
"
$STATUS
"
}
run_inline_definition
()
{
local
definition
=
"
${
TMP
}
/build-definition"
cat
>
"
$definition
"
run ruby-build
"
$definition
"
"
${
1
:-
$INSTALL_ROOT
}
"
}
}
install_fixture
()
{
install_fixture
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment