mirror of
https://github.com/actions/runner.git
synced 2025-12-10 12:36:23 +00:00
37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using GitHub.DistributedTask.ObjectTemplating.Schema;
|
|
|
|
namespace GitHub.DistributedTask.Pipelines.ObjectTemplating
|
|
{
|
|
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
public static class PipelineTemplateSchemaFactory
|
|
{
|
|
public static TemplateSchema GetSchema()
|
|
{
|
|
if (s_schema == null)
|
|
{
|
|
var assembly = Assembly.GetExecutingAssembly();
|
|
var json = default(String);
|
|
using (var stream = assembly.GetManifestResourceStream("GitHub.DistributedTask.Pipelines.ObjectTemplating.workflow-v1.0.json"))
|
|
using (var streamReader = new StreamReader(stream))
|
|
{
|
|
json = streamReader.ReadToEnd();
|
|
}
|
|
|
|
var objectReader = new JsonObjectReader(null, json);
|
|
var schema = TemplateSchema.Load(objectReader);
|
|
Interlocked.CompareExchange(ref s_schema, schema, null);
|
|
}
|
|
|
|
return s_schema;
|
|
}
|
|
|
|
private static TemplateSchema s_schema;
|
|
}
|
|
}
|