diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ece1081030..c0bf36709e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -71,7 +71,7 @@ build_nix_master: - if: '$CI_PIPELINE_SOURCE == "schedule"' when: always script: - - nix-build --pure -A emuhawk --arg doCheck true + - nix-build --pure -A emuhawk stage: test build_nix_prev_release: @@ -81,7 +81,7 @@ build_nix_prev_release: - if: '$CI_PIPELINE_SOURCE == "schedule"' when: always script: - - nix-build --pure -A emuhawk-latest --arg doCheck true + - nix-build --pure -A emuhawk-latest stage: test check_style: diff --git a/Dist/historical.nix b/Dist/historical.nix index ba1273fc65..2e6027b172 100644 --- a/Dist/historical.nix +++ b/Dist/historical.nix @@ -216,6 +216,7 @@ in { releaseArtifactNeedsLowercaseAsms = !isVersionAtLeast "2.3.3" version; releaseArtifactNeedsOTKAsmConfig = isVersionAtLeast "2.3.3" version && !isVersionAtLeast "2.5" version; # see a1b501fe5 releaseArtifactNeedsVBDotnetReference = !isVersionAtLeast "2.5.1" version; + testProjectNeedsCIEnvVar = !isVersionAtLeast "2.8" version; # platform-specific tests don't run "in CI" because they assume Arch filesystem conventions (on Linux)--before 908d4519c, `-p:ContinuousIntegrationBuild=true` wasn't respected but `GITLAB_CI` was versionProjNeedsDoubleBuild = !isVersionAtLeast "2.9.1" version; #TODO warn about missing/broken features when eval'ing older releases } // hawkSourceInfo; diff --git a/Dist/packages.nix b/Dist/packages.nix index f620995316..29508c5412 100644 --- a/Dist/packages.nix +++ b/Dist/packages.nix @@ -103,7 +103,7 @@ buildType = buildConfig; #TODO move debug symbols to `!debug`? extraDotnetBuildFlags = let s = lib.optionalString (extraDefines != "") "-p:MachineExtraCompilationFlag=${extraDefines} "; - in "-maxcpucount:$NIX_BUILD_CORES -p:BuildInParallel=true --no-restore ${s}${extraDotnetBuildFlags}"; + in "-maxcpucount:$NIX_BUILD_CORES -p:BuildInParallel=true --no-restore -p:ContinuousIntegrationBuild=true ${s}${extraDotnetBuildFlags}"; buildPhase = '' runHook preBuild @@ -116,14 +116,12 @@ runHook postBuild ''; checkNativeInputs = finalAttrs.buildInputs; - /** TODO WHY DOESN'T THIS WORK */ checkPhase = '' runHook preCheck - export GITLAB_CI=1 # pretend to be in GitLab CI -- platform-specific tests don't run in CI because they assume an Arch filesystem (on Linux hosts) - # from 2.7.1, use standard -p:ContinuousIntegrationBuild=true instead export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${lib.makeLibraryPath finalAttrs.checkNativeInputs}" - Dist/BuildTest${finalAttrs.buildType}.sh ${finalAttrs.extraDotnetBuildFlags} + ${if hawkSourceInfo.testProjectNeedsCIEnvVar then ''export GITLAB_CI=1 + '' else ""}Dist/BuildTest${finalAttrs.buildType}.sh ${finalAttrs.extraDotnetBuildFlags} # can't build w/ extra Analyzers, it fails to restore :( # Dist/Build${finalAttrs.buildType}.sh -p:MachineRunAnalyzersDuringBuild=true ${finalAttrs.extraDotnetBuildFlags} diff --git a/default.nix b/default.nix index bad8c36714..fc5505ecd5 100644 --- a/default.nix +++ b/default.nix @@ -43,7 +43,7 @@ in { , buildConfig ? "Release" # "Debug"/"Release" , debugPInvokes ? false # forwarded to Dist/launch-scripts.nix , debugDotnetHostCrashes ? false # forwarded to Dist/launch-scripts.nix -, doCheck ? false # runs `Dist/BuildTest${buildConfig}.sh` +, doCheck ? true # runs `Dist/BuildTest${buildConfig}.sh` , emuhawkBuildFlavour ? "NixHawk" , extraDefines ? "" # added to ``, so ';'-separated , extraDotnetBuildFlags ? "" # currently passed to EVERY `dotnet build` and `dotnet test` invocation (and does not replace the flags for parallel compilation added by default)