Exporting environment variables Exporting CI Exporting DISPLAY Exporting PAGER 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 SEMAPHORE_YAML_FILE_PATH Exporting SSH_PRIVATE_KEY_PATH Exporting TERM Injecting Files Injecting /home/semaphore/.ssh/semaphore_cache_key with file mode 0600 Injecting /home/semaphore/.ssh/id_rsa with file mode 0600 Running the pre-job hook configured in the agent Running: source /opt/semaphoreci/prejob/pre_job.sh Warning: The agent is configured to fail the job if the pre-job hook fails. Installing toolbox in pre-job-hook Toolbox download URL: http://packages.semaphoreci.com/toolbox/releases/download/v1.23.0/linux.tar Tar file: linux.tar Attempt 5 toolbox/ toolbox/sem-dockerize toolbox/toolbox toolbox/retry toolbox/enetwork toolbox/artifact toolbox/install-toolbox toolbox/system-metrics-collector toolbox/libcheckout toolbox/cache toolbox/when_otp_24 toolbox/spc toolbox/libchecksum toolbox/when_otp_26 toolbox/when_otp_25 toolbox/install-package toolbox/README.md toolbox/sem-context toolbox/test-results toolbox/sem-version toolbox/ssh-session-cli toolbox/sem-service toolbox/sem-install toolbox/sem-service-check-params toolbox/Dockerfile.dev 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 Installing the install-package for linux install-package installed Installing the SPC CLI spc installed Installing the when CLI when installed Installing the enetwork CLI enetwork installed Starting to collect System Metrics in /tmp/system-metrics Starting virtual X frame buffer: Xvfb. Toolbox installed Starting ssh-agent Agent pid 2198 ssh-agent started Connecting to cache # 116.202.32.43:29920 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11 # 116.202.32.43:29920 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11 # 116.202.32.43:29920 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11 # 116.202.32.43:29920 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11 # 116.202.32.43:29920 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11 Identity added: /home/semaphore/.ssh/semaphore_cache_key (/home/semaphore/.ssh/semaphore_cache_key) export GIT_LFS_SKIP_SMUDGE=1 checkout Performing shallow clone with depth: 50 Cloning into 'calico'... Warning: Permanently added 'github.com,140.82.121.4' (ECDSA) to the list of known hosts. remote: Enumerating objects: 6824, done. remote: Counting objects: 0% (1/6824) remote: Counting objects: 1% (69/6824) remote: Counting objects: 2% (137/6824) remote: Counting objects: 3% (205/6824) remote: Counting objects: 4% (273/6824) remote: Counting objects: 5% (342/6824) remote: Counting objects: 6% (410/6824) remote: Counting objects: 7% (478/6824) remote: Counting objects: 8% (546/6824) remote: Counting objects: 9% (615/6824) remote: Counting objects: 10% (683/6824) remote: Counting objects: 11% (751/6824) remote: Counting objects: 12% (819/6824) remote: Counting objects: 13% (888/6824) remote: Counting objects: 14% (956/6824) remote: Counting objects: 15% (1024/6824) remote: Counting objects: 16% (1092/6824) remote: Counting objects: 17% (1161/6824) remote: Counting objects: 18% (1229/6824) remote: Counting objects: 19% (1297/6824) remote: Counting objects: 20% (1365/6824) remote: Counting objects: 21% (1434/6824) remote: Counting objects: 22% (1502/6824) remote: Counting objects: 23% (1570/6824) remote: Counting objects: 24% (1638/6824) remote: Counting objects: 25% (1706/6824) remote: Counting objects: 26% (1775/6824) remote: Counting objects: 27% (1843/6824) remote: Counting objects: 28% (1911/6824) remote: Counting objects: 29% (1979/6824) remote: Counting objects: 30% (2048/6824) remote: Counting objects: 31% (2116/6824) remote: Counting objects: 32% (2184/6824) remote: Counting objects: 33% (2252/6824) remote: Counting objects: 34% (2321/6824) remote: Counting objects: 35% (2389/6824) remote: Counting objects: 36% (2457/6824) remote: Counting objects: 37% (2525/6824) remote: Counting objects: 38% (2594/6824) remote: Counting objects: 39% (2662/6824) remote: Counting objects: 40% (2730/6824) remote: Counting objects: 41% (2798/6824) remote: Counting objects: 42% (2867/6824) remote: Counting objects: 43% (2935/6824) remote: Counting objects: 44% (3003/6824) remote: Counting objects: 45% (3071/6824) remote: Counting objects: 46% (3140/6824) remote: Counting objects: 47% (3208/6824) remote: Counting objects: 48% (3276/6824) remote: Counting objects: 49% (3344/6824) remote: Counting objects: 50% (3412/6824) remote: Counting objects: 51% (3481/6824) remote: Counting objects: 52% (3549/6824) remote: Counting objects: 53% (3617/6824) remote: Counting objects: 54% (3685/6824) remote: Counting objects: 55% (3754/6824) remote: Counting objects: 56% (3822/6824) remote: Counting objects: 57% (3890/6824) remote: Counting objects: 58% (3958/6824) remote: Counting objects: 59% (4027/6824) remote: Counting objects: 60% (4095/6824) remote: Counting objects: 61% (4163/6824) remote: Counting objects: 62% (4231/6824) remote: Counting objects: 63% (4300/6824) remote: Counting objects: 64% (4368/6824) remote: Counting objects: 65% (4436/6824) remote: Counting objects: 66% (4504/6824) remote: Counting objects: 67% (4573/6824) remote: Counting objects: 68% (4641/6824) remote: Counting objects: 69% (4709/6824) remote: Counting objects: 70% (4777/6824) remote: Counting objects: 71% (4846/6824) remote: Counting objects: 72% (4914/6824) remote: Counting objects: 73% (4982/6824) remote: Counting objects: 74% (5050/6824) remote: Counting objects: 75% (5118/6824) remote: Counting objects: 76% (5187/6824) remote: Counting objects: 77% (5255/6824) remote: Counting objects: 78% (5323/6824) remote: Counting objects: 79% (5391/6824) remote: Counting objects: 80% (5460/6824) remote: Counting objects: 81% (5528/6824) remote: Counting objects: 82% (5596/6824) remote: Counting objects: 83% (5664/6824) remote: Counting objects: 84% (5733/6824) remote: Counting objects: 85% (5801/6824) remote: Counting objects: 86% (5869/6824) remote: Counting objects: 87% (5937/6824) remote: Counting objects: 88% (6006/6824) remote: Counting objects: 89% (6074/6824) remote: Counting objects: 90% (6142/6824) remote: Counting objects: 91% (6210/6824) remote: Counting objects: 92% (6279/6824) remote: Counting objects: 93% (6347/6824) remote: Counting objects: 94% (6415/6824) remote: Counting objects: 95% (6483/6824) remote: Counting objects: 96% (6552/6824) remote: Counting objects: 97% (6620/6824) remote: Counting objects: 98% (6688/6824) remote: Counting objects: 99% (6756/6824) remote: Counting objects: 100% (6824/6824) remote: Counting objects: 100% (6824/6824), done. remote: Compressing objects: 0% (1/4735) remote: Compressing objects: 1% (48/4735) remote: Compressing objects: 2% (95/4735) remote: Compressing objects: 3% (143/4735) remote: Compressing objects: 4% (190/4735) remote: Compressing objects: 5% (237/4735) remote: Compressing objects: 6% (285/4735) remote: Compressing objects: 7% (332/4735) remote: Compressing objects: 8% (379/4735) remote: Compressing objects: 9% (427/4735) remote: Compressing objects: 10% (474/4735) remote: Compressing objects: 11% (521/4735) remote: Compressing objects: 12% (569/4735) remote: Compressing objects: 13% (616/4735) remote: Compressing objects: 14% (663/4735) remote: Compressing objects: 15% (711/4735) remote: Compressing objects: 16% (758/4735) remote: Compressing objects: 17% (805/4735) remote: Compressing objects: 18% (853/4735) remote: Compressing objects: 19% (900/4735) remote: Compressing objects: 20% (947/4735) remote: Compressing objects: 21% (995/4735) remote: Compressing objects: 22% (1042/4735) remote: Compressing objects: 23% (1090/4735) remote: Compressing objects: 24% (1137/4735) remote: Compressing objects: 25% (1184/4735) remote: Compressing objects: 26% (1232/4735) remote: Compressing objects: 27% (1279/4735) remote: Compressing objects: 28% (1326/4735) remote: Compressing objects: 29% (1374/4735) remote: Compressing objects: 30% (1421/4735) remote: Compressing objects: 31% (1468/4735) remote: Compressing objects: 32% (1516/4735) remote: Compressing objects: 33% (1563/4735) remote: Compressing objects: 34% (1610/4735) remote: Compressing objects: 35% (1658/4735) remote: Compressing objects: 36% (1705/4735) remote: Compressing objects: 37% (1752/4735) remote: Compressing objects: 38% (1800/4735) remote: Compressing objects: 39% (1847/4735) remote: Compressing objects: 40% (1894/4735) remote: Compressing objects: 41% (1942/4735) remote: Compressing objects: 42% (1989/4735) remote: Compressing objects: 43% (2037/4735) remote: Compressing objects: 44% (2084/4735) remote: Compressing objects: 45% (2131/4735) remote: Compressing objects: 46% (2179/4735) remote: Compressing objects: 47% (2226/4735) remote: Compressing objects: 48% (2273/4735) remote: Compressing objects: 49% (2321/4735) remote: Compressing objects: 50% (2368/4735) remote: Compressing objects: 51% (2415/4735) remote: Compressing objects: 52% (2463/4735) remote: Compressing objects: 53% (2510/4735) remote: Compressing objects: 54% (2557/4735) remote: Compressing objects: 55% (2605/4735) remote: Compressing objects: 56% (2652/4735) remote: Compressing objects: 57% (2699/4735) remote: Compressing objects: 58% (2747/4735) remote: Compressing objects: 59% (2794/4735) remote: Compressing objects: 60% (2841/4735) remote: Compressing objects: 61% (2889/4735) remote: Compressing objects: 62% (2936/4735) remote: Compressing objects: 63% (2984/4735) remote: Compressing objects: 64% (3031/4735) remote: Compressing objects: 65% (3078/4735) remote: Compressing objects: 66% (3126/4735) remote: Compressing objects: 67% (3173/4735) remote: Compressing objects: 68% (3220/4735) remote: Compressing objects: 69% (3268/4735) remote: Compressing objects: 70% (3315/4735) remote: Compressing objects: 71% (3362/4735) remote: Compressing objects: 72% (3410/4735) remote: Compressing objects: 73% (3457/4735) remote: Compressing objects: 74% (3504/4735) remote: Compressing objects: 75% (3552/4735) remote: Compressing objects: 76% (3599/4735) remote: Compressing objects: 77% (3646/4735) remote: Compressing objects: 78% (3694/4735) remote: Compressing objects: 79% (3741/4735) remote: Compressing objects: 80% (3788/4735) remote: Compressing objects: 81% (3836/4735) remote: Compressing objects: 82% (3883/4735) remote: Compressing objects: 83% (3931/4735) remote: Compressing objects: 84% (3978/4735) remote: Compressing objects: 85% (4025/4735) remote: Compressing objects: 86% (4073/4735) remote: Compressing objects: 87% (4120/4735) remote: Compressing objects: 88% (4167/4735) remote: Compressing objects: 89% (4215/4735) remote: Compressing objects: 90% (4262/4735) remote: Compressing objects: 91% (4309/4735) remote: Compressing objects: 92% (4357/4735) remote: Compressing objects: 93% (4404/4735) remote: Compressing objects: 94% (4451/4735) remote: Compressing objects: 95% (4499/4735) remote: Compressing objects: 96% (4546/4735) remote: Compressing objects: 97% (4593/4735) remote: Compressing objects: 98% (4641/4735) remote: Compressing objects: 99% (4688/4735) remote: Compressing objects: 100% (4735/4735) remote: Compressing objects: 100% (4735/4735), done. Receiving objects: 0% (1/6824) Receiving objects: 1% (69/6824) Receiving objects: 2% (137/6824) Receiving objects: 3% (205/6824) Receiving objects: 4% (273/6824) Receiving objects: 5% (342/6824) Receiving objects: 6% (410/6824) Receiving objects: 7% (478/6824) Receiving objects: 8% (546/6824) Receiving objects: 9% (615/6824) Receiving objects: 10% (683/6824) Receiving objects: 11% (751/6824) Receiving objects: 12% (819/6824) Receiving objects: 13% (888/6824) Receiving objects: 14% (956/6824) Receiving objects: 15% (1024/6824) Receiving objects: 16% (1092/6824) Receiving objects: 17% (1161/6824) Receiving objects: 18% (1229/6824) Receiving objects: 19% (1297/6824) Receiving objects: 20% (1365/6824) Receiving objects: 21% (1434/6824) Receiving objects: 22% (1502/6824) Receiving objects: 23% (1570/6824) Receiving objects: 24% (1638/6824) Receiving objects: 25% (1706/6824) Receiving objects: 26% (1775/6824) Receiving objects: 27% (1843/6824) Receiving objects: 28% (1911/6824) Receiving objects: 29% (1979/6824) Receiving objects: 30% (2048/6824) Receiving objects: 31% (2116/6824) Receiving objects: 32% (2184/6824) Receiving objects: 33% (2252/6824) Receiving objects: 34% (2321/6824) Receiving objects: 35% (2389/6824) Receiving objects: 36% (2457/6824) Receiving objects: 37% (2525/6824) Receiving objects: 38% (2594/6824) Receiving objects: 39% (2662/6824) Receiving objects: 40% (2730/6824) Receiving objects: 41% (2798/6824) Receiving objects: 42% (2867/6824) Receiving objects: 43% (2935/6824) Receiving objects: 44% (3003/6824) Receiving objects: 45% (3071/6824) Receiving objects: 46% (3140/6824) Receiving objects: 47% (3208/6824) Receiving objects: 48% (3276/6824) Receiving objects: 49% (3344/6824) Receiving objects: 50% (3412/6824) Receiving objects: 51% (3481/6824) Receiving objects: 52% (3549/6824) Receiving objects: 53% (3617/6824) Receiving objects: 54% (3685/6824) Receiving objects: 55% (3754/6824) Receiving objects: 56% (3822/6824) Receiving objects: 57% (3890/6824) Receiving objects: 58% (3958/6824) Receiving objects: 59% (4027/6824) Receiving objects: 60% (4095/6824) Receiving objects: 61% (4163/6824) Receiving objects: 62% (4231/6824) Receiving objects: 63% (4300/6824) Receiving objects: 64% (4368/6824) Receiving objects: 65% (4436/6824) Receiving objects: 66% (4504/6824) Receiving objects: 67% (4573/6824) Receiving objects: 68% (4641/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 69% (4709/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 70% (4777/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 71% (4846/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 72% (4914/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 73% (4982/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 74% (5050/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 75% (5118/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 76% (5187/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 77% (5255/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 78% (5323/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 79% (5391/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 80% (5460/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 81% (5528/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 82% (5596/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 83% (5664/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 84% (5733/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 85% (5801/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 86% (5869/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 87% (5937/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 88% (6006/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 89% (6074/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 90% (6142/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 91% (6210/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 92% (6279/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 93% (6347/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 94% (6415/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 95% (6483/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 96% (6552/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 97% (6620/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 98% (6688/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 99% (6756/6824), 6.14 MiB | 12.27 MiB/s remote: Total 6824 (delta 2847), reused 3910 (delta 1516), pack-reused 0 (from 0) Receiving objects: 100% (6824/6824), 6.14 MiB | 12.27 MiB/s Receiving objects: 100% (6824/6824), 6.87 MiB | 12.21 MiB/s, done. Resolving deltas: 0% (0/2847) Resolving deltas: 1% (29/2847) Resolving deltas: 2% (57/2847) Resolving deltas: 3% (86/2847) Resolving deltas: 4% (114/2847) Resolving deltas: 5% (143/2847) Resolving deltas: 6% (172/2847) Resolving deltas: 7% (200/2847) Resolving deltas: 8% (228/2847) Resolving deltas: 9% (257/2847) Resolving deltas: 10% (285/2847) Resolving deltas: 11% (314/2847) Resolving deltas: 12% (342/2847) Resolving deltas: 13% (371/2847) Resolving deltas: 14% (399/2847) Resolving deltas: 15% (428/2847) Resolving deltas: 16% (456/2847) Resolving deltas: 17% (484/2847) Resolving deltas: 18% (513/2847) Resolving deltas: 19% (541/2847) Resolving deltas: 20% (570/2847) Resolving deltas: 21% (598/2847) Resolving deltas: 22% (627/2847) Resolving deltas: 23% (655/2847) Resolving deltas: 24% (684/2847) Resolving deltas: 25% (712/2847) Resolving deltas: 26% (741/2847) Resolving deltas: 27% (769/2847) Resolving deltas: 28% (798/2847) Resolving deltas: 29% (826/2847) Resolving deltas: 30% (855/2847) Resolving deltas: 31% (883/2847) Resolving deltas: 32% (912/2847) Resolving deltas: 33% (940/2847) Resolving deltas: 34% (968/2847) Resolving deltas: 35% (997/2847) Resolving deltas: 36% (1025/2847) Resolving deltas: 37% (1054/2847) Resolving deltas: 38% (1082/2847) Resolving deltas: 39% (1111/2847) Resolving deltas: 40% (1139/2847) Resolving deltas: 41% (1168/2847) Resolving deltas: 42% (1196/2847) Resolving deltas: 43% (1225/2847) Resolving deltas: 44% (1253/2847) Resolving deltas: 45% (1282/2847) Resolving deltas: 46% (1310/2847) Resolving deltas: 47% (1339/2847) Resolving deltas: 48% (1367/2847) Resolving deltas: 49% (1396/2847) Resolving deltas: 50% (1424/2847) Resolving deltas: 51% (1452/2847) Resolving deltas: 52% (1481/2847) Resolving deltas: 53% (1509/2847) Resolving deltas: 54% (1538/2847) Resolving deltas: 55% (1566/2847) Resolving deltas: 56% (1596/2847) Resolving deltas: 57% (1623/2847) Resolving deltas: 58% (1653/2847) Resolving deltas: 59% (1680/2847) Resolving deltas: 60% (1709/2847) Resolving deltas: 61% (1737/2847) Resolving deltas: 62% (1766/2847) Resolving deltas: 63% (1794/2847) Resolving deltas: 64% (1823/2847) Resolving deltas: 65% (1851/2847) Resolving deltas: 66% (1880/2847) Resolving deltas: 67% (1908/2847) Resolving deltas: 68% (1936/2847) Resolving deltas: 69% (1965/2847) Resolving deltas: 70% (1993/2847) Resolving deltas: 71% (2022/2847) Resolving deltas: 72% (2050/2847) Resolving deltas: 73% (2079/2847) Resolving deltas: 74% (2107/2847) Resolving deltas: 75% (2136/2847) Resolving deltas: 76% (2164/2847) Resolving deltas: 77% (2193/2847) Resolving deltas: 78% (2221/2847) Resolving deltas: 79% (2250/2847) Resolving deltas: 80% (2278/2847) Resolving deltas: 81% (2307/2847) Resolving deltas: 82% (2335/2847) Resolving deltas: 83% (2364/2847) Resolving deltas: 84% (2392/2847) Resolving deltas: 85% (2420/2847) Resolving deltas: 86% (2449/2847) Resolving deltas: 87% (2477/2847) Resolving deltas: 88% (2506/2847) Resolving deltas: 89% (2534/2847) Resolving deltas: 90% (2563/2847) Resolving deltas: 91% (2591/2847) Resolving deltas: 92% (2620/2847) Resolving deltas: 93% (2648/2847) Resolving deltas: 94% (2677/2847) Resolving deltas: 95% (2705/2847) Resolving deltas: 96% (2734/2847) Resolving deltas: 97% (2762/2847) Resolving deltas: 98% (2791/2847) Resolving deltas: 99% (2819/2847) Resolving deltas: 100% (2847/2847) Resolving deltas: 100% (2847/2847), done. HEAD is now at 6cf6836 [release-v3.30] Auto pick #10102: Specify min TLS version 1.2 for Goldmane (#10106) export INPUT_FILE="$SEMAPHORE_YAML_FILE_PATH" export OUTPUT_FILE="${SEMAPHORE_YAML_FILE_PATH}.output.yml" export LOGS_FILE="${SEMAPHORE_YAML_FILE_PATH}.logs.jsonl" cat $INPUT_FILE # !! WARNING, DO NOT EDIT !! This file is generated from semaphore.yml.tpl. # To update, modify the template and then run 'make gen-semaphore-yaml'. version: v1.0 name: Calico execution_time_limit: hours: 4 agent: machine: type: f1-standard-2 os_image: ubuntu2204 auto_cancel: running: when: "branch != 'master'" queued: when: "branch != 'master'" global_job_config: secrets: - name: docker-hub prologue: commands: - checkout - export REPO_DIR="$(pwd)" - mkdir artifacts # Semaphore is doing shallow clone on a commit without tags. # unshallow it for GIT_VERSION:=$(shell git describe --tags --dirty --always) - retry git fetch --unshallow - echo $DOCKERHUB_PASSWORD | docker login --username "$DOCKERHUB_USERNAME" --password-stdin epilogue: commands: - cd "$REPO_DIR" - .semaphore/publish-artifacts promotions: # Manual promotion for publishing a hashrelease. - name: Publish hashrelease pipeline_file: release/hashrelease.yml # Manual promotion for publishing a release. - name: Publish official release pipeline_file: release/release.yml # Cleanup after ourselves if we are stopped-short. - name: Cleanup pipeline_file: cleanup.yml auto_promote: when: "result = 'stopped'" # Rerun failed jobs - name: Rerun failed jobs pipeline_file: rerun_failed_jobs.yml # Have separate promotions for publishing images so we can re-run # them individually if they fail, and so we can run them in parallel. - name: Push apiserver images pipeline_file: push-images/apiserver.yml auto_promote: when: "branch =~ 'master|release-.*'" - name: Push ALP images pipeline_file: push-images/alp.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push calicoctl images pipeline_file: push-images/calicoctl.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push calico-node images pipeline_file: push-images/node.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push mock calico-node images pipeline_file: push-images/mock-node.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push cni-plugin images pipeline_file: push-images/cni-plugin.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push key-cert-provisioner images pipeline_file: push-images/key-cert-provisioner.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push kube-controllers images pipeline_file: push-images/kube-controllers.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push pod2daemon images pipeline_file: push-images/pod2daemon.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push typha images pipeline_file: push-images/typha.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push Goldmane images pipeline_file: push-images/goldmane.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push Whisker images pipeline_file: push-images/whisker.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push Whisker Backend images pipeline_file: push-images/whisker-backend.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push Guardian images pipeline_file: push-images/guardian.yml auto_promote: when: "branch =~ 'master|release-'" - name: Push Envoy images pipeline_file: push-images/envoy.yml auto_promote: when: "branch =~ 'master|release-'" - name: Publish openstack packages pipeline_file: push-images/packaging.yaml auto_promote: when: "branch =~ 'master'" - name: Run Fossa scans pipeline_file: license-scanning/fossa-scan.yml auto_promote: when: "branch =~ 'master|release-.*'" blocks: - name: Prerequisites dependencies: [] task: jobs: - name: Pre-flight checks commands: - make ci-preflight-checks - name: apiserver run: when: "false or change_in(['/*', '/libcalico-go/', '/api/', '/apiserver/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" execution_time_limit: minutes: 30 dependencies: - Prerequisites task: prologue: commands: - cd apiserver jobs: - name: make ci commands: - ../.semaphore/run-and-monitor make-ci.log make ci - name: Build binary matrix: - env_var: ARCH values: - arm64 - ppc64le - s390x commands: - ../.semaphore/run-and-monitor image-$ARCH.log make build ARCH=$ARCH - name: API run: when: "false or change_in(['/*', '/api/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" execution_time_limit: minutes: 30 dependencies: - Prerequisites task: prologue: commands: - cd api jobs: - name: make ci commands: - ../.semaphore/run-and-monitor make-ci.log make ci - name: app-policy run: when: "false or change_in(['/*', '/app-policy/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd app-policy jobs: - name: app-policy tests commands: - ../.semaphore/run-and-monitor ci.log make ci - name: calicoctl run: when: "false or change_in(['/*', '/calicoctl/', '/libcalico-go/', '/api/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd calicoctl jobs: - name: calicoctl tests commands: - ../.semaphore/run-and-monitor ci.log make ci - name: cni-plugin run: when: "false or change_in(['/*', '/cni-plugin/', '/libcalico-go/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd cni-plugin jobs: - name: cni-plugin tests commands: - ../.semaphore/run-and-monitor ci.log make ci - name: build windows cni-plugin images commands: - ../.semaphore/run-and-monitor ci.log make image-windows - name: "cni-plugin: Windows" run: when: "false or change_in(['/*', '/cni-plugin/', '/libcalico-go/', '/process/testing/winfv-cni-plugin/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: secrets: - name: banzai-secrets prologue: commands: # Prepare azure configuration. - az login --service-principal -u "${AZ_SP_ID}" -p "${AZ_SP_PASSWORD}" --tenant "${AZ_TENANT_ID}" --output none - export AZURE_SUBSCRIPTION_ID=$AZ_SUBSCRIPTION_ID - export AZURE_TENANT_ID=$AZ_TENANT_ID - export AZURE_CLIENT_ID=$AZ_SP_ID - export AZURE_CLIENT_SECRET=$AZ_SP_PASSWORD - export REPORT_DIR=/home/semaphore/calico/process/testing/winfv-cni-plugin/report - export LOGS_DIR=~/fv.log - export SHORT_WORKFLOW_ID=$(echo ${SEMAPHORE_WORKFLOW_ID} | sha256sum | cut -c -8) - export CLUSTER_NAME=sem-${SEMAPHORE_PROJECT_NAME}-pr${SEMAPHORE_GIT_PR_NUMBER}-${SHORT_WORKFLOW_ID} - export SUFFIX=${CLUSTER_NAME} - cd cni-plugin - ../.semaphore/run-and-monitor build.log make bin/windows/calico.exe bin/windows/calico-ipam.exe bin/windows/win-fv.exe epilogue: always: commands: - artifact push job ${REPORT_DIR} --destination semaphore/test-results --expire-in ${SEMAPHORE_ARTIFACT_EXPIRY} || true - artifact push job ${LOGS_DIR} --destination semaphore/logs --expire-in ${SEMAPHORE_ARTIFACT_EXPIRY} || true - cd ~/calico/process/testing/winfv-cni-plugin/aso && make dist-clean env_vars: - name: SEMAPHORE_ARTIFACT_EXPIRY value: 2w - name: AZURE_LOCATION value: eastus2 - name: KUBE_VERSION value: v1.29.7 jobs: - name: Containerd - Windows FV - overlay execution_time_limit: minutes: 60 commands: - export BACKEND=overlay - export AZURE_RESOURCE_GROUP=${USER}-capz-win-cni-${SEMAPHORE_WORKFLOW_ID:0:8}-${BACKEND}-rg - ../.semaphore/run-and-monitor win-fv-containerd.log ./.semaphore/run-win-fv.sh - name: Containerd - Windows FV - l2bridge execution_time_limit: minutes: 60 commands: - export BACKEND=l2bridge - export AZURE_RESOURCE_GROUP=${USER}-capz-win-cni-${SEMAPHORE_WORKFLOW_ID:0:8}-${BACKEND}-rg - ../.semaphore/run-and-monitor win-fv-containerd.log ./.semaphore/run-win-fv.sh - name: confd run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/confd/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd confd jobs: - name: "confd: CI" execution_time_limit: minutes: 60 commands: - ../.semaphore/run-and-monitor ci.log make ci - name: crypto run: when: "false or change_in(['/lib.Makefile', '/crypto/'])" dependencies: - Prerequisites task: prologue: commands: - cd crypto jobs: - name: "crypto tests" commands: - ../.semaphore/run-and-monitor ci.log make ci - name: e2e tests run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/confd/', '/bird/', '/pod2daemon/', '/node/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: agent: machine: type: f1-standard-4 os_image: ubuntu2004 jobs: - name: sig-network conformance env_vars: - name: E2E_FOCUS value: "sig-network.*Conformance" commands: - .semaphore/run-and-monitor e2e-test.log make e2e-test - name: "Felix: Build" run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/hack/test/certs/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd felix - cache restore go-pkg-cache - cache restore go-mod-cache jobs: - name: Build and run UT, k8sfv execution_time_limit: minutes: 60 commands: - make build image fv-prereqs - "cache store bin-${SEMAPHORE_GIT_SHA} bin" - "cache store fv.test-${SEMAPHORE_GIT_SHA} fv/fv.test" - cache store go-pkg-cache .go-pkg-cache - "cache store go-mod-cache ${HOME}/go/pkg/mod/cache" - docker save -o /tmp/calico-felix-test.tar calico/felix-test:latest-amd64 - "cache store felix-image-${SEMAPHORE_GIT_SHA} /tmp/calico-felix-test.tar" - docker save -o /tmp/felixtest-typha.tar felix-test/typha:latest-amd64 - "cache store felixtest-typha-image-${SEMAPHORE_GIT_SHA} /tmp/felixtest-typha.tar" - ../.semaphore/run-and-monitor ut.log make ut - ../.semaphore/run-and-monitor k8sfv-typha.log make k8sfv-test JUST_A_MINUTE=true USE_TYPHA=true - ../.semaphore/run-and-monitor k8sfv-no-typha.log make k8sfv-test JUST_A_MINUTE=true USE_TYPHA=false - name: Static checks execution_time_limit: minutes: 60 commands: - ../.semaphore/run-and-monitor static-checks.log make static-checks - name: "Felix: multi-arch build" run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - "Felix: Build" task: prologue: commands: - cd felix - cache restore go-pkg-cache - cache restore go-mod-cache jobs: - name: Build binary matrix: - env_var: ARCH values: - ppc64le - s390x commands: # Only building the code, not the image here because the felix image is now only used for FV tests, which # only run on AMD64 at the moment. - ../.semaphore/run-and-monitor build-$ARCH.log make build ARCH=$ARCH - name: "Felix: Build - native arm64 runner" run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - "Felix: Build" task: agent: machine: type: s1-aws-arm64-2 prologue: commands: - cd felix - cache restore go-pkg-cache - cache restore go-mod-cache jobs: - name: Build binary commands: - ../.semaphore/run-and-monitor build-arm64.log make build ARCH=arm64 - name: "Felix: Build Windows binaries" run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: jobs: - name: Build Windows binaries commands: - cd felix - make bin/calico-felix.exe fv/win-fv.exe - name: "Felix: Windows FV capz" run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/node', '/hack/test/certs/', '/process/testing/winfv-felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: ["Felix: Build Windows binaries"] task: secrets: - name: banzai-secrets - name: private-repo prologue: commands: - az login --service-principal -u "${AZ_SP_ID}" -p "${AZ_SP_PASSWORD}" --tenant "${AZ_TENANT_ID}" --output none - export REPORT_DIR=/home/semaphore/report - export AZURE_SUBSCRIPTION_ID=$AZ_SUBSCRIPTION_ID - export AZURE_TENANT_ID=$AZ_TENANT_ID - export AZURE_CLIENT_ID=$AZ_SP_ID - export AZURE_CLIENT_SECRET=$AZ_SP_PASSWORD - export AZURE_SUBSCRIPTION_ID_B64="$(echo -n "$AZ_SUBSCRIPTION_ID" | base64 | tr -d '\n')" - export AZURE_TENANT_ID_B64="$(echo -n "$AZ_TENANT_ID" | base64 | tr -d '\n')" - export AZURE_CLIENT_ID_B64="$(echo -n "$AZ_SP_ID" | base64 | tr -d '\n')" - export AZURE_CLIENT_SECRET_B64="$(echo -n "$AZ_SP_PASSWORD" | base64 | tr -d '\n')" - cd felix epilogue: always: commands: - artifact push job ${REPORT_DIR} --destination test-results --expire-in ${SEMAPHORE_ARTIFACT_EXPIRY} || true env_vars: - name: FV_PROVISIONER value: "capz" - name: FV_TYPE value: "calico-felix" - name: SEMAPHORE_ARTIFACT_EXPIRY value: 2w - name: CONTAINERD_VERSION value: 1.7.22 jobs: - name: CAPZ - Windows FV commands: - ./.semaphore/run-win-fv - name: "Felix: FV Tests" run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - "Felix: Build" task: agent: machine: type: f1-standard-4 os_image: ubuntu2204 prologue: commands: - cd felix - cache restore go-pkg-cache - cache restore go-mod-cache - "cache restore bin-${SEMAPHORE_GIT_SHA}" - "cache restore fv.test-${SEMAPHORE_GIT_SHA}" - "cache restore felix-image-${SEMAPHORE_GIT_SHA}" - "cache restore felixtest-typha-image-${SEMAPHORE_GIT_SHA}" - |- if [ -s /etc/docker/daemon.json ]; then sudo sed -i '$d' /etc/docker/daemon.json && sudo sed -i '$s/$/,/' /etc/docker/daemon.json && sudo bash -c ' cat >> /etc/docker/daemon.json << EOF "ipv6": true, "fixed-cidr-v6": "2001:db8:1::/64" } EOF ' ; else sudo bash -c ' cat > /etc/docker/daemon.json << EOF { "ipv6": true, "fixed-cidr-v6": "2001:db8:1::/64" } EOF ' ; fi - sudo systemctl restart docker # Load in the docker images pre-built by the build job. - docker load -i /tmp/calico-felix-test.tar - docker tag calico/felix-test:latest-amd64 felix-test:latest-amd64 - rm /tmp/calico-felix-test.tar - docker load -i /tmp/felixtest-typha.tar - docker tag felix-test/typha:latest-amd64 typha:latest-amd64 - rm /tmp/felixtest-typha.tar # Pre-loading the IPIP module prevents a flake where the first felix to use IPIP loads the module and # routing in that first felix container chooses different source IPs than the tests are expecting. - sudo modprobe ipip jobs: - name: FV Test matrix execution_time_limit: minutes: 120 commands: - make check-wireguard - ../.semaphore/run-and-monitor fv-${SEMAPHORE_JOB_INDEX}.log make fv-no-prereqs FV_BATCHES_TO_RUN="${SEMAPHORE_JOB_INDEX}" FV_NUM_BATCHES=${SEMAPHORE_JOB_COUNT} parallelism: 3 - name: nftables FV Test matrix execution_time_limit: minutes: 120 env_vars: - name: FELIX_FV_NFTABLES value: "Enabled" commands: - make check-wireguard - ../.semaphore/run-and-monitor fv-${SEMAPHORE_JOB_INDEX}.log make fv-no-prereqs FV_BATCHES_TO_RUN="${SEMAPHORE_JOB_INDEX}" FV_NUM_BATCHES=${SEMAPHORE_JOB_COUNT} parallelism: 3 epilogue: always: commands: - ./.semaphore/collect-artifacts - ./.semaphore/publish-artifacts - test-results publish /home/semaphore/calico/felix/report/fv_suite.xml --name "felix-fv-${SEMAPHORE_JOB_INDEX}" || true - test-results publish /home/semaphore/calico/felix/report/fv_nft_suite.xml --name "felix-fv-nft-${SEMAPHORE_JOB_INDEX}" || true - name: "Felix: BPF UT/FV tests on new kernel" run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd felix - export GOOGLE_APPLICATION_CREDENTIALS=$HOME/secrets/secret.google-service-account-key.json - export SHORT_WORKFLOW_ID=$(echo ${SEMAPHORE_WORKFLOW_ID} | sha256sum | cut -c -8) - export ZONE=europe-west3-c - export VM_PREFIX=sem-${SEMAPHORE_PROJECT_NAME}-${SHORT_WORKFLOW_ID}-felix-ipt- - echo VM_PREFIX=${VM_PREFIX} - export REPO_NAME=$(basename $(pwd)) - export NUM_FV_BATCHES=8 - export RUN_UT=true - export FV_FOCUS=BPF-SAFE - mkdir artifacts - ./.semaphore/create-test-vms ${VM_PREFIX} jobs: - name: UT/FV tests on new kernel execution_time_limit: minutes: 180 commands: - ./.semaphore/run-tests-on-vms ${VM_PREFIX} epilogue: always: commands: - ./.semaphore/collect-artifacts-from-vms ${VM_PREFIX} - ./.semaphore/publish-artifacts - ./.semaphore/clean-up-vms ${VM_PREFIX} secrets: - name: google-service-account-for-gce - name: "Felix: BPF UT/FV tests on new kernel (nftables)" run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd felix - export GOOGLE_APPLICATION_CREDENTIALS=$HOME/secrets/secret.google-service-account-key.json - export SHORT_WORKFLOW_ID=$(echo ${SEMAPHORE_WORKFLOW_ID} | sha256sum | cut -c -8) - export ZONE=europe-west3-c - export VM_PREFIX=sem-${SEMAPHORE_PROJECT_NAME}-${SHORT_WORKFLOW_ID}-felix-nft- - echo VM_PREFIX=${VM_PREFIX} - export REPO_NAME=$(basename $(pwd)) - export NUM_FV_BATCHES=4 - export RUN_UT=false - export FV_FOCUS='_BPF_.*ct=true' - mkdir artifacts - ./.semaphore/create-test-vms ${VM_PREFIX} jobs: - name: UT/FV tests on new kernel env_vars: - name: FELIX_FV_NFTABLES value: "Enabled" execution_time_limit: minutes: 180 commands: - ./.semaphore/run-tests-on-vms ${VM_PREFIX} epilogue: always: commands: - ./.semaphore/collect-artifacts-from-vms ${VM_PREFIX} - ./.semaphore/publish-artifacts - ./.semaphore/clean-up-vms ${VM_PREFIX} secrets: - name: google-service-account-for-gce - name: goldmane run: when: "false or change_in(['/*', '/goldmane/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" execution_time_limit: minutes: 30 dependencies: - Prerequisites task: prologue: commands: # The Makefile sometimes tries to rebuild the protobuf files on non-amd architectures # even when they don't need to be. Touch the file to update the timestamp. We know # they will be up-to-date due to preflight checks. - touch goldmane/proto/api.pb.go - cd goldmane jobs: - name: make ci commands: - ../.semaphore/run-and-monitor make-ci.log make ci - name: Build binary matrix: - env_var: ARCH values: - arm64 - ppc64le - s390x commands: - ../.semaphore/run-and-monitor image-$ARCH.log make build ARCH=$ARCH - name: guardian run: when: "false or change_in(['/*', '/guardian/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" execution_time_limit: minutes: 30 dependencies: - Prerequisites task: prologue: commands: - cd guardian jobs: - name: make ci commands: - ../.semaphore/run-and-monitor make-ci.log make ci - name: Build binary matrix: - env_var: ARCH values: - arm64 - ppc64le - s390x commands: - ../.semaphore/run-and-monitor image-$ARCH.log make build ARCH=$ARCH - name: kube-controllers run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/kube-controllers/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd kube-controllers jobs: - name: "kube-controllers: tests" commands: - ../.semaphore/run-and-monitor ci.log make ci - name: libcalico-go run: when: "false or change_in(['/*', '/api/', '/libcalico-go/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd libcalico-go jobs: - name: "libcalico-go: tests" commands: - ../.semaphore/run-and-monitor make-ci.log make ci - name: "Node: Build" run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/confd/', '/bird/', '/pod2daemon/', '/node/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: agent: machine: type: f1-standard-4 os_image: ubuntu2004 prologue: commands: - cd node jobs: - name: "Node: CI" commands: - ../.semaphore/run-and-monitor ci.log make ci - name: "Node: multi-arch build" run: when: "false or change_in(['/felix/', '/confd/', '/node/'])" dependencies: - "Node: Build" task: prologue: commands: - cd node jobs: - name: Build image matrix: - env_var: ARCH values: - ppc64le - s390x commands: - ../.semaphore/run-and-monitor image-$ARCH.log make image ARCH=$ARCH - name: Build Windows archive commands: - ../.semaphore/run-and-monitor build-windows-archive.log make build-windows-archive - name: Build Windows image commands: - ../.semaphore/run-and-monitor build-windows-image.log make image-windows - name: "Node: Build - native arm64 runner" run: when: "false or change_in(['/felix/', '/confd/', '/node/'])" dependencies: - "Node: Build" task: agent: machine: type: s1-aws-arm64-2 prologue: commands: - cd node jobs: - name: Build image commands: - ../.semaphore/run-and-monitor build-arm64.log make image ARCH=arm64 - name: "Node: kind-cluster tests" run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/confd/', '/bird/', '/pod2daemon/', '/node/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd node - export GOOGLE_APPLICATION_CREDENTIALS=$HOME/secrets/secret.google-service-account-key.json - export SHORT_WORKFLOW_ID=$(echo ${SEMAPHORE_WORKFLOW_ID} | sha256sum | cut -c -8) - export ZONE=europe-west3-c - export VM_PREFIX=sem-${SEMAPHORE_PROJECT_NAME}-${SHORT_WORKFLOW_ID}-kind- - echo VM_PREFIX=${VM_PREFIX} - export REPO_NAME=$(basename $(pwd)) - export VM_DISK_SIZE=80GB - mkdir artifacts - ../.semaphore/vms/create-test-vms ${ZONE} ${VM_PREFIX} jobs: - name: "Node: kind-cluster tests" execution_time_limit: minutes: 120 commands: - ../.semaphore/vms/run-tests-on-vms ${ZONE} ${VM_PREFIX} epilogue: always: commands: - ../.semaphore/vms/publish-artifacts - ../.semaphore/vms/clean-up-vms ${ZONE} ${VM_PREFIX} - test-results publish ./report/*.xml --name "node-kind-tests" || true secrets: - name: google-service-account-for-gce - name: pod2daemon run: when: "false or change_in(['/*', '/pod2daemon/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd pod2daemon jobs: - name: pod2daemon tests commands: - ../.semaphore/run-and-monitor ci.log make ci - test-results publish ./report/*.xml --name "pod2daemon-ut-tests" || true - name: Typha run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd typha jobs: - name: "Typha: UT and FV tests" commands: - ../.semaphore/run-and-monitor make-ci.log make ci EXCEPT=k8sfv-test - name: "Typha: UT and FV tests on UBI-minimal" commands: - ../.semaphore/run-and-monitor make-fv-ubi.log make clean image fv env_vars: - name: USE_UBI_AS_CALICO_BASE value: '1' epilogue: always: commands: - | for f in /home/semaphore/calico/typha/report/*; do NAME=$(basename $f) test-results compile --name typha-$NAME $f $NAME.json || true done for f in /home/semaphore/calico/typha/pkg/report/*; do NAME=$(basename $f) test-results compile --name typha-$NAME $f $NAME.json || true done test-results combine *.xml.json report.json || true artifact push job report.json -d test-results/junit.json || true artifact push workflow report.json -d test-results/${SEMAPHORE_PIPELINE_ID}/${SEMAPHORE_JOB_ID}.json || true - test-results publish /home/semaphore/calico/felix/report/k8sfv_suite.xml --name "typha-k8sfv" || true - name: whisker-backend run: when: "false or change_in(['/*', '/whisker-backend/', '/goldmane/', '/lib/std/', '/lib/httpmachinery/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" execution_time_limit: minutes: 30 dependencies: - Prerequisites task: prologue: commands: - cd whisker-backend jobs: - name: make ci commands: - ../.semaphore/run-and-monitor make-ci.log make ci - name: Build binary matrix: - env_var: ARCH values: - arm64 - ppc64le - s390x commands: - ../.semaphore/run-and-monitor image-$ARCH.log make build ARCH=$ARCH - name: whisker run: when: "false or change_in(['/*', '/whisker/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" execution_time_limit: minutes: 30 dependencies: - Prerequisites task: prologue: commands: - cd whisker jobs: - name: make ci commands: - ../.semaphore/run-and-monitor make-ci.log make ci - name: Build binary matrix: - env_var: ARCH values: - arm64 - ppc64le - s390x commands: - ../.semaphore/run-and-monitor image-$ARCH.log make build ARCH=$ARCH - name: key-cert-provisioner run: when: "false or change_in(['/*', '/key-cert-provisioner/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd key-cert-provisioner jobs: - name: key-cert-provisioner tests commands: - ../.semaphore/run-and-monitor ci.log make ci - name: "OpenStack integration (Yoga)" run: when: "false or change_in(['/networking-calico/'])" dependencies: - Prerequisites task: agent: machine: type: f1-standard-2 os_image: ubuntu2004 prologue: commands: - cd networking-calico jobs: - name: "Unit and FV tests (tox) on Yoga" commands: - ../.semaphore/run-and-monitor tox.log make tox-yoga - name: "Mainline ST (DevStack + Tempest) on Yoga" commands: # For some reason python3-wrapt is pre-installed on a Semaphore ubuntu2004 node, but with # a version (1.11.2) that is different from the version that OpenStack needs (1.13.3), and # this was causing the DevStack setup to fail, because pip doesn't know how to uninstall # or replace the existing version. Happily we do know that, so let's do it upfront here. - sudo apt-get remove -y python3-wrapt || true - git checkout -b devstack-test - export LIBVIRT_TYPE=qemu - export UPPER_CONSTRAINTS_FILE=https://releases.openstack.org/constraints/upper/yoga - export NC_PLUGIN_REPO=$(dirname $(pwd)) - export NC_PLUGIN_REF=$(git rev-parse --abbrev-ref HEAD) - sudo git config --system --add safe.directory ${NC_PLUGIN_REPO}/.git - TEMPEST=true DEVSTACK_BRANCH=unmaintained/yoga ./devstack/bootstrap.sh epilogue: on_fail: commands: - mkdir logs - sudo journalctl > logs/journalctl.txt - artifact push job --expire-in 1d logs - name: "OpenStack integration (Caracal)" run: when: "false or change_in(['/networking-calico/'])" dependencies: - Prerequisites task: agent: machine: type: f1-standard-2 os_image: ubuntu2204 prologue: commands: - cd networking-calico jobs: - name: "Unit and FV tests (tox) on Caracal" commands: - export UPPER_CONSTRAINTS_FILE=https://raw.githubusercontent.com/openstack/requirements/refs/heads/stable/2024.1/upper-constraints.txt - ../.semaphore/run-and-monitor tox.log make tox-caracal - name: "Mainline ST (DevStack + Tempest) on Caracal" commands: # For some reason python3-wrapt is pre-installed on a Semaphore ubuntu2004 node, but with # a version (1.11.2) that is different from the version that OpenStack needs (1.13.3), and # this was causing the DevStack setup to fail, because pip doesn't know how to uninstall # or replace the existing version. Happily we do know that, so let's do it upfront here. - sudo apt-get remove -y python3-wrapt || true - git checkout -b devstack-test - export LIBVIRT_TYPE=qemu - export UPPER_CONSTRAINTS_FILE=https://raw.githubusercontent.com/openstack/requirements/refs/heads/stable/2024.1/upper-constraints.txt - export NC_PLUGIN_REPO=$(dirname $(pwd)) - export NC_PLUGIN_REF=$(git rev-parse --abbrev-ref HEAD) - sudo git config --system --add safe.directory ${NC_PLUGIN_REPO}/.git - TEMPEST=true DEVSTACK_BRANCH=stable/2024.1 ./devstack/bootstrap.sh epilogue: always: commands: - mkdir logs - sudo journalctl > logs/journalctl.txt - artifact push job --expire-in 1d logs - name: Mock node run: when: "false or change_in(['/*', '/test-tools/mocknode/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: prologue: commands: - cd test-tools/mocknode jobs: - name: Mock node commands: - ../../.semaphore/run-and-monitor make-ci.log make ci - name: release tooling run: when: "false or change_in(['/*', '/release/'], {exclude: ['/**/.gitignore', '/**/*.md', '/**/LICENSE']})" execution_time_limit: minutes: 30 dependencies: - Prerequisites task: prologue: commands: - cd release jobs: - name: ci commands: - ../.semaphore/run-and-monitor release-ci.log make ci - name: build binary commands: - ../.semaphore/run-and-monitor release-build.log make build - cache store release-${SEMAPHORE_GIT_SHA} bin after_pipeline: task: jobs: - name: Reports commands: - test-results gen-pipeline-report --force echo "Compiling $INPUT_FILE into $OUTPUT_FILE and storring logs to $LOGS_FILE" Compiling .semaphore/semaphore.yml into .semaphore/semaphore.yml.output.yml and storring logs to .semaphore/semaphore.yml.logs.jsonl spc compile --input $INPUT_FILE --output $OUTPUT_FILE --logs $LOGS_FILE Extracting commands from commands_files in .semaphore/semaphore.yml. Found commands_file fields at 0 locations. Extracting commands from commands_files. Evaluating template expressions in .semaphore/semaphore.yml. Found template expressions at 0 locations. Substituting templates with their values. Evaluating change_in expressions in .semaphore/semaphore.yml. Found when expressions at 54 locations. 001 | Location: [auto_cancel queued when] | File: .semaphore/semaphore.yml | Expression: branch != 'master' 002 | Location: [auto_cancel running when] | File: .semaphore/semaphore.yml | Expression: branch != 'master' 003 | Location: [blocks 1 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/libcalico-go/', '/api/', '/apiserver/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 004 | Location: [blocks 2 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 005 | Location: [blocks 3 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/app-policy/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 006 | Location: [blocks 4 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/calicoctl/', '/libcalico-go/', '/api/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 007 | Location: [blocks 5 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/cni-plugin/', '/libcalico-go/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 008 | Location: [blocks 6 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/cni-plugin/', '/libcalico-go/', '/process/testing/winfv-cni-plugin/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 009 | Location: [blocks 7 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/confd/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 010 | Location: [blocks 8 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/lib.Makefile', '/crypto/']) 011 | Location: [blocks 9 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/confd/', '/bird/', '/pod2daemon/', '/node/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 012 | Location: [blocks 10 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/hack/test/certs/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 013 | Location: [blocks 11 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 014 | Location: [blocks 12 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 015 | Location: [blocks 13 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 016 | Location: [blocks 14 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/node', '/hack/test/certs/', '/process/testing/winfv-felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 017 | Location: [blocks 15 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 018 | Location: [blocks 16 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 019 | Location: [blocks 17 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 020 | Location: [blocks 18 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/goldmane/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 021 | Location: [blocks 19 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/guardian/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 022 | Location: [blocks 20 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/kube-controllers/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 023 | Location: [blocks 21 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 024 | Location: [blocks 22 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/confd/', '/bird/', '/pod2daemon/', '/node/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 025 | Location: [blocks 23 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/felix/', '/confd/', '/node/']) 026 | Location: [blocks 24 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/felix/', '/confd/', '/node/']) 027 | Location: [blocks 25 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/confd/', '/bird/', '/pod2daemon/', '/node/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 028 | Location: [blocks 26 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/pod2daemon/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 029 | Location: [blocks 27 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 030 | Location: [blocks 28 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/whisker-backend/', '/goldmane/', '/lib/std/', '/lib/httpmachinery/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 031 | Location: [blocks 29 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/whisker/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 032 | Location: [blocks 30 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/key-cert-provisioner/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 033 | Location: [blocks 31 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/networking-calico/']) 034 | Location: [blocks 32 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/networking-calico/']) 035 | Location: [blocks 33 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/test-tools/mocknode/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 036 | Location: [blocks 34 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/release/'], {exclude: ['/**/.gitignore', '/**/*.md', '/**/LICENSE']}) 037 | Location: [promotions 2 auto_promote when] | File: .semaphore/semaphore.yml | Expression: result = 'stopped' 038 | Location: [promotions 4 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-.*' 039 | Location: [promotions 5 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 040 | Location: [promotions 6 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 041 | Location: [promotions 7 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 042 | Location: [promotions 8 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 043 | Location: [promotions 9 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 044 | Location: [promotions 10 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 045 | Location: [promotions 11 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 046 | Location: [promotions 12 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 047 | Location: [promotions 13 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 048 | Location: [promotions 14 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 049 | Location: [promotions 15 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 050 | Location: [promotions 16 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 051 | Location: [promotions 17 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 052 | Location: [promotions 18 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 053 | Location: [promotions 19 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master' 054 | Location: [promotions 20 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-.*' Evaluating when expressions. 001 | When Expression: branch != 'master' 002 | When Expression: branch != 'master' 003 | When Expression: false or change_in(['/*', '/libcalico-go/', '/api/', '/apiserver/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/libcalico-go/","/api/","/apiserver/","/hack/test/certs/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git fetch origin +refs/heads/master:refs/heads/master | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | Running git diff --name-only master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 004 | When Expression: false or change_in(['/*', '/api/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 005 | When Expression: false or change_in(['/*', '/app-policy/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/app-policy/","/felix/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 006 | When Expression: false or change_in(['/*', '/calicoctl/', '/libcalico-go/', '/api/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/calicoctl/","/libcalico-go/","/api/","/hack/test/certs/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 007 | When Expression: false or change_in(['/*', '/cni-plugin/', '/libcalico-go/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/cni-plugin/","/libcalico-go/","/hack/test/certs/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 008 | When Expression: false or change_in(['/*', '/cni-plugin/', '/libcalico-go/', '/process/testing/winfv-cni-plugin/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/cni-plugin/","/libcalico-go/","/process/testing/winfv-cni-plugin/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 009 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/confd/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/confd/","/hack/test/certs/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 010 | When Expression: false or change_in(['/lib.Makefile', '/crypto/']) | | change_in([["/lib.Makefile","/crypto/"]]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 011 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/confd/', '/bird/', '/pod2daemon/', '/node/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/felix/","/confd/","/bird/","/pod2daemon/","/node/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 012 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/hack/test/certs/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/felix/","/hack/test/certs/","/cni-plugin/pkg/dataplane/linux/dataplane_linux.go"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 013 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/felix/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 014 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/felix/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 015 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/felix/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 016 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/node', '/hack/test/certs/', '/process/testing/winfv-felix/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/felix/","/node","/hack/test/certs/","/process/testing/winfv-felix/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 017 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/felix/","/cni-plugin/pkg/dataplane/linux/dataplane_linux.go"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 018 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/felix/","/cni-plugin/pkg/dataplane/linux/dataplane_linux.go"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 019 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/cni-plugin/pkg/dataplane/linux/dataplane_linux.go'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/felix/","/cni-plugin/pkg/dataplane/linux/dataplane_linux.go"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 020 | When Expression: false or change_in(['/*', '/goldmane/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/goldmane/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 021 | When Expression: false or change_in(['/*', '/guardian/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/guardian/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 022 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/kube-controllers/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/kube-controllers/","/hack/test/certs/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 023 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 024 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/confd/', '/bird/', '/pod2daemon/', '/node/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/felix/","/confd/","/bird/","/pod2daemon/","/node/","/hack/test/certs/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 025 | When Expression: false or change_in(['/felix/', '/confd/', '/node/']) | | change_in([["/felix/","/confd/","/node/"]]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 026 | When Expression: false or change_in(['/felix/', '/confd/', '/node/']) | | change_in([["/felix/","/confd/","/node/"]]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 027 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/felix/', '/confd/', '/bird/', '/pod2daemon/', '/node/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/felix/","/confd/","/bird/","/pod2daemon/","/node/","/hack/test/certs/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 028 | When Expression: false or change_in(['/*', '/pod2daemon/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/pod2daemon/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 029 | When Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/api/","/libcalico-go/","/typha/","/hack/test/certs/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 030 | When Expression: false or change_in(['/*', '/whisker-backend/', '/goldmane/', '/lib/std/', '/lib/httpmachinery/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/whisker-backend/","/goldmane/","/lib/std/","/lib/httpmachinery/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 031 | When Expression: false or change_in(['/*', '/whisker/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/whisker/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 032 | When Expression: false or change_in(['/*', '/key-cert-provisioner/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/key-cert-provisioner/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 033 | When Expression: false or change_in(['/networking-calico/']) | | change_in([["/networking-calico/"]]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 034 | When Expression: false or change_in(['/networking-calico/']) | | change_in([["/networking-calico/"]]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 035 | When Expression: false or change_in(['/*', '/test-tools/mocknode/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) | | change_in([["/*","/test-tools/mocknode/"],{"exclude":["/**/.gitignore","/**/README.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 036 | When Expression: false or change_in(['/*', '/release/'], {exclude: ['/**/.gitignore', '/**/*.md', '/**/LICENSE']}) | | change_in([["/*","/release/"],{"exclude":["/**/.gitignore","/**/*.md","/**/LICENSE"]}]) | Running git diff --shortstat master...6cf6836b52ebadd5034700362df463b9e9625a04 | | Comparing change_in with git diff | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 037 | When Expression: result = 'stopped' 038 | When Expression: branch =~ 'master|release-.*' 039 | When Expression: branch =~ 'master|release-' 040 | When Expression: branch =~ 'master|release-' 041 | When Expression: branch =~ 'master|release-' 042 | When Expression: branch =~ 'master|release-' 043 | When Expression: branch =~ 'master|release-' 044 | When Expression: branch =~ 'master|release-' 045 | When Expression: branch =~ 'master|release-' 046 | When Expression: branch =~ 'master|release-' 047 | When Expression: branch =~ 'master|release-' 048 | When Expression: branch =~ 'master|release-' 049 | When Expression: branch =~ 'master|release-' 050 | When Expression: branch =~ 'master|release-' 051 | When Expression: branch =~ 'master|release-' 052 | When Expression: branch =~ 'master|release-' 053 | When Expression: branch =~ 'master' 054 | When Expression: branch =~ 'master|release-.*' Exporting environment variables Exporting SEMAPHORE_JOB_RESULT export BASE_NAME=$SEMAPHORE_PIPELINE_ID-$(basename $INPUT_FILE) export ARTIFACT_LOG_DESTINATION="compilation/$BASE_NAME.logs" echo "Uploading $LOGS_FILE into $ARTIFACT_LOG_DESTINATION" Uploading .semaphore/semaphore.yml.logs.jsonl into compilation/545a72a5-9ee0-4730-b66e-544d2bb2f464-semaphore.yml.logs artifact push workflow $LOGS_FILE -d $ARTIFACT_LOG_DESTINATION [Mar 28 21:34:27.846] Successfully pushed artifact for current workflow. [Mar 28 21:34:27.846] * Local source: .semaphore/semaphore.yml.logs.jsonl. [Mar 28 21:34:27.846] * Remote destination: artifacts/workflows/750ec007-36cb-4fbd-a8c7-26b2396cc07b/compilation/545a72a5-9ee0-4730-b66e-544d2bb2f464-semaphore.yml.logs. export ARTIFACT_YAML_DESTINATION="compilation/$BASE_NAME" echo "Uploading $OUTPUT_FILE into $ARTIFACT_YAML_DESTINATION" Uploading .semaphore/semaphore.yml.output.yml into compilation/545a72a5-9ee0-4730-b66e-544d2bb2f464-semaphore.yml artifact push workflow $OUTPUT_FILE -d $ARTIFACT_YAML_DESTINATION [Mar 28 21:34:28.305] Successfully pushed artifact for current workflow. [Mar 28 21:34:28.305] * Local source: .semaphore/semaphore.yml.output.yml. [Mar 28 21:34:28.305] * Remote destination: artifacts/workflows/750ec007-36cb-4fbd-a8c7-26b2396cc07b/compilation/545a72a5-9ee0-4730-b66e-544d2bb2f464-semaphore.yml.