当前位置: 首页 > news >正文

自建网站如何被百度收录阿里网站域名指向怎么做

自建网站如何被百度收录,阿里网站域名指向怎么做,用dw做的网站怎么发布,产品推广方案范本龙智是JetBrains授权合作伙伴、Perforce授权合作伙伴#xff0c;为您提供TeamCity、Perforce Helix Core等热门的游戏开发工具及一站式服务 TeamCity 是游戏开发的热门选择#xff0c;大家选择它的原因包括支持 Perforce、可以进行本地安装#xff0c;并提供了多种配置选项。…龙智是JetBrains授权合作伙伴、Perforce授权合作伙伴为您提供TeamCity、Perforce Helix Core等热门的游戏开发工具及一站式服务 TeamCity 是游戏开发的热门选择大家选择它的原因包括支持 Perforce、可以进行本地安装并提供了多种配置选项。除了将它主要用作通用 CI/CD 解决方案之外JetBrains 还努力为各种构建工具提供专门支持。JetBrains 已提供 Unity 插件数年去年也正式推出了 Unreal Engine 支持插件 在这款新插件的开发过程中JetBrains 一直与多位游戏开发客户保持密切联系以确保它符合从事实际 Unreal Engine 项目工作的 DevOps 团队的需求。 为 Unreal Engine 游戏设置合适的构建管道可能是一项艰巨的任务特别是对于那些在平台独特性方面经验有限的人来说。本文我们将带您了解基本设置同时会展示该插件的功能并演示分布式 BuildGraph 支持等高级功能。 新 Unreal Engine 插件生成的示例构建管道 主要功能 以下是此版插件所提供功能的快速概览 专为最常见用例BuildCookRun、BuildGraph 和自动化测试定制的专用运行程序。 基于 BuildGraph 描述构建发行版。 即时自动化测试报告。 自动发现构建计算机上的 Unreal Engine 安装。 兼容最新的 5.x 版 Unreal Engine还支持 4.x 版本。 演示 在本演示中我们将为随 Unreal 提供的两款入门级游戏 Cropout 和 Lyra 设置管道我们将为构建代理和安装了 Unreal Engine 插件的 TeamCity Cloud 使用 AWS 基础架构EC2 和用于 FSx for OpenZFS。 我们将介绍两个场景引擎已安装在代理上以及引擎与游戏一起通过源代码构建。目前TeamCity Cloud 不为代理提供预装的 Unreal Engine但您可以随时添加您自己的包含所有必需 SDK 的自托管代理。我们将在这篇博文中采用这种方式。 使用 BuildCookRun 构建 Cropout 构建 Unreal 项目通常涉及多个‍步骤例如 采用指定配置针对目标平台进行编译。 资源烘焙将所有资源转换为可在目标平台上读取的资源。 将项目封装为合适的分发格式。 等等。 当然之后还要进行测试 首先我们来看一个简单的场景并使用标准 BuildCookRun 命令在一台计算机上按顺序运行所有阶段。 对于此场景我们将使用撰写这篇博文时可以获取的最新普通版 Unreal Engine并通过 EGLEpic Games 启动器进行安装。 将代理成功连接到 TeamCity Cloud 服务器后我们可以在 Agents代理标签页中看到它。 现在我想简单探讨一下代理的一些属性。 查看上图我们可以看到代理发现了引擎及其版本如您所见我们的计算机上安装了多个引擎。请记下此信息因为稍后我们会将此信息用于构建步骤配置。 现在常用的方式是将您所有的配置以代码形式存储在源代码控制系统下也就是“配置即代码”。在 TeamCity 中您可以使用 Kotlin DSL 执行此操作。当然您还可以使用传统 UI 配置但今天我们将使用第一种方式由于 YAML 已得到广泛使用并且已成为事实上的标准我们已将它添加到最近发布的 TeamCity Pipelines – 如果您还没有查看请查看。 用于在 TeamCity 中构建 Cropout 的 Kotlin DSL 配置如下所示 unrealEngine {engineDetectionMode automatic {identifier 5.4}command buildCookRun {project cropout/CropoutSampleProject.uprojectbuildConfiguration standaloneGame {configurations DevelopmentShippingplatforms Mac}cook cookConfiguration {maps VillageMainMenucultures enunversionedContent true}stage stageConfiguration {directory ./staged}archive archiveConfiguration {directory ./archived}pak truecompressed trueprerequisites true}additionalArguments -utf8output -buildmachine -unattended -noP4 -nosplash -stdout -NoCodeSign } 所有设置的作用都一目了然但有几项设置需要进一步说明 engine detection mode 我们可以在此处指定“automatic”或“manual”。前者假定您已经在代理上安装引擎并在系统中注册。 我借此机会澄清一下“注册 ”的含义当您通过 EGL 安装 Unreal Engine 或通过源代码构建 Unreal Engine 时此操作会写入目标计算机上的某些文件如果使用的是 Windows则会写入注册表。 这基本上就是自动检测模式的用途。我们读取这些文件并发布标识符作为代理属性这样一来您稍后便可使用这些属性为构建选择合适的代理。 “手动”模式允许您设置 Unreal Engine 根文件夹的准确路径当您通过源代码构建时可能会用到该路径。稍后我们将介绍这部分内容。 build configuration 通过调整此参数我们可以指定所创建构建的类型它是单机游戏、客户端、服务器还是既是客户端又是服务器组件。 根据所选的值插件将应用 -client、-server、-noserver 标志并相应地管理 -clientconfig、-serverconfig、-config、-targetplatform 和 -servertargetplatform 参数。 到现在为止都没问题。现在该添加一些自动化测试并运行最终管道了。 unrealEngine {engineDetectionMode automatic {identifier 5.4}command runAutomation {project cropout/CropoutSampleProject.uprojectexecCommand runTests {tests StartsWith:JsonConfigInput.Triggers.Released.trimIndent()}nullRHI true}additionalArguments -utf8output -buildmachine -unattended -noP4 -nosplash -stdout -NoCodeSign } 如您所知使用 Unreal Engine 自动化框架时通常使用以下自动化“子命令”之一执行测试 RunAll – 这是一个非常简单的命令能够运行所有必需的测试。 RunFilter – 借助此命令可以执行使用一个指定筛选器包括 Engine、Stress、Smoke 等值标记的测试。 RunTests – 这是最通用的命令因为您可以使用该命令指定要运行的测试列表包括使用 StartsWith 的前缀筛选器、运行组筛选器和简单的子字符串匹配。 我们尝试在 Kotlin DSL 中保留相同的用词以便 Unreal 用户对此感到熟悉。 还要指出的是插件会即时解析测试结果并以 TeamCity 自带的正确显示的格式呈现测试结果。 以下是构建结果示例 在下方我们可以看到发布到工件存储的游戏二进制文件。默认情况下工件会发布到内置存储但 TeamCity 还支持多种外部存储选项。在云环境中可以配置发布到 S3。 UI 中的最终配置将如下所示 下面是测试运行的步骤 由于我们已启用 Kotlin DSL 配置并禁止在 UI 中对其进行编辑所有设置均被禁用。 使用 BuildGraph 构建 Lyra 我们将逐步过渡到使用 Lyra 的更复杂示例。由于它是一款多人游戏我们来构建 Linux 服务器据我们所知一切高性能游戏都应在 Linux 上运行以及 Windows 和 Linux 游戏客户端。 在前面的示例中我们在一台计算机上按顺序运行了所有步骤。这一过程通常需要大量时间。但还有一种更好的方式即 BuildGraph。这是一种 Unreal 方法以声明方式或几乎以声明方式将构建描述为一组具有依赖关系的任务。随后构件图的不同部分可以共同执行或拆分到不同的计算机上。后一种方式可以显著加快整个构建过程的速度特别适合大型复杂项目。 BuildGraph 的优点是它会自动管理作业之间的所有中间工件。您只需要共享存储。构建 Lyra 时我们会将此共享存储用于两个目的在单个构建中的节点之间共享数据以及维护共享派生数据缓存 (DDC)。 我们之前提到过我们还将通过源代码构建引擎。您通过源代码构建引擎可能是出于多种原因但就我们的特定情况而言我们这样做是因为无法使用任何方式通过引擎从 EGL 安装构建 Linux 服务器至少在撰写这篇博文时无法实现。这是因为此特定引擎版本未提供相应文件和 SDK。 好的序言介绍完毕 — 我们来看看代码。 项目结构和 Perforce 中的相应流如下所示假设您已从 Epic 的 Perforce 获取 Unreal Engine 源代码 下面是我们将用于构建的 BuildGraph XML 脚本的节选。脚本的这一特定部分给出了编辑器的构建方式以及编译所需的工具 其中还包含几项测试。在我们的简单示例中这些测试采用硬编码。在真实场景中您可能会将测试列表传递给脚本并采用更复杂的逻辑。  ... !-- Editors --ForEach NamePlatform Values$(EditorPlatforms) SeparatorProperty NameCompiler Value$(AgentPrefixCompile)$(Platform) /Agent NameBuild Editor and tools $(Platform) Type$(Compiler)...Property NameExtraToolCompileArguments Value$(ExtraToolCompileArguments) -architecturearm64 If$(Platform) Mac /Node Name$(ToolsNodeName) $(Platform) RequiresSetup Toolchain $(Platform) Produces#$(Platform)ToolBinariesCompile TargetCrashReportClient Platform$(Platform) ConfigurationShipping Arguments$(ExtraToolCompileArguments) Tag#$(Platform)ToolBinaries/Compile TargetCrashReportClientEditor Platform$(Platform) ConfigurationShipping Arguments$(ExtraToolCompileArguments) Tag#$(Platform)ToolBinaries/Compile TargetShaderCompileWorker Platform$(Platform) ConfigurationDevelopment Arguments$(ExtraToolCompileArguments) Tag#$(Platform)ToolBinaries/Compile TargetUnrealLightmass Platform$(Platform) ConfigurationDevelopment Tag#$(Platform)ToolBinaries/Compile TargetInterchangeWorker Platform$(Platform) ConfigurationDevelopment Arguments$(ExtraToolCompileArguments) Tag#$(Platform)ToolBinaries/Compile TargetUnrealPak Platform$(Platform) ConfigurationDevelopment Arguments$(ExtraToolCompileArguments) Tag#$(Platform)ToolBinaries/Compile TargetBootstrapPackagedGame Platform$(Platform) ConfigurationShipping Arguments$(ExtraToolCompileArguments) Tag#$(Platform)ToolBinaries If$(Platform) Win64//Node...Node Name$(EditorNodeName) $(Platform) Requires$(ToolsNodeName) $(Platform) Produces#$(Platform)EditorBinariesCompile Target$(ProjectName)Editor Project$(UProject) Platform$(Platform) ConfigurationDevelopment Arguments$(ExtraEditorCompileArguments) Tag#$(Platform)EditorBinaries//NodeProperty NameAutomationTestsNodeName ValueRun Tests $(Platform) /Node Name$(AutomationTestsNodeName) Requires$(EditorNodeName) $(Platform)Property NameTestArgs Value-Project$(UProject) -NullRHI -Deterministic /Property NameTestArgs Value$(TestArgs) -TestUE.EditorAutomation -RunTestquot;StartsWith:Inputquot; /Property NameTestArgs Value$(TestArgs) -BuildEditor -UseEditor /Command NameRunUnreal Arguments$(TestArgs) //Node/AgentProperty NameBuildNodes Value$(BuildNodes);$(EditorNodeName) $(Platform);$(AutomationTestsNodeName); //ForEach... 有关完整语法的描述请参阅 Epic 网站。这里我们本质上要做的是通过选项 EditorPlatforms 迭代传递给脚本的平台列表并为每个平台构建编辑器。这部分代码的一个有趣的功能是代理节点的 Type 属性。 Agent ... Type 在文档中查看此表 因此为了在特定代理上运行一组任务您可以修改此字段。撰写这篇博文时为了确保一切正常运行本部分需要对构建代理进行一些配置。也就是说您应当在代理配置文件中定义两个属性 unreal-engine.build-graph.agent.type此属性可以是任意值或由 ; 分隔的值列表。相应的任务集随后将仅在至少有一个匹配项的代理上运行。 unreal-engine.build-graph.agent.shared-dir前文中讨论过为了运行分布式 BuildGraph 构建我们需要一个共享存储位置。通过此属性我们可以在特定代理上设置该存储位置的路径。 以下是我们的 EC2 构建代理设置 对于 Linux unreal-engine.build-graph.agent.type CompileLinux;CookLinux;Linux unreal-engine.build-graph.agent.shared-dir /mnt/agent-shared-dir/intermediate 对于 Windows由于某些原因将文件夹作为单独的驱动器进行装载导致一次 Windows 系统调用失败因此我们在配置中选择了网络共享 unreal-engine.build-graph.agent.type CompileWin64;CookWin64;Win64 unreal-engine.build-graph.agent.shared-dir \\\\fs-040b8d6dab476baf1.fsx.eu-west-1.amazonaws.com\\fsx\\ 在真实场景中可能需要区分执行烘焙的代理和执行编译的代理并确保它们采用合适的规范。 我们来快速浏览一下游戏的编译、烘焙和封装过程。在我们的脚本中我们已将构建客户端的逻辑和构建服务器的逻辑分开因为它们传递的标志不同 ForEach NamePlatform Values$(ClientPlatforms) Separator!-- COMPILATION --Property NameCompiler Value$(AgentPrefixCompile)$(Platform) /Agent NameCompile $(Platform) Client Type$(Compiler)Property NameCompileNodeName ValueCompile $(Platform) Client /Node Name$(CompileNodeName) Requires$(ToolsNodeName) $(Platform) Produces#$(Platform) Client BinariesForEach NameTargetConfiguration Values$(TargetConfigurations) SeparatorCompile Target$(ProjectName)Client Project$(UProject) Platform$(Platform) Configuration$(TargetConfiguration) Arguments$(ExtraProjectCompileArguments) //ForEach/NodeProperty NameBuildNodes Value$(BuildNodes);$(CompileNodeName); //Agent!-- COOKING --Property NameCooker Value$(AgentPrefixCook)$(Platform) /Property NameCookPlatformNodeName ValueCook $(Platform) Client /Agent NameCook $(Platform) Client Type$(Cooker)Property NameCookPlatform Value$(Platform) /Property NameCookPlatform ValueWindows If$(Platform) Win64 /Node Name$(CookPlatformNodeName) Requires$(EditorNodeName) $(Platform) Produces#Cook $(Platform) Client CompleteCook Project$(UProject) Platform$(CookPlatform)Client//Node/AgentProperty NameBuildNodes Value$(BuildNodes);$(CookPlatformNodeName); /!-- PACKAGING --Agent NamePackage $(Platform) Client Type$(Platform)Property NameBCRArgs Value-Project$(UProject) -Platform$(Platform) -NoCodeSign -Client /!-- Stage --Node NameStage $(Platform) Client RequiresCompile $(Platform) Client;Cook $(Platform) ClientForEach NameTargetConfiguration Values$(TargetConfigurations) SeparatorCommand NameBuildCookRun Arguments$(BCRArgs) -Configuration$(TargetConfiguration) -SkipBuild -SkipCook -Stage -Pak //ForEach/Node!-- Package --Node NamePackage $(Platform) Client RequiresStage $(Platform) ClientForEach NameTargetConfiguration Values$(TargetConfigurations) SeparatorCommand NameBuildCookRun Arguments$(BCRArgs) -Configuration$(TargetConfiguration) -SkipBuild -SkipCook -SkipStage -Package //ForEach/Node!-- Publish (Packages) --Node NameArchive $(Platform) Client RequiresPackage $(Platform) ClientForEach NameTargetConfiguration Values$(TargetConfigurations) SeparatorCommand NameBuildCookRun Arguments$(BCRArgs) -Configuration$(TargetConfiguration) -SkipBuild -SkipCook -SkipStage -SkipPak -SkipPackage -Archive //ForEach/NodeNode NamePublish $(Platform) Client RequiresArchive $(Platform) ClientProperty NamePublishPlatform Value$(Platform) /Property NamePublishPlatform ValueWindows If$(Platform) Win64 /Log Message##teamcity[publishArtifacts game/ArchivedBuilds/$(PublishPlatform)Client$(PublishPlatform)Client.zip] //Node/AgentProperty NameBuildNodes Value$(BuildNodes);Archive $(Platform) Client;Publish $(Platform) Client / /ForEach 脚本本身不需要过多解释。我们会迭代希望客户端在其上运行的平台列表该列表会再次作为选项传递。我们针对每个平台进行编译、烘焙资源最后将一切封装起来。作为封装过程的最后一步我们使用服务消息将构建的客户端作为 TeamCity 构建工件发布。 您可能已经注意到在这部分脚本中我们有三个代理代表构建过程的三个阶段编译、烘焙和封装。编译需要使用属于编辑器的工具但不需要编辑器本身 Node Name$(CompileNodeName) Requires$(ToolsNodeName) $(Platform) Produces#$(Platform) Client Binaries 同时烘焙过程需要实际的编辑器 Node Name$(CookPlatformNodeName) Requires$(EditorNodeName) $(Platform) Produces#Cook $(Platform) Client Complete 由于这两个过程之间没有依赖关系它们可以在不同的计算机上并行运行在有足够多的计算机可用的情况下。这一简单示例演示了使用 BuildGraph 的强大功能您只需描述共享依赖项的各项工作然后它们就会同时运行。 为了简洁起见我们不会显示包含服务器部分的脚本的其余部分因为这部分内容与我们刚才描述的内容非常相似只有标志集合不同。 最后我们要介绍 TeamCity 中的插件配置。由于大部分工作已在 BuildGraph XML 脚本中描述DSL 配置相当简单 params {param(env.UE_SharedDataCachePath, /mnt/agent-shared-dir/ddc)param(env.UE-SharedDataCachePath, \\\\fs-040b8d6dab476baf1.fsx.eu-west-1.amazonaws.com\\fsx\\ddc) } steps {unrealEngine {id Unreal_Enginename BuildengineDetectionMode manual {rootDir engine}command buildGraph {script game/BuildProject.xmltargetNode BuildProjectoptions ProjectPath%teamcity.build.checkoutDir%/gameProjectNameLyraClientPlatformsLinuxWin64ServerPlatformsLinuxEditorPlatformsLinuxWin64TargetConfigurationsShipping.trimIndent()mode UnrealEngine.BuildGraphMode.Distributed}additionalArguments -utf8output -buildmachine -unattended -noP4 -nosplash -stdout -NoCodeSign} } 在这里指定我们希望在分布式模式下运行提供的 BuildGraph 脚本。但我们可以根据自己的意愿随时选择在一台计算机上按顺序运行所有节点。我们还指定了一些环境变量如果引擎要启用共享 DDC则需要使用这些变量。这些文件夹应当已装载到连接至 TeamCity 的代理。 现在您可以为我们的游戏传递以下包含三个平台选项的列表ClientPlatforms、ServerPlatforms 和 EditorPlatforms。 UI 中的显示如下 启动构建时我们会获得此构建链 因此如我们所见插件已将构建图转换为适当的 TeamCity 构建链。 我们可以在指定构建的相应标签页上查看已发布的工件。Linux 服务器的显示如下 在结束之前我们想强调一些要点请您务必牢记 为了确保 BuildGraph 分发过程正常运行您的构建配置应仅包含一个有效构建步骤。 目前该插件不会以任何方式管理共享存储中生成的工件的保留期。您负责正确设置保留期。 这篇博文中的示例绝不可用于生产。您的真实场景可能会更加复杂。但这些示例可作为一个良好的起点。 您可以从 GitHub 仓库中获取这篇博文中展示的演示代码。如果您想尝试用于 TeamCity 的 Unreal Engine 插件可从 JetBrains Marketplace 下载并在 TeamCity On-Premises 服务器上安装。 对于 TeamCity Cloud 用户我们已预装了 Unreal Engine 插件您只需添加 Unreal Engine 构建步骤便可使用此插件。需要提醒您的是TeamCity Cloud 代理没有预装 Unreal Engine因此您需要使用自托管代理运行 Unreal Engine 构建。 针对一直使用预览版插件从 0.x.x 开始的任何版本的用户的重要说明请注意由于我们在 1.0.0 版中进行了更改并重新设计了多个功能您的现有配置将被破坏。您可能需要使用新版插件重新创建这些配置。 后续计划 首先我们期待收到您的反馈。您可以随时联系我们通过我们的问题跟踪器提交工单或对这篇博文发表评论。 我们对今后的工作还有一些想法包括 提供更加深入的构建日志分析。 包含与 UnrealGameSync (UGS) 的集成添加构建状态发布等功能以及提供开箱即用的元数据服务器。 添加对构建计算机上可用 SDK 的检测可能会使用整体解决方案。 了解 Gauntlet 自动化框架以及我们可以在其中执行的操作。 了解我们如何利用 Epic Games 推出的构建过程中的最新进展即查看 Unreal Build Accelerator (UBA) 并通过 TeamCity 在代理上进行协调。 将插件开源。我们相信这将提高透明度并从整体上创建更好的插件。此外开源会带来很多乐趣。 本博文英文原作者Vladislav Grinin 关于 TeamCity TeamCity 是一款强大的持续集成和部署服务器面向以 DevOps 为中心的团队提供开箱即用的测试智能、构建问题的实时报告以及无与伦比的可扩展性。安装和部署 TeamCity几分钟之内即可开始构建您的 DevOps 管道。TeamCity 提供本地部署和基于云的版本。 进一步了解 TeamC‍ity JetBrains中国授权合作伙伴-龙智 官网www.shdsd.com 电话400-666-7732 邮箱marketingshdsd.com
http://www.dnsts.com.cn/news/234365.html

相关文章:

  • 华泰保险公司官方网站电话产品网站建站
  • 合肥做网站的公司百度hao123网址之家
  • 网站建设需要的技术手段sem竞价托管费用
  • 小说网站开发北京网站建设模板
  • 杭州营销型网站雄安专业网站建设哪家好
  • wordpress网站重做中国招标投标网查询平台
  • 沧州市东光建设局 网站微信开发者中心
  • 看市场行情用什么软件小说网站如何做seo关键词
  • 图片点击切换网站模板外贸网站怎么建设
  • 大连餐饮网站建设国外在线设计平台
  • 临沂市建设官方网站怎么做网站赚流量
  • 酒店网站建设流程图英文网站注册
  • 休闲旅游产品营销网站的建设策略顺德建设网站多少钱
  • 网站建设视频教程。国内企业手机网站建设
  • 福建省建设厅网站职业资格沭阳网站定制
  • vancl网站现在做网络推广网站建设怎么样
  • wordpress主题安装全解析网站新闻对百度优化有用吗
  • html网页设计代码购物网站net112企业建站系统
  • 石排镇网站建设公司无锡黄页网
  • 做期货看什么网站查网站ip地址
  • 网站备案核验系统wordpress获取浏览人信息
  • 网站后台源代码西安网站开发软件
  • 网站建设公司的前景网站模板怎么修改
  • 网站开发有哪些内容一般做企业网站需要什么
  • 网站搭建免费视频教程pageadmin做网站要钱吗
  • 坂田网站建设wordpress模板赚钱
  • 做设计比较好的网站地税局网站建设情况汇报
  • 网站策划与建设实训心得二手网站模板
  • 企业门户网站费用网站数据包如何做架构
  • 阳光梦网站建设太原跨境电商