nuke-build / nuke

🏗 The AKEless Build System for C#/.NET
https://nuke.build
MIT License
2.92k stars 356 forks source link

Azure Devops generation skipping targets #1430

Open ProffP opened 6 hours ago

ProffP commented 6 hours ago

Usage Information

2.244.3

Description

When creating a basic hello world project & pushing to azure devops, each target is skipped. image

Starting: Run: Restore
==============================================================================
Task         : Command line
Description  : Run a command line script using Bash on Linux and macOS and cmd.exe on Windows
Version      : 2.244.3
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/command-line
==============================================================================
Generating script.
Script contents:
./build.cmd Restore --skip

========================== Starting Command Output ===========================
/usr/bin/bash --noprofile --norc /home/vsts/work/_temp/43c31e6f-5f5a-49b9-bc42-c43286e23a69.sh
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
Microsoft (R) .NET SDK version 8.0.401
​
███╗   ██╗██╗   ██╗██╗  ██╗███████╗
████╗  ██║██║   ██║██║ ██╔╝██╔════╝
██╔██╗ ██║██║   ██║█████╔╝ █████╗  
██║╚██╗██║██║   ██║██╔═██╗ ██╔══╝  
██║ ╚████║╚██████╔╝██║  ██╗███████╗
╚═╝  ╚═══╝ ╚═════╝ ╚═╝  ╚═╝╚══════╝
​
NUKE Execution Engine version 8.1.0 (Linux,.NETCoreApp,Version=v8.0)
​
​
═══════════════════════════════════════
Target             Status      Duration
───────────────────────────────────────
Restore            Skipped                // Skipped: via parameter
───────────────────────────────────────
Total                            < 1sec
═══════════════════════════════════════
​
Build succeeded on 09/29/2024 18:51:41. \(^ᴗ^)/

Finishing: Run: Restore

Reproduction Steps

using System;
using System.Linq;
using Nuke.Common;
using Nuke.Common.CI;
using Nuke.Common.CI.AzurePipelines;
using Nuke.Common.Execution;
using Nuke.Common.IO;
using Nuke.Common.ProjectModel;
using Nuke.Common.Tooling;
using Nuke.Common.Utilities.Collections;
using Serilog;
using static Nuke.Common.EnvironmentInfo;
using static Nuke.Common.IO.FileSystemTasks;
using static Nuke.Common.IO.PathConstruction;

[AzurePipelines(
    AzurePipelinesImage.UbuntuLatest,
    InvokedTargets = [nameof(Compile)])]
class Build : NukeBuild
{
    /// Support plugins are available for:
    ///   - JetBrains ReSharper        https://nuke.build/resharper
    ///   - JetBrains Rider            https://nuke.build/rider
    ///   - Microsoft VisualStudio     https://nuke.build/visualstudio
    ///   - Microsoft VSCode           https://nuke.build/vscode

    public static int Main () => Execute<Build>(x => x.Compile);

    [Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")]
    readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release;

    AzurePipelines AzurePipelines => AzurePipelines.Instance;

    Target Clean => _ => _
        .Before(Restore)
        .Executes(() =>
        {
        });

    Target Restore => _ => _
        .Executes(() =>
        {
            Log.Information(AzurePipelines.BuildUri);
            Log.Information("Restore");
        });

    Target Compile => _ => _
        .DependsOn(Restore)
        .Executes(() =>
        {
            Log.Information(AzurePipelines.BuildUri);
            Log.Information("Compile");
        });

}

Expected Behavior

That each target is run on the build agent

Actual Behavior

Each step launches the Nuke script, but the target is skipped

Regression?

No response

Known Workarounds

No response

Could you help with a pull-request?

No

ProffP commented 5 hours ago

It seems that this is an issue of the --skip parameter. Downgrading to 8.0.0 seemed to resolve the issue for now.