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.26.0/linux.tar Tar file: linux.tar Attempt 5 toolbox/ toolbox/sem-service toolbox/when_otp_25 toolbox/libchecksum toolbox/install-toolbox toolbox/sem-install toolbox/install-package toolbox/when_otp_26 toolbox/test-results toolbox/system-metrics-collector toolbox/sem-version toolbox/README.md toolbox/artifact toolbox/sem-context toolbox/sem-dockerize toolbox/spc toolbox/cache toolbox/when_otp_24 toolbox/toolbox toolbox/enetwork toolbox/Dockerfile.dev toolbox/sem-service-check-params toolbox/retry toolbox/libcheckout toolbox/sem-semantic-release toolbox/ssh-session-cli 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 Erlang version: 25 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 2372 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: 4776, done. remote: Counting objects: 0% (1/4776) remote: Counting objects: 1% (48/4776) remote: Counting objects: 2% (96/4776) remote: Counting objects: 3% (144/4776) remote: Counting objects: 4% (192/4776) remote: Counting objects: 5% (239/4776) remote: Counting objects: 6% (287/4776) remote: Counting objects: 7% (335/4776) remote: Counting objects: 8% (383/4776) remote: Counting objects: 9% (430/4776) remote: Counting objects: 10% (478/4776) remote: Counting objects: 11% (526/4776) remote: Counting objects: 12% (574/4776) remote: Counting objects: 13% (621/4776) remote: Counting objects: 14% (669/4776) remote: Counting objects: 15% (717/4776) remote: Counting objects: 16% (765/4776) remote: Counting objects: 17% (812/4776) remote: Counting objects: 18% (860/4776) remote: Counting objects: 19% (908/4776) remote: Counting objects: 20% (956/4776) remote: Counting objects: 21% (1003/4776) remote: Counting objects: 22% (1051/4776) remote: Counting objects: 23% (1099/4776) remote: Counting objects: 24% (1147/4776) remote: Counting objects: 25% (1194/4776) remote: Counting objects: 26% (1242/4776) remote: Counting objects: 27% (1290/4776) remote: Counting objects: 28% (1338/4776) remote: Counting objects: 29% (1386/4776) remote: Counting objects: 30% (1433/4776) remote: Counting objects: 31% (1481/4776) remote: Counting objects: 32% (1529/4776) remote: Counting objects: 33% (1577/4776) remote: Counting objects: 34% (1624/4776) remote: Counting objects: 35% (1672/4776) remote: Counting objects: 36% (1720/4776) remote: Counting objects: 37% (1768/4776) remote: Counting objects: 38% (1815/4776) remote: Counting objects: 39% (1863/4776) remote: Counting objects: 40% (1911/4776) remote: Counting objects: 41% (1959/4776) remote: Counting objects: 42% (2006/4776) remote: Counting objects: 43% (2054/4776) remote: Counting objects: 44% (2102/4776) remote: Counting objects: 45% (2150/4776) remote: Counting objects: 46% (2197/4776) remote: Counting objects: 47% (2245/4776) remote: Counting objects: 48% (2293/4776) remote: Counting objects: 49% (2341/4776) remote: Counting objects: 50% (2388/4776) remote: Counting objects: 51% (2436/4776) remote: Counting objects: 52% (2484/4776) remote: Counting objects: 53% (2532/4776) remote: Counting objects: 54% (2580/4776) remote: Counting objects: 55% (2627/4776) remote: Counting objects: 56% (2675/4776) remote: Counting objects: 57% (2723/4776) remote: Counting objects: 58% (2771/4776) remote: Counting objects: 59% (2818/4776) remote: Counting objects: 60% (2866/4776) remote: Counting objects: 61% (2914/4776) remote: Counting objects: 62% (2962/4776) remote: Counting objects: 63% (3009/4776) remote: Counting objects: 64% (3057/4776) remote: Counting objects: 65% (3105/4776) remote: Counting objects: 66% (3153/4776) remote: Counting objects: 67% (3200/4776) remote: Counting objects: 68% (3248/4776) remote: Counting objects: 69% (3296/4776) remote: Counting objects: 70% (3344/4776) remote: Counting objects: 71% (3391/4776) remote: Counting objects: 72% (3439/4776) remote: Counting objects: 73% (3487/4776) remote: Counting objects: 74% (3535/4776) remote: Counting objects: 75% (3582/4776) remote: Counting objects: 76% (3630/4776) remote: Counting objects: 77% (3678/4776) remote: Counting objects: 78% (3726/4776) remote: Counting objects: 79% (3774/4776) remote: Counting objects: 80% (3821/4776) remote: Counting objects: 81% (3869/4776) remote: Counting objects: 82% (3917/4776) remote: Counting objects: 83% (3965/4776) remote: Counting objects: 84% (4012/4776) remote: Counting objects: 85% (4060/4776) remote: Counting objects: 86% (4108/4776) remote: Counting objects: 87% (4156/4776) remote: Counting objects: 88% (4203/4776) remote: Counting objects: 89% (4251/4776) remote: Counting objects: 90% (4299/4776) remote: Counting objects: 91% (4347/4776) remote: Counting objects: 92% (4394/4776) remote: Counting objects: 93% (4442/4776) remote: Counting objects: 94% (4490/4776) remote: Counting objects: 95% (4538/4776) remote: Counting objects: 96% (4585/4776) remote: Counting objects: 97% (4633/4776) remote: Counting objects: 98% (4681/4776) remote: Counting objects: 99% (4729/4776) remote: Counting objects: 100% (4776/4776) remote: Counting objects: 100% (4776/4776), done. remote: Compressing objects: 0% (1/3471) remote: Compressing objects: 1% (35/3471) remote: Compressing objects: 2% (70/3471) remote: Compressing objects: 3% (105/3471) remote: Compressing objects: 4% (139/3471) remote: Compressing objects: 5% (174/3471) remote: Compressing objects: 6% (209/3471) remote: Compressing objects: 7% (243/3471) remote: Compressing objects: 8% (278/3471) remote: Compressing objects: 9% (313/3471) remote: Compressing objects: 10% (348/3471) remote: Compressing objects: 11% (382/3471) remote: Compressing objects: 12% (417/3471) remote: Compressing objects: 13% (452/3471) remote: Compressing objects: 14% (486/3471) remote: Compressing objects: 15% (521/3471) remote: Compressing objects: 16% (556/3471) remote: Compressing objects: 17% (591/3471) remote: Compressing objects: 18% (625/3471) remote: Compressing objects: 19% (660/3471) remote: Compressing objects: 20% (695/3471) remote: Compressing objects: 21% (729/3471) remote: Compressing objects: 22% (764/3471) remote: Compressing objects: 23% (799/3471) remote: Compressing objects: 24% (834/3471) remote: Compressing objects: 25% (868/3471) remote: Compressing objects: 26% (903/3471) remote: Compressing objects: 27% (938/3471) remote: Compressing objects: 28% (972/3471) remote: Compressing objects: 29% (1007/3471) remote: Compressing objects: 30% (1042/3471) remote: Compressing objects: 31% (1077/3471) remote: Compressing objects: 32% (1111/3471) remote: Compressing objects: 33% (1146/3471) remote: Compressing objects: 34% (1181/3471) remote: Compressing objects: 35% (1215/3471) remote: Compressing objects: 36% (1250/3471) remote: Compressing objects: 37% (1285/3471) remote: Compressing objects: 38% (1319/3471) remote: Compressing objects: 39% (1354/3471) remote: Compressing objects: 40% (1389/3471) remote: Compressing objects: 41% (1424/3471) remote: Compressing objects: 42% (1458/3471) remote: Compressing objects: 43% (1493/3471) remote: Compressing objects: 44% (1528/3471) remote: Compressing objects: 45% (1562/3471) remote: Compressing objects: 46% (1597/3471) remote: Compressing objects: 47% (1632/3471) remote: Compressing objects: 48% (1667/3471) remote: Compressing objects: 49% (1701/3471) remote: Compressing objects: 50% (1736/3471) remote: Compressing objects: 51% (1771/3471) remote: Compressing objects: 52% (1805/3471) remote: Compressing objects: 53% (1840/3471) remote: Compressing objects: 54% (1875/3471) remote: Compressing objects: 55% (1910/3471) remote: Compressing objects: 56% (1944/3471) remote: Compressing objects: 57% (1979/3471) remote: Compressing objects: 58% (2014/3471) remote: Compressing objects: 59% (2048/3471) remote: Compressing objects: 60% (2083/3471) remote: Compressing objects: 61% (2118/3471) remote: Compressing objects: 62% (2153/3471) remote: Compressing objects: 63% (2187/3471) remote: Compressing objects: 64% (2222/3471) remote: Compressing objects: 65% (2257/3471) remote: Compressing objects: 66% (2291/3471) remote: Compressing objects: 67% (2326/3471) remote: Compressing objects: 68% (2361/3471) remote: Compressing objects: 69% (2395/3471) remote: Compressing objects: 70% (2430/3471) remote: Compressing objects: 71% (2465/3471) remote: Compressing objects: 72% (2500/3471) remote: Compressing objects: 73% (2534/3471) remote: Compressing objects: 74% (2569/3471) remote: Compressing objects: 75% (2604/3471) remote: Compressing objects: 76% (2638/3471) remote: Compressing objects: 77% (2673/3471) remote: Compressing objects: 78% (2708/3471) remote: Compressing objects: 79% (2743/3471) remote: Compressing objects: 80% (2777/3471) remote: Compressing objects: 81% (2812/3471) remote: Compressing objects: 82% (2847/3471) remote: Compressing objects: 83% (2881/3471) remote: Compressing objects: 84% (2916/3471) remote: Compressing objects: 85% (2951/3471) remote: Compressing objects: 86% (2986/3471) remote: Compressing objects: 87% (3020/3471) remote: Compressing objects: 88% (3055/3471) remote: Compressing objects: 89% (3090/3471) remote: Compressing objects: 90% (3124/3471) remote: Compressing objects: 91% (3159/3471) remote: Compressing objects: 92% (3194/3471) remote: Compressing objects: 93% (3229/3471) remote: Compressing objects: 94% (3263/3471) remote: Compressing objects: 95% (3298/3471) remote: Compressing objects: 96% (3333/3471) remote: Compressing objects: 97% (3367/3471) remote: Compressing objects: 98% (3402/3471) remote: Compressing objects: 99% (3437/3471) remote: Compressing objects: 100% (3471/3471) remote: Compressing objects: 100% (3471/3471), done. Receiving objects: 0% (1/4776) Receiving objects: 1% (48/4776) Receiving objects: 2% (96/4776) Receiving objects: 3% (144/4776) Receiving objects: 4% (192/4776) Receiving objects: 5% (239/4776) Receiving objects: 6% (287/4776) Receiving objects: 7% (335/4776) Receiving objects: 8% (383/4776) Receiving objects: 9% (430/4776) Receiving objects: 10% (478/4776) Receiving objects: 11% (526/4776) Receiving objects: 12% (574/4776) Receiving objects: 13% (621/4776) Receiving objects: 14% (669/4776) Receiving objects: 15% (717/4776) Receiving objects: 16% (765/4776) Receiving objects: 17% (812/4776) Receiving objects: 18% (860/4776) Receiving objects: 19% (908/4776) Receiving objects: 20% (956/4776) Receiving objects: 21% (1003/4776) Receiving objects: 22% (1051/4776) Receiving objects: 23% (1099/4776) Receiving objects: 24% (1147/4776) Receiving objects: 25% (1194/4776) Receiving objects: 26% (1242/4776) Receiving objects: 27% (1290/4776) Receiving objects: 28% (1338/4776) Receiving objects: 29% (1386/4776) Receiving objects: 30% (1433/4776) Receiving objects: 31% (1481/4776) Receiving objects: 32% (1529/4776) Receiving objects: 33% (1577/4776) Receiving objects: 34% (1624/4776) Receiving objects: 35% (1672/4776) Receiving objects: 36% (1720/4776) Receiving objects: 37% (1768/4776) Receiving objects: 38% (1815/4776) Receiving objects: 39% (1863/4776) Receiving objects: 40% (1911/4776) Receiving objects: 41% (1959/4776) Receiving objects: 42% (2006/4776) Receiving objects: 43% (2054/4776) Receiving objects: 44% (2102/4776) Receiving objects: 45% (2150/4776) Receiving objects: 46% (2197/4776) Receiving objects: 47% (2245/4776) Receiving objects: 48% (2293/4776) Receiving objects: 49% (2341/4776) Receiving objects: 50% (2388/4776) Receiving objects: 51% (2436/4776) Receiving objects: 52% (2484/4776) Receiving objects: 53% (2532/4776) Receiving objects: 54% (2580/4776) Receiving objects: 55% (2627/4776) Receiving objects: 56% (2675/4776) Receiving objects: 57% (2723/4776) Receiving objects: 58% (2771/4776) Receiving objects: 59% (2818/4776) Receiving objects: 60% (2866/4776) Receiving objects: 61% (2914/4776) Receiving objects: 62% (2962/4776) Receiving objects: 63% (3009/4776) Receiving objects: 64% (3057/4776) Receiving objects: 65% (3105/4776) Receiving objects: 66% (3153/4776) Receiving objects: 67% (3200/4776) Receiving objects: 68% (3248/4776) Receiving objects: 69% (3296/4776) Receiving objects: 70% (3344/4776) Receiving objects: 71% (3391/4776) Receiving objects: 72% (3439/4776) Receiving objects: 73% (3487/4776) Receiving objects: 74% (3535/4776) Receiving objects: 75% (3582/4776) Receiving objects: 76% (3630/4776) Receiving objects: 77% (3678/4776) Receiving objects: 78% (3726/4776) Receiving objects: 79% (3774/4776) Receiving objects: 80% (3821/4776) Receiving objects: 81% (3869/4776) Receiving objects: 82% (3917/4776) Receiving objects: 83% (3965/4776) Receiving objects: 84% (4012/4776) Receiving objects: 85% (4060/4776) Receiving objects: 86% (4108/4776) Receiving objects: 87% (4156/4776) Receiving objects: 88% (4203/4776) Receiving objects: 89% (4251/4776) Receiving objects: 90% (4299/4776) Receiving objects: 91% (4347/4776) Receiving objects: 92% (4394/4776) Receiving objects: 93% (4442/4776), 6.78 MiB | 13.38 MiB/s Receiving objects: 94% (4490/4776), 6.78 MiB | 13.38 MiB/s Receiving objects: 95% (4538/4776), 6.78 MiB | 13.38 MiB/s Receiving objects: 96% (4585/4776), 6.78 MiB | 13.38 MiB/s Receiving objects: 97% (4633/4776), 6.78 MiB | 13.38 MiB/s Receiving objects: 98% (4681/4776), 6.78 MiB | 13.38 MiB/s Receiving objects: 99% (4729/4776), 6.78 MiB | 13.38 MiB/s remote: Total 4776 (delta 1777), reused 2598 (delta 1017), pack-reused 0 (from 0) Receiving objects: 100% (4776/4776), 6.78 MiB | 13.38 MiB/s Receiving objects: 100% (4776/4776), 7.43 MiB | 14.20 MiB/s, done. Resolving deltas: 0% (0/1777) Resolving deltas: 1% (18/1777) Resolving deltas: 2% (36/1777) Resolving deltas: 3% (54/1777) Resolving deltas: 4% (72/1777) Resolving deltas: 5% (89/1777) Resolving deltas: 6% (107/1777) Resolving deltas: 7% (125/1777) Resolving deltas: 8% (143/1777) Resolving deltas: 9% (160/1777) Resolving deltas: 10% (178/1777) Resolving deltas: 11% (196/1777) Resolving deltas: 12% (214/1777) Resolving deltas: 13% (232/1777) Resolving deltas: 14% (249/1777) Resolving deltas: 15% (267/1777) Resolving deltas: 16% (285/1777) Resolving deltas: 17% (303/1777) Resolving deltas: 18% (320/1777) Resolving deltas: 19% (338/1777) Resolving deltas: 20% (356/1777) Resolving deltas: 21% (374/1777) Resolving deltas: 22% (391/1777) Resolving deltas: 23% (409/1777) Resolving deltas: 24% (427/1777) Resolving deltas: 25% (445/1777) Resolving deltas: 26% (463/1777) Resolving deltas: 27% (480/1777) Resolving deltas: 28% (498/1777) Resolving deltas: 29% (516/1777) Resolving deltas: 30% (534/1777) Resolving deltas: 31% (551/1777) Resolving deltas: 32% (569/1777) Resolving deltas: 33% (587/1777) Resolving deltas: 34% (605/1777) Resolving deltas: 35% (622/1777) Resolving deltas: 36% (640/1777) Resolving deltas: 37% (658/1777) Resolving deltas: 38% (676/1777) Resolving deltas: 39% (694/1777) Resolving deltas: 40% (711/1777) Resolving deltas: 41% (729/1777) Resolving deltas: 42% (747/1777) Resolving deltas: 43% (765/1777) Resolving deltas: 44% (782/1777) Resolving deltas: 45% (800/1777) Resolving deltas: 46% (818/1777) Resolving deltas: 47% (836/1777) Resolving deltas: 48% (853/1777) Resolving deltas: 49% (871/1777) Resolving deltas: 50% (889/1777) Resolving deltas: 51% (907/1777) Resolving deltas: 52% (925/1777) Resolving deltas: 53% (942/1777) Resolving deltas: 54% (960/1777) Resolving deltas: 55% (978/1777) Resolving deltas: 56% (996/1777) Resolving deltas: 57% (1013/1777) Resolving deltas: 58% (1031/1777) Resolving deltas: 59% (1049/1777) Resolving deltas: 60% (1067/1777) Resolving deltas: 61% (1084/1777) Resolving deltas: 62% (1102/1777) Resolving deltas: 63% (1120/1777) Resolving deltas: 64% (1138/1777) Resolving deltas: 65% (1156/1777) Resolving deltas: 66% (1173/1777) Resolving deltas: 67% (1191/1777) Resolving deltas: 68% (1209/1777) Resolving deltas: 69% (1227/1777) Resolving deltas: 70% (1244/1777) Resolving deltas: 71% (1262/1777) Resolving deltas: 72% (1280/1777) Resolving deltas: 73% (1298/1777) Resolving deltas: 74% (1315/1777) Resolving deltas: 75% (1334/1777) Resolving deltas: 76% (1351/1777) Resolving deltas: 77% (1369/1777) Resolving deltas: 78% (1387/1777) Resolving deltas: 79% (1404/1777) Resolving deltas: 80% (1422/1777) Resolving deltas: 81% (1440/1777) Resolving deltas: 82% (1458/1777) Resolving deltas: 83% (1475/1777) Resolving deltas: 84% (1493/1777) Resolving deltas: 85% (1511/1777) Resolving deltas: 86% (1529/1777) Resolving deltas: 87% (1546/1777) Resolving deltas: 88% (1564/1777) Resolving deltas: 89% (1582/1777) Resolving deltas: 90% (1600/1777) Resolving deltas: 91% (1618/1777) Resolving deltas: 92% (1635/1777) Resolving deltas: 93% (1653/1777) Resolving deltas: 94% (1671/1777) Resolving deltas: 95% (1689/1777) Resolving deltas: 96% (1706/1777) Resolving deltas: 97% (1724/1777) Resolving deltas: 98% (1742/1777) Resolving deltas: 99% (1760/1777) Resolving deltas: 100% (1777/1777) Resolving deltas: 100% (1777/1777), done. HEAD is now at 0e7b861 [release-v3.29] Auto pick #10466: Pin ctlb programs (#10467) 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: ubuntu2004 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 # Semaphore mounts a copy-on-write FS as /var/lib/docker in order to provide a pre-loaded cache of # some images. However, the cache is not useful to us and the copy-on-write FS is a big problem given # how much we churn docker containers during the build. Disable it. - sudo systemctl stop docker - sudo umount /var/lib/docker && sudo killall qemu-nbd || true - sudo systemctl start docker - echo $DOCKERHUB_PASSWORD | docker login --username "$DOCKERHUB_USERNAME" --password-stdin # Disable initramfs update to save space on the Semaphore VM (and we don't need it because we're not going to reboot). - sudo apt-get install -y -u crudini - sudo crudini --set /etc/initramfs-tools/update-initramfs.conf '' update_initramfs no - cat /etc/initramfs-tools/update-initramfs.conf 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'" # 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 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: 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: agent: machine: type: f1-standard-2 os_image: ubuntu2004 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: - cni-plugin 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 AZURE_RESOURCE_GROUP=${USER}-capz-win-cni-${SEMAPHORE_WORKFLOW_ID:0:8}-rg - 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 execution_time_limit: minutes: 60 commands: - ../.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: agent: machine: type: f1-standard-2 os_image: ubuntu2004 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.tar calico/felix:latest-amd64 - "cache store felix-image-${SEMAPHORE_GIT_SHA} /tmp/calico-felix.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. Skip building protofbufs because the build fails on ARM due to missing # image. We know they are up-to-date because an earlier build job checks already. - ../.semaphore/run-and-monitor build-$ARCH.log make build ARCH=$ARCH SKIP_PROTOBUF=true - 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 semaphore/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 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: 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.tar - docker tag calico/felix:latest-amd64 felix:latest-amd64 - rm /tmp/calico-felix.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 - 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=8 - 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: kube-controllers run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/kube-controllers/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: agent: machine: type: f1-standard-2 os_image: ubuntu2004 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: agent: machine: type: f1-standard-2 os_image: ubuntu2004 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 - name: Typha run: when: "false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: agent: machine: type: f1-standard-2 os_image: ubuntu2004 prologue: commands: - cd typha jobs: - name: "Typha: UT and FV tests" commands: - ../.semaphore/run-and-monitor make-ci.log make ci EXCEPT=k8sfv-test 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: key-cert-provisioner run: when: "false or change_in(['/*', '/key-cert-provisioner/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']})" dependencies: - Prerequisites task: agent: machine: type: f1-standard-2 os_image: ubuntu2004 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 # Install all the packages that would trigger an initramfs update using a workaround # for limited /boot partition space in the ubuntu2004 image - sudo apt update - sudo rsync -av /boot/ /boot2/ - sudo mount --bind /boot2 /boot - sudo apt install -y cryptsetup lsscsi open-iscsi thin-provisioning-tools - sudo umount /boot - sudo rsync -av /boot2/ /boot/ --exclude "*.new" --exclude "*.dpkg-bak" --delete --inplace - sudo rm -rf /boot2/ - 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: release 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: make 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 42 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(['/*', '/api/', '/libcalico-go/', '/kube-controllers/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 021 | Location: [blocks 19 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 022 | Location: [blocks 20 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']}) 023 | Location: [blocks 21 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/felix/', '/confd/', '/node/']) 024 | Location: [blocks 22 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/felix/', '/confd/', '/node/']) 025 | Location: [blocks 23 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']}) 026 | Location: [blocks 24 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/pod2daemon/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 027 | Location: [blocks 25 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/api/', '/libcalico-go/', '/typha/', '/hack/test/certs/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 028 | Location: [blocks 26 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/key-cert-provisioner/'], {exclude: ['/**/.gitignore', '/**/README.md', '/**/LICENSE']}) 029 | Location: [blocks 27 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/networking-calico/']) 030 | Location: [blocks 28 run when] | File: .semaphore/semaphore.yml | Expression: false or change_in(['/*', '/release/'], {exclude: ['/**/.gitignore', '/**/*.md', '/**/LICENSE']}) 031 | Location: [promotions 2 auto_promote when] | File: .semaphore/semaphore.yml | Expression: result = 'stopped' 032 | Location: [promotions 3 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-.*' 033 | Location: [promotions 4 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 034 | Location: [promotions 5 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 035 | Location: [promotions 6 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 036 | Location: [promotions 7 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 037 | Location: [promotions 8 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 038 | Location: [promotions 9 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 039 | Location: [promotions 10 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 040 | Location: [promotions 11 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master|release-' 041 | Location: [promotions 12 auto_promote when] | File: .semaphore/semaphore.yml | Expression: branch =~ 'master' 042 | Location: [promotions 13 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...0e7b861dabe9b21af29254f006d620aa80ac6431 | fatal: master...0e7b861dabe9b21af29254f006d620aa80ac6431: no merge base | | Running git fetch origin --deepen 100 | Running git diff --shortstat master...0e7b861dabe9b21af29254f006d620aa80ac6431 | Running git diff --name-only master...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 020 | 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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 021 | 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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 022 | 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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 023 | When Expression: false or change_in(['/felix/', '/confd/', '/node/']) | | change_in([["/felix/","/confd/","/node/"]]) | Running git diff --shortstat master...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 024 | When Expression: false or change_in(['/felix/', '/confd/', '/node/']) | | change_in([["/felix/","/confd/","/node/"]]) | Running git diff --shortstat master...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 025 | 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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 026 | 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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 027 | 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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 028 | 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...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 029 | When Expression: false or change_in(['/networking-calico/']) | | change_in([["/networking-calico/"]]) | Running git diff --shortstat master...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 030 | When Expression: false or change_in(['/*', '/release/'], {exclude: ['/**/.gitignore', '/**/*.md', '/**/LICENSE']}) | | change_in([["/*","/release/"],{"exclude":["/**/.gitignore","/**/*.md","/**/LICENSE"]}]) | Running git diff --shortstat master...0e7b861dabe9b21af29254f006d620aa80ac6431 | | Comparing change_in with git diff | (no match) .github/workflows/yamllint.yml | (no match) .gitignore | (no match) .semaphore/.yamllint.yml | (no match) .semaphore/release/cut-branch.yml | (no match) .semaphore/release/hashrelease.yml | (no match) .semaphore/release/release.yml | (no match) .semaphore/semaphore-scheduled-builds.yml | (match) .semaphore/semaphore.yml | | Result: true 031 | When Expression: result = 'stopped' 032 | When Expression: branch =~ 'master|release-.*' 033 | When Expression: branch =~ 'master|release-' 034 | When Expression: branch =~ 'master|release-' 035 | When Expression: branch =~ 'master|release-' 036 | When Expression: branch =~ 'master|release-' 037 | When Expression: branch =~ 'master|release-' 038 | When Expression: branch =~ 'master|release-' 039 | When Expression: branch =~ 'master|release-' 040 | When Expression: branch =~ 'master|release-' 041 | When Expression: branch =~ 'master' 042 | 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/638948a6-1dd9-48a1-a308-e1cf718ad6cf-semaphore.yml.logs artifact push workflow $LOGS_FILE -d $ARTIFACT_LOG_DESTINATION [May 26 17:59:27.166] Successfully pushed artifact for current workflow. [May 26 17:59:27.166] * Local source: .semaphore/semaphore.yml.logs.jsonl. [May 26 17:59:27.166] * Remote destination: artifacts/workflows/2fa9a1f5-813b-44a7-9d79-a2620c620c7c/compilation/638948a6-1dd9-48a1-a308-e1cf718ad6cf-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/638948a6-1dd9-48a1-a308-e1cf718ad6cf-semaphore.yml artifact push workflow $OUTPUT_FILE -d $ARTIFACT_YAML_DESTINATION [May 26 17:59:27.628] Successfully pushed artifact for current workflow. [May 26 17:59:27.629] * Local source: .semaphore/semaphore.yml.output.yml. [May 26 17:59:27.629] * Remote destination: artifacts/workflows/2fa9a1f5-813b-44a7-9d79-a2620c620c7c/compilation/638948a6-1dd9-48a1-a308-e1cf718ad6cf-semaphore.yml.