Add PR workflow (#4956)

This commit is contained in:
Marko Lahma 2024-02-19 00:36:24 +02:00 committed by GitHub
parent c3f95bddc3
commit 01c34e6b13
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 35 additions and 60 deletions

33
.github/workflows/pr.yml vendored Normal file
View file

@ -0,0 +1,33 @@
# ------------------------------------------------------------------------------
# <auto-generated>
#
# This code was generated.
#
# - To turn off auto-generation set:
#
# [GitHubActions (AutoGenerate = false)]
#
# - To trigger manual generation invoke:
#
# nuke --generate-configuration GitHubActions_pr --host GitHubActions
#
# </auto-generated>
# ------------------------------------------------------------------------------
name: pr
on:
pull_request:
branches:
- main
paths:
- '**/*'
jobs:
ubuntu-latest:
name: ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: 'Run: Compile, Test, Pack'
run: ./build.cmd Compile Test Pack

View file

@ -1,56 +1,14 @@
using System.Collections.Generic;
using Nuke.Common.CI.GitHubActions;
using Nuke.Common.CI.GitHubActions.Configuration;
using Nuke.Common.Execution;
using Nuke.Common.Utilities;
using Nuke.Components;
[CustomGitHubActions(
[GitHubActions(
"pr",
GitHubActionsImage.UbuntuLatest,
OnPullRequestBranches = ["main"],
OnPullRequestIncludePaths = ["**/*"],
OnPullRequestExcludePaths = ["docs/**/*", "package.json", "package-lock.json", "readme.md"],
PublishArtifacts = false,
InvokedTargets = [nameof(ICompile.Compile), nameof(ITest.Test), nameof(IPack.Pack)],
CacheKeyFiles = []
)
]
public partial class Build;
class CustomGitHubActionsAttribute : GitHubActionsAttribute
{
public CustomGitHubActionsAttribute(string name, GitHubActionsImage image, params GitHubActionsImage[] images) : base(name, image, images)
{
}
protected override GitHubActionsJob GetJobs(GitHubActionsImage image, IReadOnlyCollection<ExecutableTarget> relevantTargets)
{
var job = base.GetJobs(image, relevantTargets);
var newSteps = new List<GitHubActionsStep>(job.Steps);
newSteps.Insert(0, new GitHubActionsUseGnuTarStep());
job.Steps = newSteps.ToArray();
return job;
}
}
class GitHubActionsUseGnuTarStep : GitHubActionsStep
{
public override void Write(CustomFileWriter writer)
{
writer.WriteLine("- if: ${{ runner.os == 'Windows' }}");
using (writer.Indent())
{
writer.WriteLine("name: 'Use GNU tar'");
writer.WriteLine("shell: cmd");
writer.WriteLine("run: |");
using (writer.Indent())
{
writer.WriteLine("echo \"Adding GNU tar to PATH\"");
writer.WriteLine("echo C:\\Program Files\\Git\\usr\\bin>>\"%GITHUB_PATH%\"");
}
}
}
}
public partial class Build;

View file

@ -1,16 +0,0 @@
using System;
using System.ComponentModel;
using System.Linq;
using Nuke.Common.Tooling;
[TypeConverter(typeof(TypeConverter<Configuration>))]
public class Configuration : Enumeration
{
public static Configuration Debug = new Configuration { Value = nameof(Debug) };
public static Configuration Release = new Configuration { Value = nameof(Release) };
public static implicit operator string(Configuration configuration)
{
return configuration.Value;
}
}