Exporting environment variables
Exporting CI
Exporting DISPLAY
Exporting PAGER
Exporting RUBY_VERSION
Exporting SEMAPHORE
Exporting SEMAPHORE_AGENT_MACHINE_ENVIRONMENT_TYPE
Exporting SEMAPHORE_AGENT_MACHINE_OS_IMAGE
Exporting SEMAPHORE_AGENT_MACHINE_TYPE
Exporting SEMAPHORE_ARTIFACT_TOKEN
Exporting SEMAPHORE_CACHE_ARCHIVE_METHOD
Exporting SEMAPHORE_CACHE_BACKEND
Exporting SEMAPHORE_CACHE_PRIVATE_KEY_PATH
Exporting SEMAPHORE_CACHE_URL
Exporting SEMAPHORE_CACHE_USERNAME
Exporting SEMAPHORE_GIT_BRANCH
Exporting SEMAPHORE_GIT_COMMITTER
Exporting SEMAPHORE_GIT_COMMIT_AUTHOR
Exporting SEMAPHORE_GIT_COMMIT_RANGE
Exporting SEMAPHORE_GIT_DIR
Exporting SEMAPHORE_GIT_PROVIDER
Exporting SEMAPHORE_GIT_REF
Exporting SEMAPHORE_GIT_REF_TYPE
Exporting SEMAPHORE_GIT_REPO_NAME
Exporting SEMAPHORE_GIT_REPO_SLUG
Exporting SEMAPHORE_GIT_SHA
Exporting SEMAPHORE_GIT_URL
Exporting SEMAPHORE_GIT_WORKING_BRANCH
Exporting SEMAPHORE_JOB_CREATION_TIME
Exporting SEMAPHORE_JOB_ID
Exporting SEMAPHORE_JOB_NAME
Exporting SEMAPHORE_JOB_TYPE
Exporting SEMAPHORE_ORGANIZATION_URL
Exporting SEMAPHORE_PIPELINE_0_ARTEFACT_ID
Exporting SEMAPHORE_PIPELINE_ARTEFACT_ID
Exporting SEMAPHORE_PIPELINE_ID
Exporting SEMAPHORE_PIPELINE_PROMOTED_BY
Exporting SEMAPHORE_PIPELINE_PROMOTION
Exporting SEMAPHORE_PIPELINE_RERUN
Exporting SEMAPHORE_PROJECT_ID
Exporting SEMAPHORE_PROJECT_NAME
Exporting SEMAPHORE_TOOLBOX_METRICS_ENABLED
Exporting SEMAPHORE_WORKFLOW_HOOK_SOURCE
Exporting SEMAPHORE_WORKFLOW_ID
Exporting SEMAPHORE_WORKFLOW_NUMBER
Exporting SEMAPHORE_WORKFLOW_RERUN
Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY
Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY_API
Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY_HOOK
Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY_MANUAL_RUN
Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY_SCHEDULE
Exporting SSH_PRIVATE_KEY_PATH
Exporting TERM
Injecting Files
Injecting /Users/semaphore/.ssh/semaphore_cache_key with file mode 0600
Injecting /Users/semaphore/.ssh/id_rsa with file mode 0600
Running the pre-job hook configured in the agent
Running: source /opt/semaphoreci/pre_job.sh
Warning: The agent is configured to fail the job if the pre-job hook fails.
Installing toolbox in pre-job-hook
http://packages.semaphoreci.com/toolbox/releases/download/v1.22.9/darwin-arm.tar
x toolbox/
x toolbox/sem-dockerize
x toolbox/toolbox
x toolbox/retry
x toolbox/enetwork
x toolbox/artifact
x toolbox/install-toolbox
x toolbox/system-metrics-collector
x toolbox/libcheckout
x toolbox/cache
x toolbox/libchecksum
x toolbox/install-package
x toolbox/README.md
x toolbox/sem-context
x toolbox/test-results
x toolbox/sem-version
x toolbox/ssh-session-cli
x toolbox/sem-service
x toolbox/sem-install
x toolbox/sem-service-check-params
x toolbox/Dockerfile.dev
x toolbox/sem-semantic-release
retry installed
ssh-session-cli installed
cache installed
sem-context installed
sem-service installed
sem-dockerize installed
sem-service-check-params installed
sem-semantic-release installed
Installing the artifacts CLI
artifacts installed
Installing the test results CLI
test-results installed
Toolbox installed
Starting ssh-agent
Agent pid 1105
ssh-agent started
Connecting to cache
# 46.4.218.107:29920 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
# 46.4.218.107:29920 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
# 46.4.218.107:29920 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
# 46.4.218.107:29920 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
# 46.4.218.107:29920 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
Identity added: /Users/semaphore/.ssh/semaphore_cache_key (/Users/semaphore/.ssh/semaphore_cache_key)
checkout
Performing shallow clone with depth: 50
Cloning into 'amalgalite'...
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
remote: Enumerating objects: 796, done.
remote: Counting objects:   0% (1/796)
remote: Counting objects:   1% (8/796)
remote: Counting objects:   2% (16/796)
remote: Counting objects:   3% (24/796)
remote: Counting objects:   4% (32/796)
remote: Counting objects:   5% (40/796)
remote: Counting objects:   6% (48/796)
remote: Counting objects:   7% (56/796)
remote: Counting objects:   8% (64/796)
remote: Counting objects:   9% (72/796)
remote: Counting objects:  10% (80/796)
remote: Counting objects:  11% (88/796)
remote: Counting objects:  12% (96/796)
remote: Counting objects:  13% (104/796)
remote: Counting objects:  14% (112/796)
remote: Counting objects:  15% (120/796)
remote: Counting objects:  16% (128/796)
remote: Counting objects:  17% (136/796)
remote: Counting objects:  18% (144/796)
remote: Counting objects:  19% (152/796)
remote: Counting objects:  20% (160/796)
remote: Counting objects:  21% (168/796)
remote: Counting objects:  22% (176/796)
remote: Counting objects:  23% (184/796)
remote: Counting objects:  24% (192/796)
remote: Counting objects:  25% (199/796)
remote: Counting objects:  26% (207/796)
remote: Counting objects:  27% (215/796)
remote: Counting objects:  28% (223/796)
remote: Counting objects:  29% (231/796)
remote: Counting objects:  30% (239/796)
remote: Counting objects:  31% (247/796)
remote: Counting objects:  32% (255/796)
remote: Counting objects:  33% (263/796)
remote: Counting objects:  34% (271/796)
remote: Counting objects:  35% (279/796)
remote: Counting objects:  36% (287/796)
remote: Counting objects:  37% (295/796)
remote: Counting objects:  38% (303/796)
remote: Counting objects:  39% (311/796)
remote: Counting objects:  40% (319/796)
remote: Counting objects:  41% (327/796)
remote: Counting objects:  42% (335/796)
remote: Counting objects:  43% (343/796)
remote: Counting objects:  44% (351/796)
remote: Counting objects:  45% (359/796)
remote: Counting objects:  46% (367/796)
remote: Counting objects:  47% (375/796)
remote: Counting objects:  48% (383/796)
remote: Counting objects:  49% (391/796)
remote: Counting objects:  50% (398/796)
remote: Counting objects:  51% (406/796)
remote: Counting objects:  52% (414/796)
remote: Counting objects:  53% (422/796)
remote: Counting objects:  54% (430/796)
remote: Counting objects:  55% (438/796)
remote: Counting objects:  56% (446/796)
remote: Counting objects:  57% (454/796)
remote: Counting objects:  58% (462/796)
remote: Counting objects:  59% (470/796)
remote: Counting objects:  60% (478/796)
remote: Counting objects:  61% (486/796)
remote: Counting objects:  62% (494/796)
remote: Counting objects:  63% (502/796)
remote: Counting objects:  64% (510/796)
remote: Counting objects:  65% (518/796)
remote: Counting objects:  66% (526/796)
remote: Counting objects:  67% (534/796)
remote: Counting objects:  68% (542/796)
remote: Counting objects:  69% (550/796)
remote: Counting objects:  70% (558/796)
remote: Counting objects:  71% (566/796)
remote: Counting objects:  72% (574/796)
remote: Counting objects:  73% (582/796)
remote: Counting objects:  74% (590/796)
remote: Counting objects:  75% (597/796)
remote: Counting objects:  76% (605/796)
remote: Counting objects:  77% (613/796)
remote: Counting objects:  78% (621/796)
remote: Counting objects:  79% (629/796)
remote: Counting objects:  80% (637/796)
remote: Counting objects:  81% (645/796)
remote: Counting objects:  82% (653/796)
remote: Counting objects:  83% (661/796)
remote: Counting objects:  84% (669/796)
remote: Counting objects:  85% (677/796)
remote: Counting objects:  86% (685/796)
remote: Counting objects:  87% (693/796)
remote: Counting objects:  88% (701/796)
remote: Counting objects:  89% (709/796)
remote: Counting objects:  90% (717/796)
remote: Counting objects:  91% (725/796)
remote: Counting objects:  92% (733/796)
remote: Counting objects:  93% (741/796)
remote: Counting objects:  94% (749/796)
remote: Counting objects:  95% (757/796)
remote: Counting objects:  96% (765/796)
remote: Counting objects:  97% (773/796)
remote: Counting objects:  98% (781/796)
remote: Counting objects:  99% (789/796)
remote: Counting objects: 100% (796/796)
remote: Counting objects: 100% (796/796), done.
remote: Compressing objects:   0% (1/380)
remote: Compressing objects:   1% (4/380)
remote: Compressing objects:   2% (8/380)
remote: Compressing objects:   3% (12/380)
remote: Compressing objects:   4% (16/380)
remote: Compressing objects:   5% (19/380)
remote: Compressing objects:   6% (23/380)
remote: Compressing objects:   7% (27/380)
remote: Compressing objects:   8% (31/380)
remote: Compressing objects:   9% (35/380)
remote: Compressing objects:  10% (38/380)
remote: Compressing objects:  11% (42/380)
remote: Compressing objects:  12% (46/380)
remote: Compressing objects:  13% (50/380)
remote: Compressing objects:  14% (54/380)
remote: Compressing objects:  15% (57/380)
remote: Compressing objects:  16% (61/380)
remote: Compressing objects:  17% (65/380)
remote: Compressing objects:  18% (69/380)
remote: Compressing objects:  19% (73/380)
remote: Compressing objects:  20% (76/380)
remote: Compressing objects:  21% (80/380)
remote: Compressing objects:  22% (84/380)
remote: Compressing objects:  23% (88/380)
remote: Compressing objects:  24% (92/380)
remote: Compressing objects:  25% (95/380)
remote: Compressing objects:  26% (99/380)
remote: Compressing objects:  27% (103/380)
remote: Compressing objects:  28% (107/380)
remote: Compressing objects:  29% (111/380)
remote: Compressing objects:  30% (114/380)
remote: Compressing objects:  31% (118/380)
remote: Compressing objects:  32% (122/380)
remote: Compressing objects:  33% (126/380)
remote: Compressing objects:  34% (130/380)
remote: Compressing objects:  35% (133/380)
remote: Compressing objects:  36% (137/380)
remote: Compressing objects:  37% (141/380)
remote: Compressing objects:  38% (145/380)
remote: Compressing objects:  39% (149/380)
remote: Compressing objects:  40% (152/380)
remote: Compressing objects:  41% (156/380)
remote: Compressing objects:  42% (160/380)
remote: Compressing objects:  43% (164/380)
remote: Compressing objects:  44% (168/380)
remote: Compressing objects:  45% (171/380)
remote: Compressing objects:  46% (175/380)
remote: Compressing objects:  47% (179/380)
remote: Compressing objects:  48% (183/380)
remote: Compressing objects:  49% (187/380)
remote: Compressing objects:  50% (190/380)
remote: Compressing objects:  51% (194/380)
remote: Compressing objects:  52% (198/380)
remote: Compressing objects:  53% (202/380)
remote: Compressing objects:  54% (206/380)
remote: Compressing objects:  55% (209/380)
remote: Compressing objects:  56% (213/380)
remote: Compressing objects:  57% (217/380)
remote: Compressing objects:  58% (221/380)
remote: Compressing objects:  59% (225/380)
remote: Compressing objects:  60% (228/380)
remote: Compressing objects:  61% (232/380)
remote: Compressing objects:  62% (236/380)
remote: Compressing objects:  63% (240/380)
remote: Compressing objects:  64% (244/380)
remote: Compressing objects:  65% (247/380)
remote: Compressing objects:  66% (251/380)
remote: Compressing objects:  67% (255/380)
remote: Compressing objects:  68% (259/380)
remote: Compressing objects:  69% (263/380)
remote: Compressing objects:  70% (266/380)
remote: Compressing objects:  71% (270/380)
remote: Compressing objects:  72% (274/380)
remote: Compressing objects:  73% (278/380)
remote: Compressing objects:  74% (282/380)
remote: Compressing objects:  75% (285/380)
remote: Compressing objects:  76% (289/380)
remote: Compressing objects:  77% (293/380)
remote: Compressing objects:  78% (297/380)
remote: Compressing objects:  79% (301/380)
remote: Compressing objects:  80% (304/380)
remote: Compressing objects:  81% (308/380)
remote: Compressing objects:  82% (312/380)
remote: Compressing objects:  83% (316/380)
remote: Compressing objects:  84% (320/380)
remote: Compressing objects:  85% (323/380)
remote: Compressing objects:  86% (327/380)
remote: Compressing objects:  87% (331/380)
remote: Compressing objects:  88% (335/380)
remote: Compressing objects:  89% (339/380)
remote: Compressing objects:  90% (342/380)
remote: Compressing objects:  91% (346/380)
remote: Compressing objects:  92% (350/380)
remote: Compressing objects:  93% (354/380)
remote: Compressing objects:  94% (358/380)
remote: Compressing objects:  95% (361/380)
remote: Compressing objects:  96% (365/380)
remote: Compressing objects:  97% (369/380)
remote: Compressing objects:  98% (373/380)
remote: Compressing objects:  99% (377/380)
remote: Compressing objects: 100% (380/380)
remote: Compressing objects: 100% (380/380), done.
Receiving objects:   0% (1/796)
Receiving objects:   1% (8/796)
Receiving objects:   2% (16/796)
Receiving objects:   3% (24/796)
Receiving objects:   4% (32/796)
Receiving objects:   5% (40/796)
Receiving objects:   6% (48/796)
Receiving objects:   7% (56/796)
Receiving objects:   8% (64/796)
Receiving objects:   9% (72/796)
Receiving objects:  10% (80/796)
Receiving objects:  11% (88/796)
Receiving objects:  12% (96/796)
Receiving objects:  13% (104/796)
Receiving objects:  14% (112/796)
Receiving objects:  15% (120/796)
Receiving objects:  16% (128/796)
Receiving objects:  17% (136/796)
Receiving objects:  18% (144/796)
Receiving objects:  19% (152/796)
Receiving objects:  20% (160/796)
Receiving objects:  21% (168/796)
Receiving objects:  22% (176/796)
Receiving objects:  23% (184/796)
Receiving objects:  24% (192/796)
Receiving objects:  25% (199/796)
Receiving objects:  26% (207/796)
Receiving objects:  27% (215/796)
Receiving objects:  28% (223/796)
Receiving objects:  29% (231/796)
Receiving objects:  30% (239/796)
Receiving objects:  31% (247/796)
Receiving objects:  32% (255/796)
Receiving objects:  33% (263/796)
Receiving objects:  34% (271/796)
Receiving objects:  35% (279/796)
Receiving objects:  36% (287/796)
Receiving objects:  37% (295/796)
Receiving objects:  38% (303/796)
Receiving objects:  39% (311/796)
Receiving objects:  40% (319/796)
Receiving objects:  41% (327/796)
Receiving objects:  42% (335/796)
Receiving objects:  43% (343/796)
Receiving objects:  44% (351/796)
Receiving objects:  45% (359/796)
Receiving objects:  46% (367/796)
Receiving objects:  47% (375/796)
Receiving objects:  48% (383/796)
Receiving objects:  49% (391/796)
Receiving objects:  50% (398/796)
Receiving objects:  51% (406/796)
Receiving objects:  52% (414/796)
Receiving objects:  53% (422/796)
Receiving objects:  54% (430/796)
Receiving objects:  55% (438/796)
Receiving objects:  56% (446/796)
Receiving objects:  57% (454/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  58% (462/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  59% (470/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  60% (478/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  61% (486/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  62% (494/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  63% (502/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  64% (510/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  65% (518/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  66% (526/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  67% (534/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  68% (542/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  69% (550/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  70% (558/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  71% (566/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  72% (574/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  73% (582/796), 1.44 MiB | 2.75 MiB/s
remote: Total 796 (delta 416), reused 623 (delta 359), pack-reused 0 (from 0)
Receiving objects:  74% (590/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  75% (597/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  76% (605/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  77% (613/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  78% (621/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  79% (629/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  80% (637/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  81% (645/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  82% (653/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  83% (661/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  84% (669/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  85% (677/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  86% (685/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  87% (693/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  88% (701/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  89% (709/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  90% (717/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  91% (725/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  92% (733/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  93% (741/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  94% (749/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  95% (757/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  96% (765/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  97% (773/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  98% (781/796), 1.44 MiB | 2.75 MiB/s
Receiving objects:  99% (789/796), 1.44 MiB | 2.75 MiB/s
Receiving objects: 100% (796/796), 1.44 MiB | 2.75 MiB/s
Receiving objects: 100% (796/796), 3.91 MiB | 6.14 MiB/s, done.
Resolving deltas:   0% (0/416)
Resolving deltas:   1% (5/416)
Resolving deltas:   2% (9/416)
Resolving deltas:   3% (13/416)
Resolving deltas:   4% (17/416)
Resolving deltas:   5% (22/416)
Resolving deltas:   6% (25/416)
Resolving deltas:   7% (30/416)
Resolving deltas:   8% (34/416)
Resolving deltas:   9% (38/416)
Resolving deltas:  10% (42/416)
Resolving deltas:  11% (46/416)
Resolving deltas:  12% (50/416)
Resolving deltas:  13% (55/416)
Resolving deltas:  14% (59/416)
Resolving deltas:  15% (63/416)
Resolving deltas:  16% (67/416)
Resolving deltas:  17% (71/416)
Resolving deltas:  18% (75/416)
Resolving deltas:  19% (80/416)
Resolving deltas:  20% (84/416)
Resolving deltas:  21% (88/416)
Resolving deltas:  22% (92/416)
Resolving deltas:  23% (96/416)
Resolving deltas:  24% (100/416)
Resolving deltas:  25% (104/416)
Resolving deltas:  26% (109/416)
Resolving deltas:  27% (113/416)
Resolving deltas:  28% (117/416)
Resolving deltas:  29% (121/416)
Resolving deltas:  30% (125/416)
Resolving deltas:  31% (129/416)
Resolving deltas:  32% (134/416)
Resolving deltas:  33% (138/416)
Resolving deltas:  34% (142/416)
Resolving deltas:  35% (146/416)
Resolving deltas:  36% (150/416)
Resolving deltas:  37% (154/416)
Resolving deltas:  38% (159/416)
Resolving deltas:  39% (163/416)
Resolving deltas:  40% (167/416)
Resolving deltas:  41% (171/416)
Resolving deltas:  42% (175/416)
Resolving deltas:  43% (179/416)
Resolving deltas:  44% (184/416)
Resolving deltas:  45% (188/416)
Resolving deltas:  46% (192/416)
Resolving deltas:  47% (196/416)
Resolving deltas:  48% (200/416)
Resolving deltas:  49% (204/416)
Resolving deltas:  50% (208/416)
Resolving deltas:  51% (213/416)
Resolving deltas:  52% (217/416)
Resolving deltas:  53% (222/416)
Resolving deltas:  54% (225/416)
Resolving deltas:  55% (229/416)
Resolving deltas:  56% (233/416)
Resolving deltas:  57% (238/416)
Resolving deltas:  58% (242/416)
Resolving deltas:  59% (246/416)
Resolving deltas:  60% (250/416)
Resolving deltas:  61% (256/416)
Resolving deltas:  62% (258/416)
Resolving deltas:  63% (263/416)
Resolving deltas:  64% (268/416)
Resolving deltas:  65% (271/416)
Resolving deltas:  66% (275/416)
Resolving deltas:  67% (279/416)
Resolving deltas:  68% (283/416)
Resolving deltas:  69% (289/416)
Resolving deltas:  70% (292/416)
Resolving deltas:  71% (296/416)
Resolving deltas:  72% (300/416)
Resolving deltas:  73% (304/416)
Resolving deltas:  74% (308/416)
Resolving deltas:  75% (312/416)
Resolving deltas:  76% (317/416)
Resolving deltas:  77% (322/416)
Resolving deltas:  78% (325/416)
Resolving deltas:  79% (329/416)
Resolving deltas:  80% (333/416)
Resolving deltas:  81% (337/416)
Resolving deltas:  82% (342/416)
Resolving deltas:  83% (346/416)
Resolving deltas:  84% (350/416)
Resolving deltas:  85% (354/416)
Resolving deltas:  86% (358/416)
Resolving deltas:  87% (362/416)
Resolving deltas:  88% (367/416)
Resolving deltas:  89% (371/416)
Resolving deltas:  90% (375/416)
Resolving deltas:  91% (379/416)
Resolving deltas:  92% (383/416)
Resolving deltas:  93% (387/416)
Resolving deltas:  94% (392/416)
Resolving deltas:  95% (396/416)
Resolving deltas:  96% (400/416)
Resolving deltas:  97% (404/416)
Resolving deltas:  98% (408/416)
Resolving deltas:  99% (412/416)
Resolving deltas: 100% (416/416)
Resolving deltas: 100% (416/416), done.
HEAD is now at 3aa364c bump ruby version matrix
source .semaphore/ensure-ruby-build.sh
Installing ruby-build
Cloning into '/Users/semaphore/.rbenv/plugins/ruby-build'...
remote: Enumerating objects: 16810, done.
remote: Counting objects:   0% (1/4554)
remote: Counting objects:   1% (46/4554)
remote: Counting objects:   2% (92/4554)
remote: Counting objects:   3% (137/4554)
remote: Counting objects:   4% (183/4554)
remote: Counting objects:   5% (228/4554)
remote: Counting objects:   6% (274/4554)
remote: Counting objects:   7% (319/4554)
remote: Counting objects:   8% (365/4554)
remote: Counting objects:   9% (410/4554)
remote: Counting objects:  10% (456/4554)
remote: Counting objects:  11% (501/4554)
remote: Counting objects:  12% (547/4554)
remote: Counting objects:  13% (593/4554)
remote: Counting objects:  14% (638/4554)
remote: Counting objects:  15% (684/4554)
remote: Counting objects:  16% (729/4554)
remote: Counting objects:  17% (775/4554)
remote: Counting objects:  18% (820/4554)
remote: Counting objects:  19% (866/4554)
remote: Counting objects:  20% (911/4554)
remote: Counting objects:  21% (957/4554)
remote: Counting objects:  22% (1002/4554)
remote: Counting objects:  23% (1048/4554)
remote: Counting objects:  24% (1093/4554)
remote: Counting objects:  25% (1139/4554)
remote: Counting objects:  26% (1185/4554)
remote: Counting objects:  27% (1230/4554)
remote: Counting objects:  28% (1276/4554)
remote: Counting objects:  29% (1321/4554)
remote: Counting objects:  30% (1367/4554)
remote: Counting objects:  31% (1412/4554)
remote: Counting objects:  32% (1458/4554)
remote: Counting objects:  33% (1503/4554)
remote: Counting objects:  34% (1549/4554)
remote: Counting objects:  35% (1594/4554)
remote: Counting objects:  36% (1640/4554)
remote: Counting objects:  37% (1685/4554)
remote: Counting objects:  38% (1731/4554)
remote: Counting objects:  39% (1777/4554)
remote: Counting objects:  40% (1822/4554)
remote: Counting objects:  41% (1868/4554)
remote: Counting objects:  42% (1913/4554)
remote: Counting objects:  43% (1959/4554)
remote: Counting objects:  44% (2004/4554)
remote: Counting objects:  45% (2050/4554)
remote: Counting objects:  46% (2095/4554)
remote: Counting objects:  47% (2141/4554)
remote: Counting objects:  48% (2186/4554)
remote: Counting objects:  49% (2232/4554)
remote: Counting objects:  50% (2277/4554)
remote: Counting objects:  51% (2323/4554)
remote: Counting objects:  52% (2369/4554)
remote: Counting objects:  53% (2414/4554)
remote: Counting objects:  54% (2460/4554)
remote: Counting objects:  55% (2505/4554)
remote: Counting objects:  56% (2551/4554)
remote: Counting objects:  57% (2596/4554)
remote: Counting objects:  58% (2642/4554)
remote: Counting objects:  59% (2687/4554)
remote: Counting objects:  60% (2733/4554)
remote: Counting objects:  61% (2778/4554)
remote: Counting objects:  62% (2824/4554)
remote: Counting objects:  63% (2870/4554)
remote: Counting objects:  64% (2915/4554)
remote: Counting objects:  65% (2961/4554)
remote: Counting objects:  66% (3006/4554)
remote: Counting objects:  67% (3052/4554)
remote: Counting objects:  68% (3097/4554)
remote: Counting objects:  69% (3143/4554)
remote: Counting objects:  70% (3188/4554)
remote: Counting objects:  71% (3234/4554)
remote: Counting objects:  72% (3279/4554)
remote: Counting objects:  73% (3325/4554)
remote: Counting objects:  74% (3370/4554)
remote: Counting objects:  75% (3416/4554)
remote: Counting objects:  76% (3462/4554)
remote: Counting objects:  77% (3507/4554)
remote: Counting objects:  78% (3553/4554)
remote: Counting objects:  79% (3598/4554)
remote: Counting objects:  80% (3644/4554)
remote: Counting objects:  81% (3689/4554)
remote: Counting objects:  82% (3735/4554)
remote: Counting objects:  83% (3780/4554)
remote: Counting objects:  84% (3826/4554)
remote: Counting objects:  85% (3871/4554)
remote: Counting objects:  86% (3917/4554)
remote: Counting objects:  87% (3962/4554)
remote: Counting objects:  88% (4008/4554)
remote: Counting objects:  89% (4054/4554)
remote: Counting objects:  90% (4099/4554)
remote: Counting objects:  91% (4145/4554)
remote: Counting objects:  92% (4190/4554)
remote: Counting objects:  93% (4236/4554)
remote: Counting objects:  94% (4281/4554)
remote: Counting objects:  95% (4327/4554)
remote: Counting objects:  96% (4372/4554)
remote: Counting objects:  97% (4418/4554)
remote: Counting objects:  98% (4463/4554)
remote: Counting objects:  99% (4509/4554)
remote: Counting objects: 100% (4554/4554)
remote: Counting objects: 100% (4554/4554), done.
remote: Compressing objects:   0% (1/412)
remote: Compressing objects:   1% (5/412)
remote: Compressing objects:   2% (9/412)
remote: Compressing objects:   3% (13/412)
remote: Compressing objects:   4% (17/412)
remote: Compressing objects:   5% (21/412)
remote: Compressing objects:   6% (25/412)
remote: Compressing objects:   7% (29/412)
remote: Compressing objects:   8% (33/412)
remote: Compressing objects:   9% (38/412)
remote: Compressing objects:  10% (42/412)
remote: Compressing objects:  11% (46/412)
remote: Compressing objects:  12% (50/412)
remote: Compressing objects:  13% (54/412)
remote: Compressing objects:  14% (58/412)
remote: Compressing objects:  15% (62/412)
remote: Compressing objects:  16% (66/412)
remote: Compressing objects:  17% (71/412)
remote: Compressing objects:  18% (75/412)
remote: Compressing objects:  19% (79/412)
remote: Compressing objects:  20% (83/412)
remote: Compressing objects:  21% (87/412)
remote: Compressing objects:  22% (91/412)
remote: Compressing objects:  23% (95/412)
remote: Compressing objects:  24% (99/412)
remote: Compressing objects:  25% (103/412)
remote: Compressing objects:  26% (108/412)
remote: Compressing objects:  27% (112/412)
remote: Compressing objects:  28% (116/412)
remote: Compressing objects:  29% (120/412)
remote: Compressing objects:  30% (124/412)
remote: Compressing objects:  31% (128/412)
remote: Compressing objects:  32% (132/412)
remote: Compressing objects:  33% (136/412)
remote: Compressing objects:  34% (141/412)
remote: Compressing objects:  35% (145/412)
remote: Compressing objects:  36% (149/412)
remote: Compressing objects:  37% (153/412)
remote: Compressing objects:  38% (157/412)
remote: Compressing objects:  39% (161/412)
remote: Compressing objects:  40% (165/412)
remote: Compressing objects:  41% (169/412)
remote: Compressing objects:  42% (174/412)
remote: Compressing objects:  43% (178/412)
remote: Compressing objects:  44% (182/412)
remote: Compressing objects:  45% (186/412)
remote: Compressing objects:  46% (190/412)
remote: Compressing objects:  47% (194/412)
remote: Compressing objects:  48% (198/412)
remote: Compressing objects:  49% (202/412)
remote: Compressing objects:  50% (206/412)
remote: Compressing objects:  51% (211/412)
remote: Compressing objects:  52% (215/412)
remote: Compressing objects:  53% (219/412)
remote: Compressing objects:  54% (223/412)
remote: Compressing objects:  55% (227/412)
remote: Compressing objects:  56% (231/412)
remote: Compressing objects:  57% (235/412)
remote: Compressing objects:  58% (239/412)
remote: Compressing objects:  59% (244/412)
remote: Compressing objects:  60% (248/412)
remote: Compressing objects:  61% (252/412)
remote: Compressing objects:  62% (256/412)
remote: Compressing objects:  63% (260/412)
remote: Compressing objects:  64% (264/412)
remote: Compressing objects:  65% (268/412)
remote: Compressing objects:  66% (272/412)
remote: Compressing objects:  67% (277/412)
remote: Compressing objects:  68% (281/412)
remote: Compressing objects:  69% (285/412)
remote: Compressing objects:  70% (289/412)
remote: Compressing objects:  71% (293/412)
remote: Compressing objects:  72% (297/412)
remote: Compressing objects:  73% (301/412)
remote: Compressing objects:  74% (305/412)
remote: Compressing objects:  75% (309/412)
remote: Compressing objects:  76% (314/412)
remote: Compressing objects:  77% (318/412)
remote: Compressing objects:  78% (322/412)
remote: Compressing objects:  79% (326/412)
remote: Compressing objects:  80% (330/412)
remote: Compressing objects:  81% (334/412)
remote: Compressing objects:  82% (338/412)
remote: Compressing objects:  83% (342/412)
remote: Compressing objects:  84% (347/412)
remote: Compressing objects:  85% (351/412)
remote: Compressing objects:  86% (355/412)
remote: Compressing objects:  87% (359/412)
remote: Compressing objects:  88% (363/412)
remote: Compressing objects:  89% (367/412)
remote: Compressing objects:  90% (371/412)
remote: Compressing objects:  91% (375/412)
remote: Compressing objects:  92% (380/412)
remote: Compressing objects:  93% (384/412)
remote: Compressing objects:  94% (388/412)
remote: Compressing objects:  95% (392/412)
remote: Compressing objects:  96% (396/412)
remote: Compressing objects:  97% (400/412)
remote: Compressing objects:  98% (404/412)
remote: Compressing objects:  99% (408/412)
remote: Compressing objects: 100% (412/412)
remote: Compressing objects: 100% (412/412), done.
Receiving objects:   0% (1/16810)
Receiving objects:   1% (169/16810)
Receiving objects:   2% (337/16810)
Receiving objects:   3% (505/16810)
Receiving objects:   4% (673/16810)
Receiving objects:   5% (841/16810)
Receiving objects:   6% (1009/16810)
Receiving objects:   7% (1177/16810)
Receiving objects:   8% (1345/16810)
Receiving objects:   9% (1513/16810)
Receiving objects:  10% (1681/16810)
Receiving objects:  11% (1850/16810)
Receiving objects:  12% (2018/16810)
Receiving objects:  13% (2186/16810)
Receiving objects:  14% (2354/16810)
Receiving objects:  15% (2522/16810)
Receiving objects:  16% (2690/16810)
Receiving objects:  17% (2858/16810)
Receiving objects:  18% (3026/16810)
Receiving objects:  19% (3194/16810)
Receiving objects:  20% (3362/16810)
Receiving objects:  21% (3531/16810)
Receiving objects:  22% (3699/16810)
Receiving objects:  23% (3867/16810)
Receiving objects:  24% (4035/16810)
Receiving objects:  25% (4203/16810)
Receiving objects:  26% (4371/16810)
Receiving objects:  27% (4539/16810)
Receiving objects:  28% (4707/16810)
Receiving objects:  29% (4875/16810)
Receiving objects:  30% (5043/16810)
Receiving objects:  31% (5212/16810)
Receiving objects:  32% (5380/16810)
Receiving objects:  33% (5548/16810)
Receiving objects:  34% (5716/16810)
Receiving objects:  35% (5884/16810)
Receiving objects:  36% (6052/16810)
Receiving objects:  37% (6220/16810)
Receiving objects:  38% (6388/16810)
Receiving objects:  39% (6556/16810)
Receiving objects:  40% (6724/16810)
Receiving objects:  41% (6893/16810)
Receiving objects:  42% (7061/16810)
Receiving objects:  43% (7229/16810)
Receiving objects:  44% (7397/16810)
Receiving objects:  45% (7565/16810)
Receiving objects:  46% (7733/16810)
Receiving objects:  47% (7901/16810)
Receiving objects:  48% (8069/16810)
Receiving objects:  49% (8237/16810)
Receiving objects:  50% (8405/16810)
Receiving objects:  51% (8574/16810)
Receiving objects:  52% (8742/16810)
Receiving objects:  53% (8910/16810)
Receiving objects:  54% (9078/16810)
Receiving objects:  55% (9246/16810)
Receiving objects:  56% (9414/16810)
Receiving objects:  57% (9582/16810)
Receiving objects:  58% (9750/16810)
Receiving objects:  59% (9918/16810)
Receiving objects:  60% (10086/16810)
Receiving objects:  61% (10255/16810)
Receiving objects:  62% (10423/16810)
Receiving objects:  63% (10591/16810)
Receiving objects:  64% (10759/16810)
Receiving objects:  65% (10927/16810)
Receiving objects:  66% (11095/16810)
Receiving objects:  67% (11263/16810)
Receiving objects:  68% (11431/16810)
Receiving objects:  69% (11599/16810)
Receiving objects:  70% (11767/16810)
Receiving objects:  71% (11936/16810)
Receiving objects:  72% (12104/16810)
Receiving objects:  73% (12272/16810)
Receiving objects:  74% (12440/16810)
Receiving objects:  75% (12608/16810)
Receiving objects:  76% (12776/16810)
Receiving objects:  77% (12944/16810)
Receiving objects:  78% (13112/16810)
Receiving objects:  79% (13280/16810)
Receiving objects:  80% (13448/16810)
Receiving objects:  81% (13617/16810)
Receiving objects:  82% (13785/16810)
Receiving objects:  83% (13953/16810)
Receiving objects:  84% (14121/16810)
Receiving objects:  85% (14289/16810)
Receiving objects:  86% (14457/16810)
Receiving objects:  87% (14625/16810)
Receiving objects:  88% (14793/16810)
Receiving objects:  89% (14961/16810)
Receiving objects:  90% (15129/16810)
Receiving objects:  91% (15298/16810)
Receiving objects:  92% (15466/16810)
Receiving objects:  93% (15634/16810)
Receiving objects:  94% (15802/16810)
Receiving objects:  95% (15970/16810)
Receiving objects:  96% (16138/16810)
Receiving objects:  97% (16306/16810)
Receiving objects:  98% (16474/16810)
remote: Total 16810 (delta 4422), reused 4177 (delta 4137), pack-reused 12256 (from 3)
Receiving objects:  99% (16642/16810)
Receiving objects: 100% (16810/16810)
Receiving objects: 100% (16810/16810), 3.33 MiB | 11.22 MiB/s, done.
Resolving deltas:   0% (0/11927)
Resolving deltas:   1% (120/11927)
Resolving deltas:   2% (239/11927)
Resolving deltas:   3% (358/11927)
Resolving deltas:   4% (478/11927)
Resolving deltas:   5% (597/11927)
Resolving deltas:   6% (716/11927)
Resolving deltas:   7% (835/11927)
Resolving deltas:   8% (955/11927)
Resolving deltas:   9% (1074/11927)
Resolving deltas:  10% (1193/11927)
Resolving deltas:  11% (1312/11927)
Resolving deltas:  12% (1433/11927)
Resolving deltas:  13% (1551/11927)
Resolving deltas:  14% (1670/11927)
Resolving deltas:  15% (1790/11927)
Resolving deltas:  16% (1909/11927)
Resolving deltas:  17% (2028/11927)
Resolving deltas:  18% (2147/11927)
Resolving deltas:  19% (2267/11927)
Resolving deltas:  20% (2387/11927)
Resolving deltas:  21% (2505/11927)
Resolving deltas:  22% (2624/11927)
Resolving deltas:  23% (2744/11927)
Resolving deltas:  24% (2863/11927)
Resolving deltas:  25% (2982/11927)
Resolving deltas:  26% (3102/11927)
Resolving deltas:  27% (3222/11927)
Resolving deltas:  28% (3340/11927)
Resolving deltas:  29% (3459/11927)
Resolving deltas:  30% (3579/11927)
Resolving deltas:  31% (3699/11927)
Resolving deltas:  32% (3817/11927)
Resolving deltas:  33% (3936/11927)
Resolving deltas:  34% (4057/11927)
Resolving deltas:  35% (4175/11927)
Resolving deltas:  36% (4294/11927)
Resolving deltas:  37% (4413/11927)
Resolving deltas:  38% (4534/11927)
Resolving deltas:  39% (4652/11927)
Resolving deltas:  40% (4771/11927)
Resolving deltas:  41% (4891/11927)
Resolving deltas:  42% (5010/11927)
Resolving deltas:  43% (5129/11927)
Resolving deltas:  44% (5248/11927)
Resolving deltas:  45% (5369/11927)
Resolving deltas:  46% (5487/11927)
Resolving deltas:  47% (5606/11927)
Resolving deltas:  48% (5725/11927)
Resolving deltas:  49% (5845/11927)
Resolving deltas:  50% (5964/11927)
Resolving deltas:  51% (6083/11927)
Resolving deltas:  52% (6203/11927)
Resolving deltas:  53% (6322/11927)
Resolving deltas:  54% (6441/11927)
Resolving deltas:  55% (6561/11927)
Resolving deltas:  56% (6680/11927)
Resolving deltas:  57% (6799/11927)
Resolving deltas:  58% (6918/11927)
Resolving deltas:  59% (7038/11927)
Resolving deltas:  60% (7157/11927)
Resolving deltas:  61% (7276/11927)
Resolving deltas:  62% (7395/11927)
Resolving deltas:  63% (7515/11927)
Resolving deltas:  64% (7634/11927)
Resolving deltas:  65% (7754/11927)
Resolving deltas:  66% (7872/11927)
Resolving deltas:  67% (7992/11927)
Resolving deltas:  68% (8111/11927)
Resolving deltas:  69% (8231/11927)
Resolving deltas:  70% (8349/11927)
Resolving deltas:  71% (8469/11927)
Resolving deltas:  72% (8590/11927)
Resolving deltas:  73% (8707/11927)
Resolving deltas:  74% (8826/11927)
Resolving deltas:  75% (8946/11927)
Resolving deltas:  76% (9066/11927)
Resolving deltas:  77% (9184/11927)
Resolving deltas:  78% (9305/11927)
Resolving deltas:  79% (9425/11927)
Resolving deltas:  80% (9542/11927)
Resolving deltas:  81% (9661/11927)
Resolving deltas:  82% (9781/11927)
Resolving deltas:  83% (9901/11927)
Resolving deltas:  84% (10019/11927)
Resolving deltas:  85% (10138/11927)
Resolving deltas:  86% (10259/11927)
Resolving deltas:  87% (10377/11927)
Resolving deltas:  88% (10497/11927)
Resolving deltas:  89% (10616/11927)
Resolving deltas:  90% (10735/11927)
Resolving deltas:  91% (10854/11927)
Resolving deltas:  92% (10973/11927)
Resolving deltas:  93% (11093/11927)
Resolving deltas:  94% (11213/11927)
Resolving deltas:  95% (11331/11927)
Resolving deltas:  96% (11452/11927)
Resolving deltas:  97% (11570/11927)
Resolving deltas:  98% (11689/11927)
Resolving deltas:  99% (11809/11927)
Resolving deltas: 100% (11927/11927)
Resolving deltas: 100% (11927/11927), done.
source .semaphore/ensure-ruby-version.sh
Key 'macos-xcode16-3.2.7' exists in the cache store.
Ruby 3.2.7 found in cache
HIT: 'macos-xcode16-3.2.7', using key 'macos-xcode16-3.2.7'.
Downloading key 'macos-xcode16-3.2.7'...
Download complete. Duration: 181.99025ms. Size: 13.1M bytes.
Unpacking '/var/folders/p7/rg0gbfqs6qd4w87bk78sjskm0000gn/T/macos-xcode16-3.2.7-2348506757'...
Unpack complete. Duration: 1.547443375s.
Restored: /Users/semaphore/.rbenv/versions/3.2.7/.

[19:50 23/02/2025]: Changing 'ruby' to version 3.2.7

[19:50 23/02/2025]: Switch successful.
source .semaphore/ensure-bundle.sh
Updating installed gems
Updating bundler
Fetching bundler-2.6.5.gem
Successfully installed bundler-2.6.5
Gems updated: bundler
Key 'macos-xcode16-3.2.7-136039a4cef09ce4f6a7ab3914a502b6' exists in the cache store.
Bundle for 3.2.7 and Gemfile.lock found in cache
HIT: 'macos-xcode16-3.2.7-136039a4cef09ce4f6a7ab3914a502b6', using key 'macos-xcode16-3.2.7-136039a4cef09ce4f6a7ab3914a502b6'.
Downloading key 'macos-xcode16-3.2.7-136039a4cef09ce4f6a7ab3914a502b6'...
Download complete. Duration: 104.012916ms. Size: 4.1M bytes.
Unpacking '/var/folders/p7/rg0gbfqs6qd4w87bk78sjskm0000gn/T/macos-xcode16-3.2.7-136039a4cef09ce4f6a7ab3914a502b6-2144795388'...
Unpack complete. Duration: 170.660459ms.
Restored: vendor/bundle/.
mkdir -p tmp/test-results/
export TEST_RESULTS_FILE=tmp/test-results/${RUBY_VERSION}.xml
bundle exec rake test
mkdir -p tmp/arm64-darwin23/amalgalite/3.2.7
cd tmp/arm64-darwin23/amalgalite/3.2.7
/Users/semaphore/.rbenv/versions/3.2.7/bin/ruby -I. ../../../../ext/amalgalite/c/extconf.rb
creating Makefile
cd -
cd tmp/arm64-darwin23/amalgalite/3.2.7
/usr/bin/make
compiling ../../../../ext/amalgalite/c/amalgalite.c
compiling ../../../../ext/amalgalite/c/amalgalite_blob.c
compiling ../../../../ext/amalgalite/c/amalgalite_constants.c
compiling ../../../../ext/amalgalite/c/amalgalite_database.c
compiling ../../../../ext/amalgalite/c/amalgalite_statement.c
compiling ../../../../ext/amalgalite/c/sqlite3.c
linking shared-object amalgalite/3.2/amalgalite.bundle
ld: warning: ignoring duplicate libraries: '-lruby.3.2'
cd -
mkdir -p tmp/arm64-darwin23/stage/lib/amalgalite
cp CONTRIBUTING.md tmp/arm64-darwin23/stage/CONTRIBUTING.md
cp HISTORY.md tmp/arm64-darwin23/stage/HISTORY.md
cp LICENSE.txt tmp/arm64-darwin23/stage/LICENSE.txt
cp Manifest.txt tmp/arm64-darwin23/stage/Manifest.txt
cp README.md tmp/arm64-darwin23/stage/README.md
cp TODO.md tmp/arm64-darwin23/stage/TODO.md
cp amalgalite.gemspec tmp/arm64-darwin23/stage/amalgalite.gemspec
mkdir -p tmp/arm64-darwin23/stage/ext/amalgalite/c
cp ext/amalgalite/c/amalgalite.c tmp/arm64-darwin23/stage/ext/amalgalite/c/amalgalite.c
cp ext/amalgalite/c/amalgalite.h tmp/arm64-darwin23/stage/ext/amalgalite/c/amalgalite.h
cp ext/amalgalite/c/amalgalite_blob.c tmp/arm64-darwin23/stage/ext/amalgalite/c/amalgalite_blob.c
cp ext/amalgalite/c/amalgalite_constants.c tmp/arm64-darwin23/stage/ext/amalgalite/c/amalgalite_constants.c
cp ext/amalgalite/c/amalgalite_database.c tmp/arm64-darwin23/stage/ext/amalgalite/c/amalgalite_database.c
cp ext/amalgalite/c/amalgalite_statement.c tmp/arm64-darwin23/stage/ext/amalgalite/c/amalgalite_statement.c
cp ext/amalgalite/c/extconf.rb tmp/arm64-darwin23/stage/ext/amalgalite/c/extconf.rb
cp ext/amalgalite/c/gen_constants.rb tmp/arm64-darwin23/stage/ext/amalgalite/c/gen_constants.rb
cp ext/amalgalite/c/notes.txt tmp/arm64-darwin23/stage/ext/amalgalite/c/notes.txt
cp ext/amalgalite/c/sqlite3.c tmp/arm64-darwin23/stage/ext/amalgalite/c/sqlite3.c
cp ext/amalgalite/c/sqlite3.h tmp/arm64-darwin23/stage/ext/amalgalite/c/sqlite3.h
cp ext/amalgalite/c/sqlite3_options.h tmp/arm64-darwin23/stage/ext/amalgalite/c/sqlite3_options.h
cp ext/amalgalite/c/sqlite3ext.h tmp/arm64-darwin23/stage/ext/amalgalite/c/sqlite3ext.h
cp lib/amalgalite.rb tmp/arm64-darwin23/stage/lib/amalgalite.rb
cp lib/amalgalite/aggregate.rb tmp/arm64-darwin23/stage/lib/amalgalite/aggregate.rb
cp lib/amalgalite/blob.rb tmp/arm64-darwin23/stage/lib/amalgalite/blob.rb
cp lib/amalgalite/boolean.rb tmp/arm64-darwin23/stage/lib/amalgalite/boolean.rb
cp lib/amalgalite/busy_timeout.rb tmp/arm64-darwin23/stage/lib/amalgalite/busy_timeout.rb
cp lib/amalgalite/column.rb tmp/arm64-darwin23/stage/lib/amalgalite/column.rb
cp lib/amalgalite/csv_table_importer.rb tmp/arm64-darwin23/stage/lib/amalgalite/csv_table_importer.rb
cp lib/amalgalite/database.rb tmp/arm64-darwin23/stage/lib/amalgalite/database.rb
cp lib/amalgalite/function.rb tmp/arm64-darwin23/stage/lib/amalgalite/function.rb
cp lib/amalgalite/index.rb tmp/arm64-darwin23/stage/lib/amalgalite/index.rb
cp lib/amalgalite/memory_database.rb tmp/arm64-darwin23/stage/lib/amalgalite/memory_database.rb
cp lib/amalgalite/paths.rb tmp/arm64-darwin23/stage/lib/amalgalite/paths.rb
cp lib/amalgalite/profile_tap.rb tmp/arm64-darwin23/stage/lib/amalgalite/profile_tap.rb
cp lib/amalgalite/progress_handler.rb tmp/arm64-darwin23/stage/lib/amalgalite/progress_handler.rb
cp lib/amalgalite/result.rb tmp/arm64-darwin23/stage/lib/amalgalite/result.rb
mkdir -p tmp/arm64-darwin23/stage/lib/amalgalite/result
cp lib/amalgalite/result/row.rb tmp/arm64-darwin23/stage/lib/amalgalite/result/row.rb
cp lib/amalgalite/schema.rb tmp/arm64-darwin23/stage/lib/amalgalite/schema.rb
cp lib/amalgalite/sqlite3.rb tmp/arm64-darwin23/stage/lib/amalgalite/sqlite3.rb
mkdir -p tmp/arm64-darwin23/stage/lib/amalgalite/sqlite3
cp lib/amalgalite/sqlite3/constants.rb tmp/arm64-darwin23/stage/lib/amalgalite/sqlite3/constants.rb
mkdir -p tmp/arm64-darwin23/stage/lib/amalgalite/sqlite3/database
cp lib/amalgalite/sqlite3/database/function.rb tmp/arm64-darwin23/stage/lib/amalgalite/sqlite3/database/function.rb
cp lib/amalgalite/sqlite3/database/status.rb tmp/arm64-darwin23/stage/lib/amalgalite/sqlite3/database/status.rb
cp lib/amalgalite/sqlite3/status.rb tmp/arm64-darwin23/stage/lib/amalgalite/sqlite3/status.rb
cp lib/amalgalite/sqlite3/version.rb tmp/arm64-darwin23/stage/lib/amalgalite/sqlite3/version.rb
cp lib/amalgalite/statement.rb tmp/arm64-darwin23/stage/lib/amalgalite/statement.rb
cp lib/amalgalite/table.rb tmp/arm64-darwin23/stage/lib/amalgalite/table.rb
cp lib/amalgalite/taps.rb tmp/arm64-darwin23/stage/lib/amalgalite/taps.rb
mkdir -p tmp/arm64-darwin23/stage/lib/amalgalite/taps
cp lib/amalgalite/taps/console.rb tmp/arm64-darwin23/stage/lib/amalgalite/taps/console.rb
cp lib/amalgalite/taps/io.rb tmp/arm64-darwin23/stage/lib/amalgalite/taps/io.rb
cp lib/amalgalite/trace_tap.rb tmp/arm64-darwin23/stage/lib/amalgalite/trace_tap.rb
cp lib/amalgalite/type_map.rb tmp/arm64-darwin23/stage/lib/amalgalite/type_map.rb
mkdir -p tmp/arm64-darwin23/stage/lib/amalgalite/type_maps
cp lib/amalgalite/type_maps/default_map.rb tmp/arm64-darwin23/stage/lib/amalgalite/type_maps/default_map.rb
cp lib/amalgalite/type_maps/storage_map.rb tmp/arm64-darwin23/stage/lib/amalgalite/type_maps/storage_map.rb
cp lib/amalgalite/type_maps/text_map.rb tmp/arm64-darwin23/stage/lib/amalgalite/type_maps/text_map.rb
cp lib/amalgalite/version.rb tmp/arm64-darwin23/stage/lib/amalgalite/version.rb
cp lib/amalgalite/view.rb tmp/arm64-darwin23/stage/lib/amalgalite/view.rb
/usr/bin/make install sitearchdir=../../../../lib/amalgalite sitelibdir=../../../../lib/amalgalite target_prefix=
/opt/homebrew/bin/ginstall -c -m 0755 amalgalite.bundle ../../../../lib/amalgalite
cp tmp/arm64-darwin23/amalgalite/3.2.7/amalgalite.bundle tmp/arm64-darwin23/stage/lib/amalgalite/amalgalite.bundle
/Users/semaphore/.rbenv/versions/3.2.7/bin/ruby -w -I/Users/semaphore/amalgalite/vendor/bundle/ruby/3.2.0/gems/rspec-core-3.13.2/lib:/Users/semaphore/amalgalite/vendor/bundle/ruby/3.2.0/gems/rspec-support-3.13.1/lib /Users/semaphore/amalgalite/vendor/bundle/ruby/3.2.0/gems/rspec-core-3.13.2/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb --color --format documentation --format RspecJunitFormatter --out tmp/test-results/3.2.7.xml
/Users/semaphore/amalgalite/spec/default_map_spec.rb:80: warning: assigned but unused variable - x

Aggregate SQL Functions
  must have a finalize method implemented
  can define a custom SQL aggregate as a class with N params
  can remove a custom SQL aggregate by class
  can remove a custom SQL aggregate by arity
  can remove all custom SQL aggregates with the same name
  does not allow mixing of arbitrary and mandatory arguments to an SQL function
  does not allow outrageous arity
  does not allow registering a function which does not match the defined name
  handles an error being thrown during the step function
  handles an error being thrown during the finalize function
  handles an error being thrown during initialization in the C extension

Amalgalite::Blob
  raises an error if initialized incorrectly
  inserts a blob from a file
    and retrieves the data as a single value
    and retrieves the data using incremental IO
    writes the data to a file
  inserts a blob from a string
    and retrieves the data as a single value
    and retrieves the data using incremental IO
    writes the data to a file
  inserts a blob from a io
    and retrieves the data as a single value
    and retrieves the data using incremental IO
    writes the data to a file

Amalgalite::Boolean
  converts True to true
  converts Y to true
  converts Yes to true
  converts T to true
  converts 1 to true
  converts False to false
  converts F to false
  converts f to false
  converts No to false
  converts n to false
  converts 0 to false
  converts other to nil
  converts things to nil
  converts nil to nil

Amalgalite::Database
  can create a new database
  creates a new UTF-8 database (need exec to check pragma encoding)
  creates a new UTF-16 database (need exec to check pragma encoding) (PENDING: Not yet implemented)
  raises an error if the file does not exist and the database is opened with a non-create mode
  raises an error if an invalid mode is used
  can be in autocommit mode, and is by default
  reports false for autocommit? when inside a transaction
  prepares a statment
  raises an error on invalid syntax when preparing a bad sql statement
  closes normally
  returns the id of the last inserted row
  is in autocommit mode by default
  report the number of rows changed with an insert
  reports the number of rows deleted
  can immediately execute an sql statement
  can execute a batch of commands
  returns an empty array when there are no results
  traces the execution of code
  raises an exception if the wrong type of object is used for tracing
  profiles the execution of code
  #execute yields each row when called with a block
  #pragma yields each row when called with a block
  can use something that responds to 'write' as a tap
  can clear all registered taps
  allows nested transactions even if SQLite under the covers does not
  returns the result of the transaction when a block is yielded
  returns the result of the deferred_transaction when a block is yielded
  returns the result of the immediate_transaction when a block is yielded
  returns the result of the exclusive_transaction when a block is yielded
  #reload_schema!
  can rollback a transaction
  rolls back if an exception happens during a transaction block
  commits if an exception happens during a transaction block but is rescued within the block
  does not reraise an exception that exits before the transaction starts
  can interrupt another thread that is also running in this database
  savepoints are considered 'in_transaction'
  releases a savepoint
  rolls back a savepoint
  rolling back the outermost savepoint is still 'in_transaction'
  can escape quoted strings
  can quote and escape single quoted strings
  can escape a symbol
  can quote a symbol
  returns the first row of results as a convenience
  returns and empty row if there are no results for the first row
  returns nil if there is no value in the first value
  returns the first value of results as a conveinience
  replicates a database to memory
  replicates a database to a database file
  raises an error if it is given an invalid location to replicate to
  imports batch statements
  #define_function
    does not allow mixing of arbitrary and mandatory arguments to an SQL function
    does not allow outrageous arity
  #remove_function
    unregisters a single function by name and arity
    unregisters a function by instances
    unregisters all functions with the same name

Amalgalite::TypeMaps::DefaultMap
  #bind_type_of
    Float is bound to DataType::FLOAT
    Integer is bound to DataType::INTGER
    nil is bound to DataType::NULL
    ::Amalgalite::Blob is bound to DataType::BLOB
    everything else is bound to DataType::TEXT
  #result_value_of
    Numeric's are returned
    Nil is returned
    Date is returned for declared types of 'date'
    Time is returned for declared types of 'time'
    Float is returned for declared types of 'double'
    Float is returned for declared types of 'float'
    Integer is returned for declared types of 'int'
    boolean is returned for declared types of 'bool'
    Blob is returned for declared types of 'blob'
    String is returned for delcared types of 'string'
    raises and error if an unknown sql type is returned
    raises and error if an ruby class is attempted to be mapped

Scalar SQL Functions
  can define a custom SQL function as a block with 0 params
  has a signature
  can define a custom SQL function as a lambda with 2 param
  can define a custom SQL function as a class with N params
  returns the appropriate class Integer
  returns the appropriate class Integer
  returns the appropriate class NilClass
  returns the appropriate class String
  returns the appropriate class Integer
  returns the appropriate class Float
  does not allow outrageous arity
  raises an error if the function returns a complex Ruby object
  an error raised during the sql function is handled correctly

Integration specifications
  - invalid queries
    raises error with an invalid syntax
    raises error with invalid table
    raises error with invalid column
  - default types conversion
    converts a ruby obj (2025-02-23T19:50:45+00:00) of DateTime to an SQL type of datetime and back again
    converts a ruby obj (2025-02-23 19:50:45 +0000) of Time to an SQL type of timestamp and back again
    converts a ruby obj (2025-02-23) of Date to an SQL type of date and back again
    converts a ruby obj (42) of Integer to an SQL type of integer and back again
    converts a ruby obj (3.14) of Float to an SQL type of double and back again
    converts a ruby obj (foobarbaz) of String to an SQL type of varchar and back again
    converts a ruby obj (true) of TrueClass to an SQL type of boolean and back again
    converts a ruby obj () of NilClass to an SQL type of varchar(2) and back again
  - storage type conversion
    converts a ruby obj (2025-02-23T19:50:45+00:00) of class DateTime to an SQL type of datetime and back to a storage type
    converts a ruby obj (2025-02-23 19:50:45 +0000) of class Time to an SQL type of timestamp and back to a storage type
    converts a ruby obj (2025-02-23) of class Date to an SQL type of date and back to a storage type
    converts a ruby obj (42) of class Integer to an SQL type of integer and back to a storage type
    converts a ruby obj (3.14) of class Float to an SQL type of double and back to a storage type
    converts a ruby obj (foobarbaz) of class String to an SQL type of varchar and back to a storage type
    converts a ruby obj (true) of class TrueClass to an SQL type of boolean and back to a storage type
    converts a ruby obj () of class NilClass to an SQL type of varchar(2) and back to a storage type
  - text type conversion
    converts a ruby obj (2025-02-23T19:50:45+00:00) of class DateTime to an SQL type of datetime and back to text
    converts a ruby obj (2025-02-23 19:50:45 +0000) of class Time to an SQL type of timestamp and back to text
    converts a ruby obj (2025-02-23) of class Date to an SQL type of date and back to text
    converts a ruby obj (42) of class Integer to an SQL type of integer and back to text
    converts a ruby obj (3.14) of class Float to an SQL type of double and back to text
    converts a ruby obj (foobarbaz) of class String to an SQL type of varchar and back to text
    converts a ruby obj (true) of class TrueClass to an SQL type of boolean and back to text
    converts a ruby obj () of class NilClass to an SQL type of varchar(2) and back to text

Amalgalite handles the JSON extension
  can parse a `json_each` call
  can return a proper json column

Amalgalite::Paths
  root dir should be correct
  config_path should be correct
  data path should be correct
  lib path should be correct
  ext path should be correct

Progress Handlers
  raises NotImplemented if #call is not overwritten
  can be registered as block
  can be registered as lambda
  can be registered as a class
  behaves like #interrupt! if returning a false value
  cannot register a block with the wrong arity
  can remove a progress handler

SQLite3 R*Tree extension
  has 2 rows
  queries normally
  does a 'contained within' query
  does an 'overlapping' query

Amalgalite::Schema
  loads the schema of a database
  loads the views in the database
  removes quotes from around default values in columns
  loads the tables and columns
  knows what the primary key of a table is
  knows the primary key of a table even without an explicity unique index
  knows the primary key of a temporary table
  knows what the primary key of a table is when it is a multiple column primary key
  loads the indexes
  knows the schema is dirty when a table is created
  knows the schema is dirty when a table is dropped
  knows if a temporary table exists
  sees that temporary tables shadow real tables

Amalgalite::SQLite3::Constants
  has Open constants
  ResultCode
    has constants
    can return the constant from a number
    can return the number from a name
  DataType
    has constants
    can return the constant from a number
    can return the number from a name
  Config
    has constants
    can return the constant from a number
    can return the number from a name
  Status
    has constants
    can return the constant from a number
    can return the number from a name
  DBStatus
    has constants
    can return the constant from a number
    can return the number from a name
  StatementStatus
    has constants
    can return the constant from a number
    can return the number from a name

Amalgalite::SQLite3::Database::Status
  knows how much lookaside memory it has used
  can reset the highwater value

Amalgalite::SQLite3::Status
  knows how much memory it has used
  can reset the highwater value

Amalgalite::SQLite3::Version
  should have the sqlite3 version
  should have the sqlite3 source id

Amalgalite::SQLite3
  is threadsafe is ruby is compiled with pthread support, in this case that is (false)
  knows if an SQL statement is complete
  knows if an SQL statement is not complete
  can produce random data
  has nil for the default sqlite temporary directory
  can set the temporary directory
  can escape quoted strings
  can escape a symble into a string
  can quote and escape single quoted strings
  can quote and escape symbols

Amalgalite::Statement
  a statement has a copy of the sql it was prepared with
  steps through results
  can prepare a statement without a block
  knows how many parameters are in the statement
  raises an error if there are not enough parameters are passed in a statement
  can run a query with a named parameter
  it can execute a query with a named parameter and yield the rows
  can execute the same prepared statement multiple times
  expands an array when binding parameters
  binds a integer variable correctly
  raises and error if an invaliding binding is attempted
  can reset the statement to the state it was before executing
  can execute a single sql command and say if there is remaining sql to execute
  can select the rowid from the table
  shows that the rowid column is rowid column
  has index based access to the result set

Amalgalite::TypeMaps::StorageMap
  #bind_type_of
    Float is bound to DataType::FLOAT
    Integer is bound to DataType::INTGER
    nil is bound to DataType::NULL
    ::Amalgalite::Blob is bound to DataType::BLOB
    everything else is bound to DataType::TEXT
  #result_value_of
    returns the original object for everything passed in

Amalgalite::TraceTap
  wraps up an object and delegates the 'trace' method to a method on that object
  raises an error if an the wrapped object does not respond to the indicated method

Amalgalite::ProfileTap
  raises an error if an the wrapped object does not respond to the indicated method

Amalgalite::Taps::StringIO
  dumps profile information
  has a stdout tap
  has a stderr tap

Amalgalite::ProfileSampler
  aggregates samples

Amalgalite::TypeMaps::TextMap
  #bind_type_of
    returnes text for everything
  #result_value_of
    returns the string value of the object for everything passed in

Amalgalite::TypeMap
  #bind_type_of raises NotImplemented error
  #result_value_of raises NotImplemented error

Amalgalite::VERSION
  should have a version string

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) Amalgalite::Database creates a new UTF-16 database (need exec to check pragma encoding)
     # Not yet implemented
     # ./spec/database_spec.rb:25


Finished in 0.7068 seconds (files took 0.07288 seconds to load)
248 examples, 0 failures, 1 pending

Exporting environment variables
Exporting SEMAPHORE_JOB_RESULT