From aa27f987b4eed62a1c763de3b902e404b90b0820 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Sat, 20 Feb 2021 18:00:35 +0000 Subject: [PATCH] Cirrus: Factor out compiler project into its own tasks --- .cirrus.yml | 245 ++++++++++++++++++++++++++++++++++++---- tools/cirrus_gen_yml.sh | 18 ++- 2 files changed, 236 insertions(+), 27 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index f354753..c3f2945 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -32,7 +32,7 @@ release_linux_x86_64_download_docker_builder: build_script: - "./tools/cirrus_build_project.sh plain-binaries release linux x86_64 0" -release_linux_x86_64_goeasyconfig_1_docker_builder: +release_linux_x86_64_gcc_1_docker_builder: timeout_in: 120m out_release_linux_x86_64_cache: folder: out @@ -67,11 +67,50 @@ release_linux_x86_64_goeasyconfig_1_docker_builder: - sleep 110m - ./tools/container-interrupt.sh build_script: - - "./tools/cirrus_build_project.sh goeasyconfig release linux x86_64 1" + - "./tools/cirrus_build_project.sh gcc release linux x86_64 1" depends_on: - "release_linux_x86_64_download" -release_linux_x86_64_goeasyconfig_2_docker_builder: +release_linux_x86_64_gcc_2_docker_builder: + timeout_in: 120m + out_release_linux_x86_64_cache: + folder: out + fingerprint_script: + - "echo out_release_linux_x86_64" + reupload_on_changes: true + populate_script: + - "mkdir -p out" + git_release_linux_x86_64_cache: + folder: git_clones + fingerprint_script: + - "echo git_release_linux_x86_64" + reupload_on_changes: true + populate_script: + - "mkdir -p git_clones" + interrupted_aa_release_linux_x86_64_cache: + folder: tmp/interrupted_dirs.tar.gz.partaa.folder + fingerprint_script: + - "echo interrupted_aa_release_linux_x86_64" + reupload_on_changes: true + interrupted_ab_release_linux_x86_64_cache: + folder: tmp/interrupted_dirs.tar.gz.partab.folder + fingerprint_script: + - "echo interrupted_ab_release_linux_x86_64" + reupload_on_changes: true + interrupted_ac_release_linux_x86_64_cache: + folder: tmp/interrupted_dirs.tar.gz.partac.folder + fingerprint_script: + - "echo interrupted_ac_release_linux_x86_64" + reupload_on_changes: true + checkpoint_background_script: + - sleep 110m + - ./tools/container-interrupt.sh + build_script: + - "./tools/cirrus_build_project.sh gcc release linux x86_64 1" + depends_on: + - "release_linux_x86_64_gcc_1" + +release_linux_x86_64_goeasyconfig_1_docker_builder: timeout_in: 120m out_release_linux_x86_64_cache: folder: out @@ -108,7 +147,7 @@ release_linux_x86_64_goeasyconfig_2_docker_builder: build_script: - "./tools/cirrus_build_project.sh goeasyconfig release linux x86_64 1" depends_on: - - "release_linux_x86_64_goeasyconfig_1" + - "release_linux_x86_64_gcc_2" release_linux_x86_64_ncdns_1_docker_builder: timeout_in: 120m @@ -147,7 +186,7 @@ release_linux_x86_64_ncdns_1_docker_builder: build_script: - "./tools/cirrus_build_project.sh ncdns release linux x86_64 1" depends_on: - - "release_linux_x86_64_goeasyconfig_2" + - "release_linux_x86_64_goeasyconfig_1" release_linux_x86_64_ncp11_1_docker_builder: timeout_in: 120m @@ -339,7 +378,7 @@ release_linux_i686_download_docker_builder: build_script: - "./tools/cirrus_build_project.sh plain-binaries release linux i686 0" -release_linux_i686_goeasyconfig_1_docker_builder: +release_linux_i686_gcc_1_docker_builder: timeout_in: 120m out_release_linux_i686_cache: folder: out @@ -374,11 +413,50 @@ release_linux_i686_goeasyconfig_1_docker_builder: - sleep 110m - ./tools/container-interrupt.sh build_script: - - "./tools/cirrus_build_project.sh goeasyconfig release linux i686 1" + - "./tools/cirrus_build_project.sh gcc release linux i686 1" depends_on: - "release_linux_i686_download" -release_linux_i686_goeasyconfig_2_docker_builder: +release_linux_i686_gcc_2_docker_builder: + timeout_in: 120m + out_release_linux_i686_cache: + folder: out + fingerprint_script: + - "echo out_release_linux_i686" + reupload_on_changes: true + populate_script: + - "mkdir -p out" + git_release_linux_i686_cache: + folder: git_clones + fingerprint_script: + - "echo git_release_linux_i686" + reupload_on_changes: true + populate_script: + - "mkdir -p git_clones" + interrupted_aa_release_linux_i686_cache: + folder: tmp/interrupted_dirs.tar.gz.partaa.folder + fingerprint_script: + - "echo interrupted_aa_release_linux_i686" + reupload_on_changes: true + interrupted_ab_release_linux_i686_cache: + folder: tmp/interrupted_dirs.tar.gz.partab.folder + fingerprint_script: + - "echo interrupted_ab_release_linux_i686" + reupload_on_changes: true + interrupted_ac_release_linux_i686_cache: + folder: tmp/interrupted_dirs.tar.gz.partac.folder + fingerprint_script: + - "echo interrupted_ac_release_linux_i686" + reupload_on_changes: true + checkpoint_background_script: + - sleep 110m + - ./tools/container-interrupt.sh + build_script: + - "./tools/cirrus_build_project.sh gcc release linux i686 1" + depends_on: + - "release_linux_i686_gcc_1" + +release_linux_i686_goeasyconfig_1_docker_builder: timeout_in: 120m out_release_linux_i686_cache: folder: out @@ -415,7 +493,7 @@ release_linux_i686_goeasyconfig_2_docker_builder: build_script: - "./tools/cirrus_build_project.sh goeasyconfig release linux i686 1" depends_on: - - "release_linux_i686_goeasyconfig_1" + - "release_linux_i686_gcc_2" release_linux_i686_ncdns_1_docker_builder: timeout_in: 120m @@ -454,7 +532,7 @@ release_linux_i686_ncdns_1_docker_builder: build_script: - "./tools/cirrus_build_project.sh ncdns release linux i686 1" depends_on: - - "release_linux_i686_goeasyconfig_2" + - "release_linux_i686_goeasyconfig_1" release_linux_i686_ncp11_1_docker_builder: timeout_in: 120m @@ -646,7 +724,7 @@ release_windows_x86_64_download_docker_builder: build_script: - "./tools/cirrus_build_project.sh plain-binaries release windows x86_64 0" -release_windows_x86_64_goeasyconfig_1_docker_builder: +release_windows_x86_64_mingw-w64_1_docker_builder: timeout_in: 120m out_release_windows_x86_64_cache: folder: out @@ -681,11 +759,50 @@ release_windows_x86_64_goeasyconfig_1_docker_builder: - sleep 110m - ./tools/container-interrupt.sh build_script: - - "./tools/cirrus_build_project.sh goeasyconfig release windows x86_64 1" + - "./tools/cirrus_build_project.sh mingw-w64 release windows x86_64 1" depends_on: - "release_windows_x86_64_download" -release_windows_x86_64_goeasyconfig_2_docker_builder: +release_windows_x86_64_mingw-w64_2_docker_builder: + timeout_in: 120m + out_release_windows_x86_64_cache: + folder: out + fingerprint_script: + - "echo out_release_windows_x86_64" + reupload_on_changes: true + populate_script: + - "mkdir -p out" + git_release_windows_x86_64_cache: + folder: git_clones + fingerprint_script: + - "echo git_release_windows_x86_64" + reupload_on_changes: true + populate_script: + - "mkdir -p git_clones" + interrupted_aa_release_windows_x86_64_cache: + folder: tmp/interrupted_dirs.tar.gz.partaa.folder + fingerprint_script: + - "echo interrupted_aa_release_windows_x86_64" + reupload_on_changes: true + interrupted_ab_release_windows_x86_64_cache: + folder: tmp/interrupted_dirs.tar.gz.partab.folder + fingerprint_script: + - "echo interrupted_ab_release_windows_x86_64" + reupload_on_changes: true + interrupted_ac_release_windows_x86_64_cache: + folder: tmp/interrupted_dirs.tar.gz.partac.folder + fingerprint_script: + - "echo interrupted_ac_release_windows_x86_64" + reupload_on_changes: true + checkpoint_background_script: + - sleep 110m + - ./tools/container-interrupt.sh + build_script: + - "./tools/cirrus_build_project.sh mingw-w64 release windows x86_64 1" + depends_on: + - "release_windows_x86_64_mingw-w64_1" + +release_windows_x86_64_goeasyconfig_1_docker_builder: timeout_in: 120m out_release_windows_x86_64_cache: folder: out @@ -722,7 +839,7 @@ release_windows_x86_64_goeasyconfig_2_docker_builder: build_script: - "./tools/cirrus_build_project.sh goeasyconfig release windows x86_64 1" depends_on: - - "release_windows_x86_64_goeasyconfig_1" + - "release_windows_x86_64_mingw-w64_2" release_windows_x86_64_ncdns_1_docker_builder: timeout_in: 120m @@ -761,7 +878,7 @@ release_windows_x86_64_ncdns_1_docker_builder: build_script: - "./tools/cirrus_build_project.sh ncdns release windows x86_64 1" depends_on: - - "release_windows_x86_64_goeasyconfig_2" + - "release_windows_x86_64_goeasyconfig_1" release_windows_x86_64_ncp11_1_docker_builder: timeout_in: 120m @@ -953,7 +1070,7 @@ release_windows_i686_download_docker_builder: build_script: - "./tools/cirrus_build_project.sh plain-binaries release windows i686 0" -release_windows_i686_goeasyconfig_1_docker_builder: +release_windows_i686_mingw-w64_1_docker_builder: timeout_in: 120m out_release_windows_i686_cache: folder: out @@ -988,11 +1105,50 @@ release_windows_i686_goeasyconfig_1_docker_builder: - sleep 110m - ./tools/container-interrupt.sh build_script: - - "./tools/cirrus_build_project.sh goeasyconfig release windows i686 1" + - "./tools/cirrus_build_project.sh mingw-w64 release windows i686 1" depends_on: - "release_windows_i686_download" -release_windows_i686_goeasyconfig_2_docker_builder: +release_windows_i686_mingw-w64_2_docker_builder: + timeout_in: 120m + out_release_windows_i686_cache: + folder: out + fingerprint_script: + - "echo out_release_windows_i686" + reupload_on_changes: true + populate_script: + - "mkdir -p out" + git_release_windows_i686_cache: + folder: git_clones + fingerprint_script: + - "echo git_release_windows_i686" + reupload_on_changes: true + populate_script: + - "mkdir -p git_clones" + interrupted_aa_release_windows_i686_cache: + folder: tmp/interrupted_dirs.tar.gz.partaa.folder + fingerprint_script: + - "echo interrupted_aa_release_windows_i686" + reupload_on_changes: true + interrupted_ab_release_windows_i686_cache: + folder: tmp/interrupted_dirs.tar.gz.partab.folder + fingerprint_script: + - "echo interrupted_ab_release_windows_i686" + reupload_on_changes: true + interrupted_ac_release_windows_i686_cache: + folder: tmp/interrupted_dirs.tar.gz.partac.folder + fingerprint_script: + - "echo interrupted_ac_release_windows_i686" + reupload_on_changes: true + checkpoint_background_script: + - sleep 110m + - ./tools/container-interrupt.sh + build_script: + - "./tools/cirrus_build_project.sh mingw-w64 release windows i686 1" + depends_on: + - "release_windows_i686_mingw-w64_1" + +release_windows_i686_goeasyconfig_1_docker_builder: timeout_in: 120m out_release_windows_i686_cache: folder: out @@ -1029,7 +1185,7 @@ release_windows_i686_goeasyconfig_2_docker_builder: build_script: - "./tools/cirrus_build_project.sh goeasyconfig release windows i686 1" depends_on: - - "release_windows_i686_goeasyconfig_1" + - "release_windows_i686_mingw-w64_2" release_windows_i686_ncdns_1_docker_builder: timeout_in: 120m @@ -1068,7 +1224,7 @@ release_windows_i686_ncdns_1_docker_builder: build_script: - "./tools/cirrus_build_project.sh ncdns release windows i686 1" depends_on: - - "release_windows_i686_goeasyconfig_2" + - "release_windows_i686_goeasyconfig_1" release_windows_i686_ncp11_1_docker_builder: timeout_in: 120m @@ -1260,7 +1416,7 @@ release_osx_x86_64_download_docker_builder: build_script: - "./tools/cirrus_build_project.sh plain-binaries release osx x86_64 0" -release_osx_x86_64_goeasyconfig_1_docker_builder: +release_osx_x86_64_macosx-toolchain_1_docker_builder: timeout_in: 120m out_release_osx_x86_64_cache: folder: out @@ -1295,11 +1451,50 @@ release_osx_x86_64_goeasyconfig_1_docker_builder: - sleep 110m - ./tools/container-interrupt.sh build_script: - - "./tools/cirrus_build_project.sh goeasyconfig release osx x86_64 1" + - "./tools/cirrus_build_project.sh macosx-toolchain release osx x86_64 1" depends_on: - "release_osx_x86_64_download" -release_osx_x86_64_goeasyconfig_2_docker_builder: +release_osx_x86_64_macosx-toolchain_2_docker_builder: + timeout_in: 120m + out_release_osx_x86_64_cache: + folder: out + fingerprint_script: + - "echo out_release_osx_x86_64" + reupload_on_changes: true + populate_script: + - "mkdir -p out" + git_release_osx_x86_64_cache: + folder: git_clones + fingerprint_script: + - "echo git_release_osx_x86_64" + reupload_on_changes: true + populate_script: + - "mkdir -p git_clones" + interrupted_aa_release_osx_x86_64_cache: + folder: tmp/interrupted_dirs.tar.gz.partaa.folder + fingerprint_script: + - "echo interrupted_aa_release_osx_x86_64" + reupload_on_changes: true + interrupted_ab_release_osx_x86_64_cache: + folder: tmp/interrupted_dirs.tar.gz.partab.folder + fingerprint_script: + - "echo interrupted_ab_release_osx_x86_64" + reupload_on_changes: true + interrupted_ac_release_osx_x86_64_cache: + folder: tmp/interrupted_dirs.tar.gz.partac.folder + fingerprint_script: + - "echo interrupted_ac_release_osx_x86_64" + reupload_on_changes: true + checkpoint_background_script: + - sleep 110m + - ./tools/container-interrupt.sh + build_script: + - "./tools/cirrus_build_project.sh macosx-toolchain release osx x86_64 1" + depends_on: + - "release_osx_x86_64_macosx-toolchain_1" + +release_osx_x86_64_goeasyconfig_1_docker_builder: timeout_in: 120m out_release_osx_x86_64_cache: folder: out @@ -1336,7 +1531,7 @@ release_osx_x86_64_goeasyconfig_2_docker_builder: build_script: - "./tools/cirrus_build_project.sh goeasyconfig release osx x86_64 1" depends_on: - - "release_osx_x86_64_goeasyconfig_1" + - "release_osx_x86_64_macosx-toolchain_2" release_osx_x86_64_ncdns_1_docker_builder: timeout_in: 120m @@ -1375,7 +1570,7 @@ release_osx_x86_64_ncdns_1_docker_builder: build_script: - "./tools/cirrus_build_project.sh ncdns release osx x86_64 1" depends_on: - - "release_osx_x86_64_goeasyconfig_2" + - "release_osx_x86_64_goeasyconfig_1" release_osx_x86_64_ncp11_1_docker_builder: timeout_in: 120m diff --git a/tools/cirrus_gen_yml.sh b/tools/cirrus_gen_yml.sh index a2fa53a..56fbb15 100755 --- a/tools/cirrus_gen_yml.sh +++ b/tools/cirrus_gen_yml.sh @@ -44,8 +44,22 @@ print_os_arch () { echo "" # TODO fine-tune this list - for PROJECT in goeasyconfig.1 goeasyconfig.2 ncdns.1 ncp11.1 ncprop279.1 plain-binaries.1 release.1; do + for PROJECT in compiler.1 compiler.2 goeasyconfig.1 ncdns.1 ncp11.1 ncprop279.1 plain-binaries.1 release.1; do PROJECT_BASE=$(echo $PROJECT | cut -d . -f 1) + if [[ "$PROJECT_BASE" == "compiler" ]]; then + if [[ "$OS" == "android" ]]; then + PROJECT_BASE=android-toolchain + fi + if [[ "$OS" == "linux" ]]; then + PROJECT_BASE=gcc + fi + if [[ "$OS" == "windows" ]]; then + PROJECT_BASE=mingw-w64 + fi + if [[ "$OS" == "osx" ]]; then + PROJECT_BASE=macosx-toolchain + fi + fi PROJECT_ITER=$(echo $PROJECT | cut -d . -f 2) echo "${CHANNEL}_${OS}_${ARCH}_${PROJECT_BASE}_${PROJECT_ITER}_docker_builder: timeout_in: 120m @@ -85,7 +99,7 @@ print_os_arch () { - \"./tools/cirrus_build_project.sh ${PROJECT_BASE} ${CHANNEL} ${OS} ${ARCH} 1\"" # Depend on previous project - if [[ "$PROJECT" == "goeasyconfig.1" ]]; then + if [[ "$PROJECT" == "compiler.1" ]]; then echo " depends_on: - \"${CHANNEL}_${OS}_${ARCH}_download\"" else