BuildID: 2356
Status: OK
Image: melezhik/sparrow:debian
Worker status: OK
---
Date: 28.12.2022 @ 17:02
Time elapsed: 229 sec
---
SCM:
https://github.com/melezhik/Smooth-Numbers.git
Git sha: acb22d2
Git comment: use macros instead of hardcode value
image:
- melezhik/sparrow:debian
tasks:
-
name: main
default: true
language: Raku
code: |
use Text::Table::Simple;
my @columns = ("Rakudo Version", "Status", "Time", "Linux Dist");
my @rows;
my $fail = False;
for config()<tasks><multi-versions><state><list><> -> $i {
@rows.push: [ $i<version>, $i<status>, $i<time>, os() ];
$fail = True unless $i<status> eq "OK";
}
my @table = lol2table(@columns,@rows);
.say for @table;
die "some tests failed" if $fail == True;
depends:
-
name: multi-versions
followup:
-
name: good-doc
-
name: good-doc
plugin: good-doc
config:
path: source/README.md
rakudo_path: {{ CWD }}/rakudo-moar-2022.12-01-linux-x86_64-gcc
-
name: multi-versions
language: Raku
config:
list:
# - 2022.04
- 2022.07
- 2022.12
code: |
my @state;
for config()<list><> -> $v {
my $s = %( version => $v );
if "{cache_root_dir()}/{$v}_ok".IO ~~ :e {
$s<status> = "OK";
} else {
$s<status> = "FAIL";
}
if "{cache_root_dir()}/{$v}_time".IO ~~ :e {
$s<time> = "{cache_root_dir()}/{$v}_time".IO.slurp();
} else {
$s<time> = "NA";
}
@state.push: $s;
}
update_state %( list => @state );
init: |
for config()<list><> -> $v {
run_task("test", %( version => $v ));
}
subtasks:
-
name: test
language: Bash
init: |
ignore_error
code: |
set -e
echo "Linux version: $os"
curl -sL https://rakudo.org/dl/rakudo/rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz \
-o rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
tar -xzf rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
eval "$(rakudo-moar-$version-01-linux-x86_64-gcc/scripts/set-env.sh)"
which raku
which zef
raku --version
zef --version
cd source/
zef install . --deps-only --test-depends --build-depends --/test -to=home
/usr/bin/time -f "%E real,%U user,%S sys | CPU Percentage: %P" -o "${cache_root_dir}/${version}_time" \
zef test --debug . && touch "${cache_root_dir}/${version}_ok"
depends:
-
name: install-deps
-
name: install-deps
language: Bash
code: |
sudo apt-get install -y time
zef install --/test Text::Table::Simple
[35m17:02:00[0m :: [repository] - index updated from https://sparrowhub.io/repo/api/v1/index
run stage: run
[35m17:02:05[0m :: [repository] - installing good-doc, version 0.000013
[1;36m[task run: task.bash - good-doc][0m
[1;36m[dump code: task.bash][0m
[1] set -e
[2]
[3] cd $dir
[4]
[5] cat $file
[6]
[7] rakudo_path=$(config rakudo_path)
[8]
[9] if ! test -z $rakudo_path; then
[10] echo "Using rakudo from $rakudo_path:"
[11] eval "$($rakudo_path/scripts/set-env.sh)"
[12] raku --version
[13] fi
[14]
[15] echo "run raku -I lib $file ..."
[16]
[17] raku -I lib $file || echo "warn: good_doc failed"
[18]
[1;36m[task stdout][0m
[35m17:02:08[0m ::
[35m17:02:08[0m :: use Smooth::Numbers;
[35m17:02:08[0m ::
[35m17:02:08[0m :: my $Hammings = smooth-numbers(2,3,5);
[35m17:02:08[0m ::
[35m17:02:08[0m :: put $Hammings[^20]; # 1 2 3 4 5 6 8 9 10 12 15 16 18 20 24 25 27 30 32 36
[35m17:02:09[0m :: Using rakudo from /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.12-01-linux-x86_64-gcc:
[35m17:02:09[0m :: Adding Rakudo to PATH
[35m17:02:09[0m :: =======================
[35m17:02:09[0m ::
[35m17:02:09[0m :: Paths successfully added.
[35m17:02:09[0m ::
[35m17:02:09[0m :: ================================================================================
[35m17:02:09[0m :: ========= __ __
[35m17:02:09[0m :: ||_|_|| ============================= ( \,/ )
[35m17:02:09[0m :: || # || Welcome to the Raku Console \_ O _/
[35m17:02:09[0m :: || # || ============================= (_/ \_)
[35m17:02:09[0m ::
[35m17:02:09[0m :: This console has all the tools available you need to get started using Raku.
[35m17:02:09[0m ::
[35m17:02:09[0m :: Rakudo provides an interactive command line interpreter (a so called Read Eval
[35m17:02:09[0m :: Print Loop, REPL for short) you can use to quickly try out pieces of Raku code.
[35m17:02:09[0m :: Start it by typing:
[35m17:02:09[0m ::
[35m17:02:09[0m :: raku
[35m17:02:09[0m ::
[35m17:02:09[0m :: If you already have a Raku program in a file, you can run it by typing:
[35m17:02:09[0m ::
[35m17:02:09[0m :: raku path/to/my/program.raku
[35m17:02:09[0m ::
[35m17:02:09[0m :: To install additional modules you can use the Zef module manager:
[35m17:02:09[0m ::
[35m17:02:09[0m :: zef install Some::Module
[35m17:02:09[0m ::
[35m17:02:09[0m :: https://rakudo.org/ - The home of this implementation of Raku.
[35m17:02:09[0m :: https://raku.land/ - Go here to browse for Raku modules.
[35m17:02:09[0m :: https://docs.raku.org/ - The Raku documentation.
[35m17:02:09[0m :: https://web.libera.chat/#raku - The Raku user chat. Talk to us!
[35m17:02:09[0m ::
[35m17:02:09[0m :: Happy hacking!
[35m17:02:09[0m ::
[35m17:02:09[0m :: ================================================================================
[35m17:02:09[0m ::
[35m17:02:09[0m :: Welcome to Rakudo™ v2022.12.
[35m17:02:09[0m :: Implementing the Raku® Programming Language v6.d.
[35m17:02:09[0m :: Built on MoarVM version 2022.12.
[35m17:02:09[0m :: run raku -I lib /home/worker/.sparrow6/tmp/50915/code.raku ...
[35m17:02:10[0m :: 1 2 3 4 5 6 8 9 10 12 15 16 18 20 24 25 27 30 32 36
[35m16:59:22[0m :: [repository] - index updated from https://sparrowhub.io/repo/api/v1/index
run stage: run
source directory does not yet exist, download source archive from storage
[35m16:59:25[0m :: [repository] - installing pack-unpack, version 0.000001
[1;36m[task run: task.bash - unpack source archive][0m
[1;36m[dump code: task.bash][0m
[1] set -e
[2]
[3] file=$(config file)
[4] dir=$(config dir)
[5]
[6] echo "tar -xzf $file "
[7]
[8] tar -xzf $file
[9]
[10] if test $dir; then
[11] ls -l $dir
[12] fi
[13]
[14]
[1;36m[task stdout][0m
[35m16:59:28[0m :: tar -xzf source.tar.gz
[1;36m[task run: task.raku - tasks/main][0m
[1;36m[dump code: task.raku][0m
[1] use Text::Table::Simple;
[2] my @columns = ("Rakudo Version", "Status", "Time", "Linux Dist");
[3] my @rows;
[4] my $fail = False;
[5] for config()<tasks><multi-versions><state><list><> -> $i {
[6] @rows.push: [ $i<version>, $i<status>, $i<time>, os() ];
[7] $fail = True unless $i<status> eq "OK";
[8] }
[9] my @table = lol2table(@columns,@rows);
[10] .say for @table;
[11] die "some tests failed" if $fail == True;
[12]
[1;36m[task stdout][0m
[35m17:01:39[0m :: O----------------O--------O--------------------------------------------------------O------------O
[35m17:01:39[0m :: | Rakudo Version | Status | Time | Linux Dist |
[35m17:01:39[0m :: O================O========O========================================================O============O
[35m17:01:39[0m :: | 2022.07 | OK | 0:03.52 real,4.82 user,0.54 sys | CPU Percentage: 152% | debian |
[35m17:01:39[0m :: | 2022.12 | OK | 0:03.49 real,4.63 user,0.54 sys | CPU Percentage: 148% | debian |
[35m17:01:39[0m :: -------------------------------------------------------------------------------------------------
[35m16:59:51[0m :: [repository] - index updated from https://sparrowhub.io/repo/api/v1/index
run stage: run
[1;36m[task run: task.bash - tasks/multi-versions][0m
[1;36m[dump code: task.bash][0m
[1] set -e
[2] echo "Linux version: $os"
[3] curl -sL https://rakudo.org/dl/rakudo/rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz \
[4] -o rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
[5] tar -xzf rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
[6] eval "$(rakudo-moar-$version-01-linux-x86_64-gcc/scripts/set-env.sh)"
[7] which raku
[8] which zef
[9] raku --version
[10] zef --version
[11]
[12] cd source/
[13] zef install . --deps-only --test-depends --build-depends --/test -to=home
[14] /usr/bin/time -f "%E real,%U user,%S sys | CPU Percentage: %P" -o "${cache_root_dir}/${version}_time" \
[15] zef test --debug . && touch "${cache_root_dir}/${version}_ok"
[16]
[1;36m[task stdout][0m
[35m17:00:32[0m :: Linux version: debian
[35m17:00:33[0m :: Adding Rakudo to PATH
[35m17:00:33[0m :: =======================
[35m17:00:33[0m ::
[35m17:00:33[0m :: Paths successfully added.
[35m17:00:33[0m ::
[35m17:00:33[0m :: ================================================================================
[35m17:00:33[0m :: ========= __ __
[35m17:00:33[0m :: ||_|_|| ============================= ( \,/ )
[35m17:00:33[0m :: || # || Welcome to the Raku Console \_ O _/
[35m17:00:33[0m :: || # || ============================= (_/ \_)
[35m17:00:33[0m ::
[35m17:00:33[0m :: This console has all the tools available you need to get started using Raku.
[35m17:00:33[0m ::
[35m17:00:33[0m :: Rakudo provides an interactive command line interpreter (a so called Read Eval
[35m17:00:33[0m :: Print Loop, REPL for short) you can use to quickly try out pieces of Raku code.
[35m17:00:33[0m :: Start it by typing:
[35m17:00:33[0m ::
[35m17:00:33[0m :: raku
[35m17:00:33[0m ::
[35m17:00:33[0m :: If you already have a Raku program in a file, you can run it by typing:
[35m17:00:33[0m ::
[35m17:00:33[0m :: raku path/to/my/program.raku
[35m17:00:33[0m ::
[35m17:00:33[0m :: To install additional modules you can use the Zef module manager:
[35m17:00:33[0m ::
[35m17:00:33[0m :: zef install Some::Module
[35m17:00:33[0m ::
[35m17:00:33[0m :: https://rakudo.org/ - The home of this implementation of Raku.
[35m17:00:33[0m :: https://raku.land/ - Go here to browse for Raku modules.
[35m17:00:33[0m :: https://docs.raku.org/ - The Raku documentation.
[35m17:00:33[0m :: https://web.libera.chat/#raku - The Raku user chat. Talk to us!
[35m17:00:33[0m ::
[35m17:00:33[0m :: Happy hacking!
[35m17:00:33[0m ::
[35m17:00:33[0m :: ================================================================================
[35m17:00:33[0m ::
[35m17:00:33[0m :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.07-01-linux-x86_64-gcc/bin/raku
[35m17:00:33[0m :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.07-01-linux-x86_64-gcc/share/perl6/site/bin/zef
[35m17:00:33[0m :: Welcome to Rakudo™ v2022.07.
[35m17:00:33[0m :: Implementing the Raku® Programming Language v6.d.
[35m17:00:33[0m :: Built on MoarVM version 2022.07.
[35m17:01:00[0m :: v0.14.5
[35m17:01:20[0m :: ===> Testing: Smooth::Numbers:ver<0.0.3>:auth<zef:thundergnat>
[35m17:01:22[0m :: [Smooth::Numbers] Testing with plugin: Zef::Service::Shell::prove+{<anon|1>}
[35m17:01:22[0m :: [Smooth::Numbers] t/00-basic.t ..
[35m17:01:22[0m :: [Smooth::Numbers] 1..9
[35m17:01:22[0m :: [Smooth::Numbers] ok 1 - Pierpont numbers ok
[35m17:01:22[0m :: [Smooth::Numbers] ok 2 - Hamming numbers ok
[35m17:01:22[0m :: [Smooth::Numbers] ok 3 - Humble numbers ok
[35m17:01:22[0m :: [Smooth::Numbers] ok 4 - ok with skipped prime factors
[35m17:01:22[0m :: [Smooth::Numbers] ok 5 - ok with only 1 factor
[35m17:01:22[0m :: [Smooth::Numbers] ok 6 - ok with non-prime factors
[35m17:01:22[0m :: [Smooth::Numbers] ok 7 - Dies ok if no passed parameters
[35m17:01:22[0m :: [Smooth::Numbers] ok 8 - Dies ok with non-numerics
[35m17:01:22[0m :: [Smooth::Numbers] ok 9 - Dies ok if parameter < 1
[35m17:01:22[0m :: [Smooth::Numbers] ok
[35m17:01:22[0m :: [Smooth::Numbers] All tests successful.
[35m17:01:22[0m :: [Smooth::Numbers] Files=1, Tests=9, 2 wallclock secs ( 0.02 usr 0.01 sys + 2.30 cusr 0.19 csys = 2.52 CPU)
[35m17:01:22[0m :: [Smooth::Numbers] Result: PASS
[35m17:01:22[0m :: ===> Testing [OK] for Smooth::Numbers:ver<0.0.3>:auth<zef:thundergnat>
[1;36m[task stderr][0m
[35m17:01:22[0m :: All candidates are currently installed
[1;36m[task run: task.bash - tasks/multi-versions][0m
[1;36m[dump code: task.bash][0m
[1] set -e
[2] echo "Linux version: $os"
[3] curl -sL https://rakudo.org/dl/rakudo/rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz \
[4] -o rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
[5] tar -xzf rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
[6] eval "$(rakudo-moar-$version-01-linux-x86_64-gcc/scripts/set-env.sh)"
[7] which raku
[8] which zef
[9] raku --version
[10] zef --version
[11]
[12] cd source/
[13] zef install . --deps-only --test-depends --build-depends --/test -to=home
[14] /usr/bin/time -f "%E real,%U user,%S sys | CPU Percentage: %P" -o "${cache_root_dir}/${version}_time" \
[15] zef test --debug . && touch "${cache_root_dir}/${version}_ok"
[16]
[1;36m[task stdout][0m
[35m17:01:22[0m :: Linux version: debian
[35m17:01:23[0m :: Adding Rakudo to PATH
[35m17:01:23[0m :: =======================
[35m17:01:23[0m ::
[35m17:01:23[0m :: Paths successfully added.
[35m17:01:23[0m ::
[35m17:01:23[0m :: ================================================================================
[35m17:01:23[0m :: ========= __ __
[35m17:01:23[0m :: ||_|_|| ============================= ( \,/ )
[35m17:01:23[0m :: || # || Welcome to the Raku Console \_ O _/
[35m17:01:23[0m :: || # || ============================= (_/ \_)
[35m17:01:23[0m ::
[35m17:01:23[0m :: This console has all the tools available you need to get started using Raku.
[35m17:01:23[0m ::
[35m17:01:23[0m :: Rakudo provides an interactive command line interpreter (a so called Read Eval
[35m17:01:23[0m :: Print Loop, REPL for short) you can use to quickly try out pieces of Raku code.
[35m17:01:23[0m :: Start it by typing:
[35m17:01:23[0m ::
[35m17:01:23[0m :: raku
[35m17:01:23[0m ::
[35m17:01:23[0m :: If you already have a Raku program in a file, you can run it by typing:
[35m17:01:23[0m ::
[35m17:01:23[0m :: raku path/to/my/program.raku
[35m17:01:23[0m ::
[35m17:01:23[0m :: To install additional modules you can use the Zef module manager:
[35m17:01:23[0m ::
[35m17:01:23[0m :: zef install Some::Module
[35m17:01:23[0m ::
[35m17:01:23[0m :: https://rakudo.org/ - The home of this implementation of Raku.
[35m17:01:23[0m :: https://raku.land/ - Go here to browse for Raku modules.
[35m17:01:23[0m :: https://docs.raku.org/ - The Raku documentation.
[35m17:01:23[0m :: https://web.libera.chat/#raku - The Raku user chat. Talk to us!
[35m17:01:23[0m ::
[35m17:01:23[0m :: Happy hacking!
[35m17:01:23[0m ::
[35m17:01:23[0m :: ================================================================================
[35m17:01:23[0m ::
[35m17:01:23[0m :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.12-01-linux-x86_64-gcc/bin/raku
[35m17:01:23[0m :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.12-01-linux-x86_64-gcc/share/perl6/site/bin/zef
[35m17:01:23[0m :: Welcome to Rakudo™ v2022.12.
[35m17:01:23[0m :: Implementing the Raku® Programming Language v6.d.
[35m17:01:23[0m :: Built on MoarVM version 2022.12.
[35m17:01:24[0m :: v0.14.5
[35m17:01:28[0m :: ===> Testing: Smooth::Numbers:ver<0.0.3>:auth<zef:thundergnat>
[35m17:01:30[0m :: [Smooth::Numbers] Testing with plugin: Zef::Service::Shell::prove+{<anon|1>}
[35m17:01:30[0m :: [Smooth::Numbers] t/00-basic.t ..
[35m17:01:30[0m :: [Smooth::Numbers] 1..9
[35m17:01:30[0m :: [Smooth::Numbers] ok 1 - Pierpont numbers ok
[35m17:01:30[0m :: [Smooth::Numbers] ok 2 - Hamming numbers ok
[35m17:01:30[0m :: [Smooth::Numbers] ok 3 - Humble numbers ok
[35m17:01:30[0m :: [Smooth::Numbers] ok 4 - ok with skipped prime factors
[35m17:01:30[0m :: [Smooth::Numbers] ok 5 - ok with only 1 factor
[35m17:01:30[0m :: [Smooth::Numbers] ok 6 - ok with non-prime factors
[35m17:01:30[0m :: [Smooth::Numbers] ok 7 - Dies ok if no passed parameters
[35m17:01:30[0m :: [Smooth::Numbers] ok 8 - Dies ok with non-numerics
[35m17:01:30[0m :: [Smooth::Numbers] ok 9 - Dies ok if parameter < 1
[35m17:01:30[0m :: [Smooth::Numbers] ok
[35m17:01:30[0m :: [Smooth::Numbers] All tests successful.
[35m17:01:30[0m :: [Smooth::Numbers] Files=1, Tests=9, 1 wallclock secs ( 0.03 usr 0.01 sys + 2.38 cusr 0.18 csys = 2.60 CPU)
[35m17:01:30[0m :: [Smooth::Numbers] Result: PASS
[35m17:01:30[0m :: ===> Testing [OK] for Smooth::Numbers:ver<0.0.3>:auth<zef:thundergnat>
[1;36m[task stderr][0m
[35m17:01:30[0m :: All candidates are currently installed
[1;36m[task run: task.raku - tasks/multi-versions][0m
[1;36m[dump code: task.raku][0m
[1] my @state;
[2] for config()<list><> -> $v {
[3] my $s = %( version => $v );
[4] if "{cache_root_dir()}/{$v}_ok".IO ~~ :e {
[5] $s<status> = "OK";
[6] } else {
[7] $s<status> = "FAIL";
[8] }
[9] if "{cache_root_dir()}/{$v}_time".IO ~~ :e {
[10] $s<time> = "{cache_root_dir()}/{$v}_time".IO.slurp();
[11] } else {
[12] $s<time> = "NA";
[13] }
[14] @state.push: $s;
[15] }
[16] update_state %( list => @state );
[17]
[1;36m[task stdout][0m
[35m17:00:03[0m :: [repository] - index updated from https://sparrowhub.io/repo/api/v1/index
run stage: run
[1;36m[task run: task.bash - tasks/install-deps][0m
[1;36m[dump code: task.bash][0m
[1] sudo apt-get install -y time
[2] zef install --/test Text::Table::Simple
[3]
[1;36m[task stdout][0m
[35m17:00:08[0m :: Reading package lists...
[35m17:00:09[0m :: Building dependency tree...
[35m17:00:09[0m :: Reading state information...
[35m17:00:09[0m :: The following NEW packages will be installed:
[35m17:00:09[0m :: time
[35m17:00:09[0m :: 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
[35m17:00:09[0m :: Need to get 50.8 kB of archives.
[35m17:00:09[0m :: After this operation, 132 kB of additional disk space will be used.
[35m17:00:09[0m :: Get:1 http://deb.debian.org/debian bullseye/main amd64 time amd64 1.9-0.1 [50.8 kB]
[35m17:00:10[0m :: Fetched 50.8 kB in 0s (2353 kB/s)
[35m17:00:10[0m :: Selecting previously unselected package time.
[35m17:00:10[0m :: (Reading database ...
[35m17:00:10[0m :: (Reading database ... 5%
[35m17:00:10[0m :: (Reading database ... 10%
[35m17:00:10[0m :: (Reading database ... 15%
[35m17:00:10[0m :: (Reading database ... 20%
[35m17:00:10[0m :: (Reading database ... 25%
[35m17:00:10[0m :: (Reading database ... 30%
[35m17:00:10[0m :: (Reading database ... 35%
[35m17:00:10[0m :: (Reading database ... 40%
[35m17:00:10[0m :: (Reading database ... 45%
[35m17:00:10[0m :: (Reading database ... 50%
[35m17:00:10[0m :: (Reading database ... 55%
[35m17:00:10[0m :: (Reading database ... 60%
[35m17:00:10[0m :: (Reading database ... 65%
[35m17:00:10[0m :: (Reading database ... 70%
[35m17:00:10[0m :: (Reading database ... 75%
[35m17:00:10[0m :: (Reading database ... 80%
[35m17:00:10[0m :: (Reading database ... 85%
[35m17:00:10[0m :: (Reading database ... 90%
[35m17:00:10[0m :: (Reading database ... 95%
[35m17:00:10[0m :: (Reading database ... 100%
[35m17:00:10[0m :: (Reading database ... 19016 files and directories currently installed.)
[35m17:00:10[0m :: Preparing to unpack .../time_1.9-0.1_amd64.deb ...
[35m17:00:10[0m :: Unpacking time (1.9-0.1) ...
[35m17:00:10[0m :: Setting up time (1.9-0.1) ...
[35m17:00:12[0m :: ===> Searching for: Text::Table::Simple
[35m17:00:26[0m :: ===> Installing: Text::Table::Simple:ver<0.1.0>:auth<github:ugexe>
[1;36m[task stderr][0m
[35m17:00:26[0m :: debconf: delaying package configuration, since apt-utils is not installed
[35m17:00:26[0m :: ===> Updating fez mirror: https://360.zef.pm/
[35m17:00:26[0m :: ===> Updated fez mirror: https://360.zef.pm/
[35m17:00:26[0m :: ===> Updating rea mirror: https://raw.githubusercontent.com/Raku/REA/main/META.json
[35m17:00:26[0m :: ===> Updated rea mirror: https://raw.githubusercontent.com/Raku/REA/main/META.json