From fd540a53b118da2e7cbd713516a3f1fd3aaad57c Mon Sep 17 00:00:00 2001 From: Slava <20563034+veaceslavdoina@users.noreply.github.com> Date: Fri, 15 Dec 2023 14:07:52 +0200 Subject: [PATCH 1/5] Add Discordbot docker builds (#87) * Add BiblioTech Docker builds https://github.com/codex-storage/infra-codex/issues/113 * Organize workflows https://github.com/codex-storage/infra-codex/issues/113 --- .github/workflows/docker-discordbot.yml | 28 +++++++++++++++++++ .../{docker.yml => docker-runner.yml} | 4 +-- ...s-tests.yaml => run-continuous-tests.yaml} | 0 .../{dist-tests.yaml => run-dist-tests.yaml} | 0 Tools/BiblioTech/docker/Dockerfile | 11 ++++++-- 5 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/docker-discordbot.yml rename .github/workflows/{docker.yml => docker-runner.yml} (83%) rename .github/workflows/{continuous-tests.yaml => run-continuous-tests.yaml} (100%) rename .github/workflows/{dist-tests.yaml => run-dist-tests.yaml} (100%) diff --git a/.github/workflows/docker-discordbot.yml b/.github/workflows/docker-discordbot.yml new file mode 100644 index 00000000..90d670dd --- /dev/null +++ b/.github/workflows/docker-discordbot.yml @@ -0,0 +1,28 @@ +name: Docker - Discord Bot + + +on: + push: + branches: + - master + tags: + - 'v*.*.*' + paths: + - Tools/BiblioTech + - '!Tools/BiblioTech/docker/docker-compose.yaml' + - Framework + - ProjectPlugins + - .github/workflows/docker-discordbot.yml + - .github/workflows/docker-reusable.yml + workflow_dispatch: + + +jobs: + build-and-push: + name: Build and Push + uses: ./.github/workflows/docker-reusable.yml + with: + docker_file: Tools/BiblioTech/docker/Dockerfile + docker_repo: codexstorage/codex-discordbot + secrets: inherit + diff --git a/.github/workflows/docker.yml b/.github/workflows/docker-runner.yml similarity index 83% rename from .github/workflows/docker.yml rename to .github/workflows/docker-runner.yml index 87edbe92..dd2e8997 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker-runner.yml @@ -1,4 +1,4 @@ -name: Docker +name: Docker - Runner on: @@ -10,7 +10,7 @@ on: paths: - docker/Dockerfile - docker/docker-entrypoint.sh - - .github/workflows/docker.yml + - .github/workflows/docker-runner.yml - .github/workflows/docker-reusable.yml workflow_dispatch: diff --git a/.github/workflows/continuous-tests.yaml b/.github/workflows/run-continuous-tests.yaml similarity index 100% rename from .github/workflows/continuous-tests.yaml rename to .github/workflows/run-continuous-tests.yaml diff --git a/.github/workflows/dist-tests.yaml b/.github/workflows/run-dist-tests.yaml similarity index 100% rename from .github/workflows/dist-tests.yaml rename to .github/workflows/run-dist-tests.yaml diff --git a/Tools/BiblioTech/docker/Dockerfile b/Tools/BiblioTech/docker/Dockerfile index 7b7d6c77..98df2fb9 100644 --- a/Tools/BiblioTech/docker/Dockerfile +++ b/Tools/BiblioTech/docker/Dockerfile @@ -1,7 +1,14 @@ -FROM mcr.microsoft.com/dotnet/sdk:7.0 +# Variables +ARG IMAGE=mcr.microsoft.com/dotnet/sdk:7.0 +ARG APP_HOME=/app -WORKDIR app +# Create +FROM ${IMAGE} +ARG APP_HOME + +WORKDIR ${APP_HOME} COPY ./Tools/BiblioTech ./Tools/BiblioTech COPY ./Framework ./Framework COPY ./ProjectPlugins ./ProjectPlugins CMD ["dotnet", "run", "--project", "Tools/BiblioTech"] + From 5342261db033359f123aca02d7cc334818d582c1 Mon Sep 17 00:00:00 2001 From: Slava <20563034+veaceslavdoina@users.noreply.github.com> Date: Mon, 18 Dec 2023 11:30:15 +0200 Subject: [PATCH 2/5] Update Report workflows (#88) --- .github/workflows/report-HoldMyBeerTest.yaml | 6 +++--- .github/workflows/report-PeersTest.yaml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/report-HoldMyBeerTest.yaml b/.github/workflows/report-HoldMyBeerTest.yaml index c4ae2608..1a1952dc 100644 --- a/.github/workflows/report-HoldMyBeerTest.yaml +++ b/.github/workflows/report-HoldMyBeerTest.yaml @@ -3,17 +3,17 @@ name: Report - HoldMyBeerTest on: schedule: - - cron: '30 * */2 * *' + - cron: '30 1 */2 * *' workflow_dispatch: jobs: run_tests: name: Call runner - uses: ./.github/workflows/continuous-tests.yaml + uses: ./.github/workflows/run-continuous-tests.yaml with: source: ${{ format('{0}/{1}', github.server_url, github.repository) }} branch: master - nameprefix: c-tests-report-holdmybeertest + nameprefix: c-tests-report-holdmybeertest-48h tests_target_duration: 48h tests_filter: HoldMyBeerTest tests_cleanup: true diff --git a/.github/workflows/report-PeersTest.yaml b/.github/workflows/report-PeersTest.yaml index b063a02c..d1591eef 100644 --- a/.github/workflows/report-PeersTest.yaml +++ b/.github/workflows/report-PeersTest.yaml @@ -3,17 +3,17 @@ name: Report - PeersTest on: schedule: - - cron: '30 * */2 * *' + - cron: '30 1 */2 * *' workflow_dispatch: jobs: run_tests: name: Call runner - uses: ./.github/workflows/continuous-tests.yaml + uses: ./.github/workflows/run-continuous-tests.yaml with: source: ${{ format('{0}/{1}', github.server_url, github.repository) }} branch: master - nameprefix: c-tests-report-peerstest + nameprefix: c-tests-report-peerstest-48h tests_target_duration: 48h tests_filter: PeersTest tests_cleanup: true From 87e84ae90d0de38675df522dc1599f134b9c52eb Mon Sep 17 00:00:00 2001 From: benbierens Date: Mon, 18 Dec 2023 13:32:58 +0100 Subject: [PATCH 3/5] Adds method for checking of codex contracts are deployed --- .../CodexContractsAccess.cs | 7 +++++++ .../ContractInteractions.cs | 21 +++++++++++++++++++ Tools/BiblioTech/BaseGethCommand.cs | 14 ++++++++----- Tools/BiblioTech/RandomBusyMessage.cs | 2 +- 4 files changed, 38 insertions(+), 6 deletions(-) diff --git a/ProjectPlugins/CodexContractsPlugin/CodexContractsAccess.cs b/ProjectPlugins/CodexContractsPlugin/CodexContractsAccess.cs index 1d2a6994..be22f3ec 100644 --- a/ProjectPlugins/CodexContractsPlugin/CodexContractsAccess.cs +++ b/ProjectPlugins/CodexContractsPlugin/CodexContractsAccess.cs @@ -7,6 +7,7 @@ namespace CodexContractsPlugin { CodexContractsDeployment Deployment { get; } + bool IsDeployed(); string MintTestTokens(IHasEthAddress owner, TestToken testTokens); string MintTestTokens(EthAddress ethAddress, TestToken testTokens); TestToken GetTestTokenBalance(IHasEthAddress owner); @@ -27,6 +28,12 @@ namespace CodexContractsPlugin public CodexContractsDeployment Deployment { get; } + public bool IsDeployed() + { + var interaction = new ContractInteractions(log, gethNode); + return !string.IsNullOrEmpty(interaction.GetTokenName(Deployment.TokenAddress)); + } + public string MintTestTokens(IHasEthAddress owner, TestToken testTokens) { return MintTestTokens(owner.EthAddress, testTokens); diff --git a/ProjectPlugins/CodexContractsPlugin/ContractInteractions.cs b/ProjectPlugins/CodexContractsPlugin/ContractInteractions.cs index a1c7ef66..4af2ac6d 100644 --- a/ProjectPlugins/CodexContractsPlugin/ContractInteractions.cs +++ b/ProjectPlugins/CodexContractsPlugin/ContractInteractions.cs @@ -26,6 +26,22 @@ namespace CodexContractsPlugin return gethNode.Call(marketplaceAddress, function); } + public string GetTokenName(string tokenAddress) + { + try + { + log.Debug(tokenAddress); + var function = new GetTokenNameFunction(); + + return gethNode.Call(tokenAddress, function); + } + catch (Exception ex) + { + log.Log("Failed to get token name: " + ex); + return string.Empty; + } + } + public string MintTestTokens(EthAddress address, decimal amount, string tokenAddress) { log.Debug($"{amount} -> {address} (token: {tokenAddress})"); @@ -87,6 +103,11 @@ namespace CodexContractsPlugin { } + [Function("name", "string")] + public class GetTokenNameFunction : FunctionMessage + { + } + [Function("mint")] public class MintTokensFunction : FunctionMessage { diff --git a/Tools/BiblioTech/BaseGethCommand.cs b/Tools/BiblioTech/BaseGethCommand.cs index 52bdb456..ecbdfecf 100644 --- a/Tools/BiblioTech/BaseGethCommand.cs +++ b/Tools/BiblioTech/BaseGethCommand.cs @@ -59,12 +59,10 @@ namespace BiblioTech { protected override async Task Invoke(CommandContext context) { - var log = new ConsoleLog(); - if (!string.IsNullOrEmpty(GethInput.LoadError)) { var msg = "Geth input incorrect: " + GethInput.LoadError; - log.Error(msg); + Program.Log.Error(msg); if (IsInAdminChannel(context.Command)) { await context.Followup(msg); @@ -82,8 +80,14 @@ namespace BiblioTech tokenAddress: GethInput.TokenAddress ); - var gethNode = new CustomGethNode(log, GethInput.GethHost, GethInput.GethPort, GethInput.PrivateKey); - var contracts = new CodexContractsAccess(log, gethNode, contractsDeployment); + var gethNode = new CustomGethNode(Program.Log, GethInput.GethHost, GethInput.GethPort, GethInput.PrivateKey); + var contracts = new CodexContractsAccess(Program.Log, gethNode, contractsDeployment); + + if (!contracts.IsDeployed()) + { + await context.Followup("I'm sorry, the Codex SmartContracts are not currently deployed."); + return; + } await Execute(context, gethNode, contracts); } diff --git a/Tools/BiblioTech/RandomBusyMessage.cs b/Tools/BiblioTech/RandomBusyMessage.cs index baa370ee..290c9273 100644 --- a/Tools/BiblioTech/RandomBusyMessage.cs +++ b/Tools/BiblioTech/RandomBusyMessage.cs @@ -19,7 +19,7 @@ public static string Get() { - return "Hold on: " + messages[random.Next(messages.Length)]; + return "(⏳): " + messages[random.Next(messages.Length)]; } } } From 974fc460c4264d32f77f51a3be74cb1745ea1b10 Mon Sep 17 00:00:00 2001 From: Slava <20563034+veaceslavdoina@users.noreply.github.com> Date: Mon, 18 Dec 2023 16:38:16 +0200 Subject: [PATCH 4/5] Remove preview from MintCommand explorer link (#89) --- Tools/BiblioTech/Commands/MintCommand.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tools/BiblioTech/Commands/MintCommand.cs b/Tools/BiblioTech/Commands/MintCommand.cs index aa2ccf65..5b328b78 100644 --- a/Tools/BiblioTech/Commands/MintCommand.cs +++ b/Tools/BiblioTech/Commands/MintCommand.cs @@ -83,7 +83,7 @@ namespace BiblioTech.Commands private string FormatTransactionLink(string transaction) { var url = $"https://explorer.testnet.codex.storage/tx/{transaction}"; - return $"- [View on block explorer]({url}){Environment.NewLine}Transaction ID - `{transaction}`"; + return $"- [View on block explorer](<{url}>){Environment.NewLine}Transaction ID - `{transaction}`"; } } } From c4eceacafb8f4353d6378e108abc2b5c1737ca2c Mon Sep 17 00:00:00 2001 From: Slava <20563034+veaceslavdoina@users.noreply.github.com> Date: Mon, 18 Dec 2023 16:42:23 +0200 Subject: [PATCH 5/5] Trigger Docker builds on folders content changes (#90) --- .github/workflows/docker-discordbot.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-discordbot.yml b/.github/workflows/docker-discordbot.yml index 90d670dd..d98fe74c 100644 --- a/.github/workflows/docker-discordbot.yml +++ b/.github/workflows/docker-discordbot.yml @@ -8,10 +8,10 @@ on: tags: - 'v*.*.*' paths: - - Tools/BiblioTech + - 'Tools/BiblioTech/**' - '!Tools/BiblioTech/docker/docker-compose.yaml' - - Framework - - ProjectPlugins + - 'Framework/**' + - 'ProjectPlugins/**' - .github/workflows/docker-discordbot.yml - .github/workflows/docker-reusable.yml workflow_dispatch: