Uploaded many more actions.
This commit is contained in:
@@ -4,6 +4,9 @@ set -o pipefail
|
|||||||
|
|
||||||
# Add root tools to Path.
|
# Add root tools to Path.
|
||||||
export PATH="$PATH:/root/.dotnet/tools/"
|
export PATH="$PATH:/root/.dotnet/tools/"
|
||||||
|
# Define a local application data folder.
|
||||||
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
|
mkdir -p "$XDG_DATA_HOME"
|
||||||
|
|
||||||
PROGRAM=${PROGRAM:-"dotnet"}
|
PROGRAM=${PROGRAM:-"dotnet"}
|
||||||
exec 5>&1
|
exec 5>&1
|
||||||
|
|||||||
101
dotnet/dotnet-pack-and-compare/action.yaml
Normal file
101
dotnet/dotnet-pack-and-compare/action.yaml
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
name: nuget-pack-and-compare
|
||||||
|
description: "Pack a .sln or .csproj file into a .nupkg."
|
||||||
|
inputs:
|
||||||
|
name:
|
||||||
|
description: "The name of the package."
|
||||||
|
required: true
|
||||||
|
project:
|
||||||
|
description: "The .sln or .csproj project to pack."
|
||||||
|
required: true
|
||||||
|
configuration:
|
||||||
|
description: "The build configuration to use. Default: Release"
|
||||||
|
required: false
|
||||||
|
default: "Release"
|
||||||
|
additionalArgs:
|
||||||
|
description: "Additional arguments to use when packing project."
|
||||||
|
required: false
|
||||||
|
keepSymbols:
|
||||||
|
description: "Keep the '.symbols.nupkg' artifacts. Default: true"
|
||||||
|
required: false
|
||||||
|
default: "true"
|
||||||
|
defaultVersion:
|
||||||
|
description: "Version of the .nupkg file."
|
||||||
|
required: true
|
||||||
|
default: 1.0.0
|
||||||
|
outputDirectory:
|
||||||
|
description: "Directory for the output .nupkg."
|
||||||
|
required: true
|
||||||
|
default: "out"
|
||||||
|
url:
|
||||||
|
description: "Url of the GitHub server instance."
|
||||||
|
required: true
|
||||||
|
default: ${{ github.server_url }}
|
||||||
|
organization:
|
||||||
|
description: "Organization to search."
|
||||||
|
required: true
|
||||||
|
default: ${{ github.repository_owner }}
|
||||||
|
username:
|
||||||
|
description: "Username for the nuget repository to search."
|
||||||
|
required: true
|
||||||
|
default: ${{ github.actor }}
|
||||||
|
password:
|
||||||
|
description: "Password or ApiKey of the nuget repository to search."
|
||||||
|
required: true
|
||||||
|
default: ${{ github.token }}
|
||||||
|
outputs:
|
||||||
|
nupkg:
|
||||||
|
description: "The generated output .nupkg file."
|
||||||
|
value: ${{ steps.package.outputs.nupkg }}
|
||||||
|
nupkgName:
|
||||||
|
description: "The generated output .nupkg file's name."
|
||||||
|
value: ${{ steps.package.outputs.nupkgName }}
|
||||||
|
hasChanged:
|
||||||
|
description: "Whether or not the .nupkg files match."
|
||||||
|
value: ${{ steps.compare.outputs.success != 'true' }}
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: "Own workspace."
|
||||||
|
uses: act/common/utils/chown@master
|
||||||
|
- name: "Get the next version of the package."
|
||||||
|
uses: act/common/nuget/nuget-get-next-branched-version@master
|
||||||
|
id: nuget
|
||||||
|
with:
|
||||||
|
name: ${{ inputs.name }}
|
||||||
|
defaultVersion: ${{ inputs.defaultVersion }}
|
||||||
|
url: ${{ inputs.url }}
|
||||||
|
organization: ${{ inputs.organization }}
|
||||||
|
apiToken: ${{ inputs.password }}
|
||||||
|
- name: "Build .nupkg."
|
||||||
|
uses: act/common/dotnet/dotnet-pack@master
|
||||||
|
with:
|
||||||
|
project: ${{ inputs.project || inputs.name }}
|
||||||
|
id: ${{ inputs.name }}
|
||||||
|
version: ${{ steps.nuget.outputs.nextVersion }}
|
||||||
|
configuration: ${{ inputs.configuration }}
|
||||||
|
outputDirectory: ${{ inputs.outputDirectory }}
|
||||||
|
keepSymbols: ${{ inputs.keepSymbols }}
|
||||||
|
additionalArgs: ${{ inputs.additionalArgs }}
|
||||||
|
- name: "Generate package outputs."
|
||||||
|
id: package
|
||||||
|
run: |
|
||||||
|
NUPKG_EXT=".nupkg"
|
||||||
|
if [ "${{ inputs.keepSymbols }}" == "true" ]; then
|
||||||
|
NUPKG_EXT=".symbols$NUPKG_EXT"
|
||||||
|
fi
|
||||||
|
NUPKG_NAME="${{ inputs.name }}.${{ steps.nuget.outputs.nextVersion }}$NUPKG_EXT"
|
||||||
|
NUPKG_PATH="${{ inputs.outputDirectory }}/$NUPKG_NAME"
|
||||||
|
echo "nupkg=$NUPKG_PATH" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "nupkgName=$NUPKG_NAME" >> "$GITHUB_OUTPUT"
|
||||||
|
shell: bash
|
||||||
|
- name: "Compare .nupkg to remote .nupkg."
|
||||||
|
if: ${{ steps.nuget.outputs.latestVersion }}
|
||||||
|
id: compare
|
||||||
|
uses: act/common/nuget/nuget-compare-version@master
|
||||||
|
with:
|
||||||
|
lhs: ${{ steps.package.outputs.nupkg }}
|
||||||
|
version: ${{ steps.nuget.outputs.latestVersion }}
|
||||||
|
name: ${{ inputs.name }}
|
||||||
|
username: ${{ inputs.username }}
|
||||||
|
password: ${{ inputs.password }}
|
||||||
|
url: ${{ inputs.url }}/_registry/nuget/${{ inputs.organization }}/index.json
|
||||||
88
dotnet/dotnet-pack/action.yaml
Normal file
88
dotnet/dotnet-pack/action.yaml
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
# Reference: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-pack
|
||||||
|
name: dotnet-pack
|
||||||
|
description: "Pack a .sln or .csproj file into a .nupkg."
|
||||||
|
inputs:
|
||||||
|
project:
|
||||||
|
description: "The .sln or .csproj project to pack."
|
||||||
|
required: true
|
||||||
|
default: .
|
||||||
|
id:
|
||||||
|
description: "The id of the package. Defaults to the AssemblyName."
|
||||||
|
required: false
|
||||||
|
default: ""
|
||||||
|
version:
|
||||||
|
description: "Version of the .nupkg file."
|
||||||
|
required: false
|
||||||
|
default: ""
|
||||||
|
outputDirectory:
|
||||||
|
description: "Directory for the output file."
|
||||||
|
required: true
|
||||||
|
repositoryBranch:
|
||||||
|
description: "The repository branch of the package."
|
||||||
|
required: false
|
||||||
|
default: ${{ github.ref_name }}
|
||||||
|
deterministic:
|
||||||
|
description: "Whether or not the build should be deterministic. Default: true"
|
||||||
|
required: false
|
||||||
|
default: "true"
|
||||||
|
configuration:
|
||||||
|
description: "The build configuration to use. Default: Release"
|
||||||
|
required: false
|
||||||
|
default: "Release"
|
||||||
|
additionalArgs:
|
||||||
|
description: "Additional arguments to use when packing project."
|
||||||
|
required: false
|
||||||
|
keepSymbols:
|
||||||
|
description: "Keep the '.symbols.nupkg' artifacts. Default: true"
|
||||||
|
required: false
|
||||||
|
default: "true"
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: "Parse the version."
|
||||||
|
id: version
|
||||||
|
uses: act/common/utils/version-parse@master
|
||||||
|
with:
|
||||||
|
version: ${{ inputs.version }}
|
||||||
|
- name: "Build the pack command."
|
||||||
|
id: command
|
||||||
|
run: |
|
||||||
|
#https://learn.microsoft.com/en-us/dotnet/standard/library-guidance/versioning
|
||||||
|
MMP_VERSION="${{ steps.version.outputs.major || 0 }}.${{ steps.version.outputs.minor || 0 }}"
|
||||||
|
|
||||||
|
COMMAND="pack \"${{ inputs.project }}\" --output \"${{ inputs.outputDirectory }}\""
|
||||||
|
CONFIG="${{ inputs.configuration }}"
|
||||||
|
if [[ -n "$CONFIG" ]]; then
|
||||||
|
COMMAND="$COMMAND --configuration \"$CONFIG\""
|
||||||
|
fi
|
||||||
|
ID="${{ inputs.id }}"
|
||||||
|
if [[ -n "$ID" ]]; then
|
||||||
|
COMMAND="$COMMAND -p:PackageId=$ID"
|
||||||
|
fi
|
||||||
|
VERSION="${{ inputs.version }}"
|
||||||
|
if [[ -n "$VERSION" ]]; then
|
||||||
|
COMMAND="$COMMAND -p:Version=$VERSION -p:AssemblyVersion=$MM_VERSION"
|
||||||
|
fi
|
||||||
|
BRANCH="${{ inputs.repositoryBranch }}"
|
||||||
|
if [[ -n "$BRANCH" ]]; then
|
||||||
|
COMMAND="$COMMAND -p:RepositoryBranch=$BRANCH"
|
||||||
|
fi
|
||||||
|
DETERMINISTIC="${{ inputs.deterministic }}"
|
||||||
|
if [[ "$DETERMINISTIC" == "true" ]]; then
|
||||||
|
COMMAND="$COMMAND -p:ContinuousIntegrationBuild=$DETERMINISTIC"
|
||||||
|
fi
|
||||||
|
echo "command=$COMMAND ${{ inputs.additionalArgs }}" >> "$GITHUB_OUTPUT"
|
||||||
|
shell: bash
|
||||||
|
- name: "Build the .nupkg file."
|
||||||
|
uses: act/common/dotnet/dotnet-6@master
|
||||||
|
with:
|
||||||
|
command: ${{ steps.command.outputs.command }}
|
||||||
|
- name: "Own artifacts."
|
||||||
|
uses: act/common/utils/chown@master
|
||||||
|
with:
|
||||||
|
file: ${{ inputs.outputDirectory }}
|
||||||
|
- name: "Remove symbols."
|
||||||
|
if: ${{ inputs.keepSymbols == 'false' }}
|
||||||
|
run: |
|
||||||
|
rm -rf "${{ inputs.outputDirectory }}"/*.symbols.nupkg
|
||||||
|
shell: bash
|
||||||
@@ -7,7 +7,10 @@ inputs:
|
|||||||
url:
|
url:
|
||||||
description: "URL of the nuget repository to push to."
|
description: "URL of the nuget repository to push to."
|
||||||
required: true
|
required: true
|
||||||
default: ${{ github.server_url }}/_registry/nuget/${{ github.repository_owner }}/index.json
|
# This is for GitHub.
|
||||||
|
#default: ${{ github.server_url }}/_registry/nuget/${{ github.repository_owner }}/index.json
|
||||||
|
# This is for Gitea.
|
||||||
|
default: ${{ github.server_url }}/api/packages/${{ github.repository_owner }}/nuget/index.json
|
||||||
apiKey:
|
apiKey:
|
||||||
description: "ApiKey of the nuget repository to push to."
|
description: "ApiKey of the nuget repository to push to."
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
106
dotnet/dotnet-test/action.yaml
Normal file
106
dotnet/dotnet-test/action.yaml
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
# Reference: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-test
|
||||||
|
name: dotnet-test
|
||||||
|
description: "Test a .csproj, .sln file, or .dll."
|
||||||
|
inputs:
|
||||||
|
project:
|
||||||
|
description: "The .csproj or .sln project to pack."
|
||||||
|
required: true
|
||||||
|
default: .
|
||||||
|
collect:
|
||||||
|
description: "Enable the data collector. Options: 'Code Coverage', 'XPlat Code Coverage' (for Coverlet)"
|
||||||
|
required: false
|
||||||
|
default: "XPlat Code Coverage"
|
||||||
|
resultsDirectory:
|
||||||
|
description: "Directory for the test results."
|
||||||
|
required: true
|
||||||
|
default: "TestResults"
|
||||||
|
logger:
|
||||||
|
description: "Logger to use. Default: trx"
|
||||||
|
required: false
|
||||||
|
default: "trx"
|
||||||
|
configuration:
|
||||||
|
description: "The build configuration to use. Default: Release"
|
||||||
|
required: false
|
||||||
|
default: "Release"
|
||||||
|
filter:
|
||||||
|
description: "Test filter expression."
|
||||||
|
required: false
|
||||||
|
default: ""
|
||||||
|
additionalArgs:
|
||||||
|
description: "Additional arguments to use when packing project."
|
||||||
|
required: false
|
||||||
|
testFormat:
|
||||||
|
description: "Test format to use when running tests. Default: opencover"
|
||||||
|
required: false
|
||||||
|
default: "opencover"
|
||||||
|
runSettings:
|
||||||
|
description: "Additional runs settings to use when testing the project."
|
||||||
|
required: false
|
||||||
|
default: ""
|
||||||
|
uploadArtifacts:
|
||||||
|
description: "Upload the test output as artifacts. Default: true"
|
||||||
|
required: false
|
||||||
|
default: "true"
|
||||||
|
artifactName:
|
||||||
|
description: "Name of the artifact to upload. Default: TestResults"
|
||||||
|
required: false
|
||||||
|
default: "TestResults"
|
||||||
|
retention-days:
|
||||||
|
description: "Default number of retention days."
|
||||||
|
required: false
|
||||||
|
default: "7"
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: "Build the test command."
|
||||||
|
id: command
|
||||||
|
run: |
|
||||||
|
COMMAND="test \"${{ inputs.project }}\" --nologo --results-directory \"${{ inputs.resultsDirectory }}\""
|
||||||
|
CONFIG="${{ inputs.configuration }}"
|
||||||
|
if [[ -n "$CONFIG" ]]; then
|
||||||
|
COMMAND="$COMMAND --configuration \"$CONFIG\""
|
||||||
|
fi
|
||||||
|
COLLECT="${{ inputs.collect }}"
|
||||||
|
if [[ -n "$COLLECT" ]]; then
|
||||||
|
COMMAND="$COMMAND --collect \"$COLLECT\""
|
||||||
|
fi
|
||||||
|
LOGGER="${{ inputs.logger }}"
|
||||||
|
if [[ -n "$LOGGER" ]]; then
|
||||||
|
COMMAND="$COMMAND --logger \"$LOGGER\""
|
||||||
|
fi
|
||||||
|
FILTER="${{ inputs.filter }}"
|
||||||
|
if [[ -n "$FILTER" ]]; then
|
||||||
|
COMMAND="$COMMAND $FILTER --filter \"$FILTER\""
|
||||||
|
fi
|
||||||
|
ADDITIONAL_ARGS="${{ inputs.additionalArgs }}"
|
||||||
|
if [[ -n "$ADDITIONAL_ARGS" ]]; then
|
||||||
|
COMMAND="$COMMAND $ADDITIONAL_ARGS"
|
||||||
|
fi
|
||||||
|
# For run settings.
|
||||||
|
COMMAND="$COMMAND --"
|
||||||
|
TEST_FORMAT="${{ inputs.testFormat }}"
|
||||||
|
if [[ -n "$TEST_FORMAT" ]]; then
|
||||||
|
COMMAND="$COMMAND DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=\"$TEST_FORMAT\""
|
||||||
|
fi
|
||||||
|
RUN_SETTINGS="${{ inputs.runSettings }}"
|
||||||
|
if [[ -n "$RUN_SETTINGS" ]]; then
|
||||||
|
COMMAND="$COMMAND $RUN_SETTINGS"
|
||||||
|
fi
|
||||||
|
echo "command=$COMMAND" >> "$GITHUB_OUTPUT"
|
||||||
|
shell: bash
|
||||||
|
- name: "Run the Unit Tests."
|
||||||
|
uses: act/common/dotnet/dotnet-6@master
|
||||||
|
with:
|
||||||
|
command: ${{ steps.command.outputs.command }}
|
||||||
|
- name: "Own artifacts."
|
||||||
|
uses: act/common/utils/chown@master
|
||||||
|
with:
|
||||||
|
file: ${{ inputs.resultsDirectory }}
|
||||||
|
- name: "Upload artifacts."
|
||||||
|
if: ${{ !env.ACT && ( inputs.uploadArtifacts == 'true' ) }}
|
||||||
|
uses: https://github.com/actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ inputs.artifactName }}
|
||||||
|
path: ${{ inputs.resultsDirectory }}
|
||||||
|
if-no-files-found: error
|
||||||
|
retention-days: ${{ inputs.retention-days }}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
ARG VERSION=7.0
|
ARG VERSION=9.0
|
||||||
FROM mcr.microsoft.com/dotnet/sdk:$VERSION
|
FROM mcr.microsoft.com/dotnet/sdk:$VERSION
|
||||||
|
|
||||||
RUN apt update
|
RUN apt update
|
||||||
@@ -7,7 +7,8 @@ RUN apt install curl -y
|
|||||||
# Add tools to Path.
|
# Add tools to Path.
|
||||||
RUN echo 'export PATH="$PATH:$HOME/.dotnet/tools/"' | tee -a "$HOME/.bashrc" > /dev/null
|
RUN echo 'export PATH="$PATH:$HOME/.dotnet/tools/"' | tee -a "$HOME/.bashrc" > /dev/null
|
||||||
# Install NugetForUnity tool: https://github.com/GlitchEnzo/NuGetForUnity
|
# Install NugetForUnity tool: https://github.com/GlitchEnzo/NuGetForUnity
|
||||||
RUN dotnet tool install --global NuGetForUnity.Cli
|
ENV NUGETFORUNITY_VERSION=3.1.3
|
||||||
|
RUN dotnet tool install --global NuGetForUnity.Cli --version ${NUGETFORUNITY_VERSION}
|
||||||
|
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
RUN chmod +x /entrypoint.sh
|
RUN chmod +x /entrypoint.sh
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ set -o pipefail
|
|||||||
|
|
||||||
# Add root tools to Path.
|
# Add root tools to Path.
|
||||||
export PATH="$PATH:/root/.dotnet/tools/"
|
export PATH="$PATH:/root/.dotnet/tools/"
|
||||||
|
# Define a local application data folder.
|
||||||
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
|
mkdir -p "$XDG_DATA_HOME"
|
||||||
|
|
||||||
PROGRAM=${PROGRAM:-"dotnet"}
|
PROGRAM=${PROGRAM:-"dotnet"}
|
||||||
exec 5>&1
|
exec 5>&1
|
||||||
|
|||||||
@@ -1,19 +1,7 @@
|
|||||||
#!/usr/bin/env -S dotnet run
|
#!/usr/bin/env -S dotnet run
|
||||||
|
|
||||||
#:package Gitea.Net.API@25.3.*
|
#:package Gitea.Net.API@25.3.*
|
||||||
// static class Program
|
|
||||||
// {
|
|
||||||
// static void Main(string[] args)
|
|
||||||
// {
|
|
||||||
// Run();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// static void Run()
|
|
||||||
// {
|
|
||||||
// // Your code here
|
|
||||||
// Console.WriteLine("Running the program...");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Gitea.Net.Api;
|
using Gitea.Net.Api;
|
||||||
@@ -21,16 +9,11 @@ using Gitea.Net.Client;
|
|||||||
using Gitea.Net.Model;
|
using Gitea.Net.Model;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
|
||||||
Console.WriteLine("Hello, World!");
|
|
||||||
// Console.WriteLine("Environment Variables:");
|
|
||||||
// Console.WriteLine(JsonSerializer.Serialize(Environment.GetEnvironmentVariables()));
|
|
||||||
// Console.WriteLine("Arguments:");
|
|
||||||
// Console.WriteLine(JsonSerializer.Serialize(args));
|
|
||||||
|
|
||||||
|
|
||||||
//string jsonInput = args.Length > 0 ? args[0] : "{}";
|
|
||||||
string jsonInput = Environment.GetEnvironmentVariable("INPUTS") ?? "{}";
|
string jsonInput = Environment.GetEnvironmentVariable("INPUTS") ?? "{}";
|
||||||
Console.WriteLine($"JSON Input: {jsonInput}");
|
const string name = "Download Previous Artifacts";
|
||||||
|
Console.WriteLine($"::group::{name} - Inputs");
|
||||||
|
Console.WriteLine(jsonInput);
|
||||||
|
Console.WriteLine("::endgroup::");
|
||||||
byte[] jsonBytes = Encoding.UTF8.GetBytes(jsonInput);
|
byte[] jsonBytes = Encoding.UTF8.GetBytes(jsonInput);
|
||||||
using MemoryStream memoryStream = new(jsonBytes);
|
using MemoryStream memoryStream = new(jsonBytes);
|
||||||
|
|
||||||
@@ -49,9 +32,7 @@ string owner = configuration["GITHUB_REPOSITORY_OWNER"]!;
|
|||||||
string repoName = configuration["GITHUB_REPOSITORY"]!;
|
string repoName = configuration["GITHUB_REPOSITORY"]!;
|
||||||
repoName = Path.GetFileName(repoName);
|
repoName = Path.GetFileName(repoName);
|
||||||
|
|
||||||
Console.WriteLine($"Owner: {owner}");
|
|
||||||
Console.WriteLine($"Repository: {repoName}");
|
|
||||||
Console.WriteLine($"Host: {giteaConfig.BasePath}");
|
|
||||||
Repository repo = await repoApi.RepoGetAsync(owner, repoName);
|
Repository repo = await repoApi.RepoGetAsync(owner, repoName);
|
||||||
|
|
||||||
Console.WriteLine($"Repository:\n {JsonSerializer.Serialize(repo)}");
|
Console.WriteLine($"Repository:\n {JsonSerializer.Serialize(repo)}");
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ inputs:
|
|||||||
source:
|
source:
|
||||||
description: "Name of the source to use."
|
description: "Name of the source to use."
|
||||||
required: true
|
required: true
|
||||||
default: lewdorg
|
default: ${{ github.repository_owner }}
|
||||||
url:
|
url:
|
||||||
description: "Url of the NuGet repository."
|
description: "Url of the NuGet repository."
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
Reference in New Issue
Block a user