小编Nic*_*ion的帖子

如何在另一个工作流程中下载工件/发布资产

Github 操作是否可以上传构建工件以在发布分支上提交,然后让另一个工作流程下载并使用该工件?

name: Deploy release to UAT & archive artifact
on:
  release:
    types: [published]
jobs:
  package:
    name: package and archive
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: '12'
      - name: serverless package
        uses: serverless/github-action@master
        with:
          args: package --stage=prod
      - name: Upload Release Asset
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ github.event.release.upload_url }}
          asset_path: .serverless
          asset_name: release-asset-${{ github.event.release.name }}.zip
          asset_content_type: application/zip
      - name: Upload Artifact
        uses: actions/upload-artifact@v2
        with:
          name: release-artifact-${{ github.event.release.name }}
          path: .serverless …
Run Code Online (Sandbox Code Playgroud)

github-actions

27
推荐指数
2
解决办法
3万
查看次数

jax-ws/wsimport生成带有void返回的WebMethod - 相同的Request/ResponseWrapper

我正在使用客户端的WSDL文件,该文件对输入和输出消息使用相同的元素定义,但是我无法让JAX-WS/JAXB解组响应.

<wsdl:message name="invokeServiceRequest">
    <wsdl:part element="impl:requests" name="multiRequestWrapper"/>
</wsdl:message>
<wsdl:message name="invokeServiceResponse">
    <wsdl:part element="impl:requests" name="result"/>
</wsdl:message>
<wsdl:portType name="GCGatewayPortType">
    <wsdl:operation name="requests">
        <wsdl:input message="impl:invokeServiceRequest" name="invokeServiceRequest"/>
        <wsdl:output message="impl:invokeServiceResponse" name="invokeServiceResponse"/>
    </wsdl:operation>
</wsdl:portType>
Run Code Online (Sandbox Code Playgroud)

由于某种原因,wsimport生成的代码具有void返回,并且在收到响应时似乎不更新INOUT参数.

/**
 * This class was generated by the JAX-WS RI.
 * JAX-WS RI 2.1.7-b01-
 * Generated source version: 2.1
 */
...
@WebMethod
@RequestWrapper(localName = "requests", targetNamespace = "http://cg.test.com/", className = "com.test.cg.RequestsType")
@ResponseWrapper(localName = "requests", targetNamespace = "http://cg.test.com/", className = "com.test.cg.RequestsType")
public void requests(
    @WebParam(name = "paramOne", targetNamespace = "http://cg.test.com/", mode = WebParam.Mode.INOUT)
    Holder<String> paramOne, …
Run Code Online (Sandbox Code Playgroud)

java soap jax-ws wsimport

13
推荐指数
2
解决办法
1万
查看次数

使用Jenkins Git Publisher推送标签 - 多个Git存储库(fork)

我们的团队正在从CVS过渡到Git.我们打算像GitHub上的大多数开源项目一样使用类似的工作流 - 每个开发人员都使用主仓库的分支,然后提交一个拉取请求,允许项目主人在将更改合并到主仓库之前进行代码审查.

Jenkins允许我们添加多个Git存储库(标准的Git插件,而不是Multiple SCM插件).据推测,我可以为每个分叉的仓库输入URL,然后Jenkins将检查每个分支的所有分支以进行更改.我给每个存储库命名,例如"master","developer1","developer2"......

我们希望让Jenkins在适当的远程/ fork上标记每个构建.Git Publisher插件要求您提供"目标远程名称",但我们需要Jenkins能够自己解决这个问题.

git jenkins gitlab

11
推荐指数
1
解决办法
2万
查看次数

使用Maven构建Eclipse插件

我正在尝试配置Maven来构建Eclipse应用程序(与所有Eclipse EXE打包在一起的Eclipse插件等).

我已经完成了项目的几十个依赖项,并将它们部署到我们的内部Nexus(OSS)服务器.我还安装了Nexus P2 Repository插件和P2 Bridge插件(2.6.3-01)以及Nexus Unzip插件(0.12.0).我可以浏览到我们的组存储库的.meta/p2文件夹,但它当前是空的.

这应该比目前看起来简单得多.我的目标是Windows上的Eclipse 3.4.2(Ganymede).如果它有所不同,我们实际上将我们的应用程序部署为精简版/自定义Eclipse安装.

Eclipse的仓库

当我对着pom运行maven时,<packaging>eclipse-repository</packaging>我收到以下错误:

[ERROR]   Missing requirement: MyApp 0.0.0 requires 
          'org.eclipse.equinox.executable.feature.group 0.0.0' 
          but it could not be found
Run Code Online (Sandbox Code Playgroud)

...我从哪里获得,以及如何将其添加到Nexus?

当我对着pom运行maven时,<packaging>eclipse-plugin</packaging>我收到以下错误:

[ERROR]   Missing requirement: MyApp 0.0.0 requires 
          'bundle org.eclipse.ui 0.0.0'
          but it could not be found
Run Code Online (Sandbox Code Playgroud)

...但是我在本地文件系统上找到了以下目录(怀疑itp-04-rcp生成了第一个目录):

D:\maven\repository\p2\osgi\bundle\org.eclipse.ui\3.6.2.M20110203-1100
D:\maven\repository\p2\osgi\bundle\org.eclipse.ui\3.7.0.v20110928-1505
Run Code Online (Sandbox Code Playgroud)

第谷POM-第一件文物

我还尝试了pom-first-dependencies和manifest-first-dependency组合:http://wiki.eclipse.org/Tycho/How_Tos/Dependency_on_pom-first_artifacts

我不明白这是如何工作的 - 我可以从Git构建itp02.我可以看到它构建了两个包:

+---------------------+---------------------+--------------------------------------+
| artifactId          | Bundle-Name         | Bundle-SymbolicName                  |
+---------------------+---------------------+--------------------------------------+
| pomfirst-bundle     | pomfirst-bundle     | tycho.demo.itp02.pomfirst-bundle     |
| pomfirst-thirdparty | pomfirst-thirdparty | tycho.demo.itp02.pomfirst-thirdparty | …

eclipse-plugin p2 eclipse-rcp tycho maven

10
推荐指数
1
解决办法
4034
查看次数

插槽上ClamAV clamd INSTREAM的间歇性问题

我有一个运行NodeJS代码的AWS Lambda函数,用于将文件从S3传输到在EC2实例上运行的ClamAV.

通常(大约75%的时间)系统工作,但经常(特别是当从不同的Lambda容器扫描多个文件时)clamd线程被卡住INSTREAM.

一旦线程INSTREAM进入25-30秒,它似乎无法恢复.当它已经QUEUEDSINCE350秒时被杀死.我无法弄清楚这些数字中的任何一个与我的配置中的任何值有什么关系.

我很难在日志中找到任何错误的迹象 - INSTREAM请求的数量与完整扫描的数量相匹配:

$ sudo grep -c "got command INSTREAM" /var/log/clamav/clamav.log
129
$ sudo grep -c "Chunks complete" /var/log/clamav/clamav.log
129
$ sudo grep -c "Scanthread: connection shut down" /var/log/clamav/clamav.log
129
Run Code Online (Sandbox Code Playgroud)

...好吧,既然我对日志有了更深入的了解,那么扫描一些内容需要花费更长的时间.当我执行一批16个文件时,Lambda并发限制为7,前几个文件将在几秒钟内被扫描.下一个文件很快就开始扫描,在一秒内到达"Chunks complete",但在"Scanthread:connection shutdown"之前需要23秒.从这里开始它变得更糟 - 1:24,1:45 ......然后第3批7个文件需要3分钟才能扫描.

AWS m3.medium上的性能

如果我给系统几分钟安定下来,所有的线程都会消失,相同的文件花了3分钟现在大约需要5-7秒.

如果我在更快的机器上运行相同的测试,性能会提高,但问题仍然存在:

AWS m4.xlarge上的性能

当线程陷入困境时INSTREAM我可以看到文件仍然存在:

$ ls -al /tmp
drwx------  2 clamav clamav     4096 Aug 29 16:52 clamav-493bdf893ce4d8d7763c00fee22d9d69.tmp
-rwx------  1 clamav clamav 25683921 Aug 29 16:52 clamav-5cdefd83d5531a03c7cf22fda37d133f.tmp
Run Code Online (Sandbox Code Playgroud)

clam

7
推荐指数
0
解决办法
359
查看次数

为多个实例重用AWS :: CloudFormation :: Init(和userdata?)

是否可以从模板中的多个s 重用AWS::CloudFormation::Init(和/或userdata)相同的bootstrapping配置EC2::Instance

我需要设置3个文件的内容,然后运行3个命令来引导所有服务器,但该Metadata块大约30行(并且可能会增长).每个服务器实例都有一组不同的标签,有些标签比其他标签更多.

理想情况下,我认为您应该能够将其声明AWS::CloudFormation::Init为资源,并从多个EC2::Instances中引用它,但我不认为这是可能的.

我最初认为(作为一个新手)AWS::CloudFormation::CustomResource可能是合适的,但我认为不是.

我目前正在考虑使用a AWS::CloudFormation::Stack来导入共享实例模板,但我需要以某种方式将Tags堆栈模板中每个资源的参数传递给实例模板.问题是 - 如果这是最好的方法,我应该在目前的3个地点输入什么????

(奖金积分 - userdata和这个init块之间有什么区别?)

stack.template

...
"Resources" : {
  "Server1" : {
    "Type": "AWS::CloudFormation::Stack",
    "Properties": {
      "Parameters": {
        "InstanceType": "m1.medium",
        ...
        "Tags": { ???? }
      },
      "TemplateURL": "https://s3.amazonaws.com/mybucket/instance.template"
    }
Run Code Online (Sandbox Code Playgroud)

instance.template

...
"Parameters" : {
   "InstanceType" : {...}
   "KeyName": {...}
   ...
   "Tags": {
       ????
   }
},

"Resources" : {
    "Instance" : …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services aws-cloudformation

6
推荐指数
1
解决办法
7755
查看次数

在Jenkins中配置GitLab存储库

我正在尝试配置Jenkins(在Windows Server 2008上运行)连接到GitLab 6.0存储库(在Linux机器上).

从我的本地Windows框中,我可以使用SSH URL克隆我的GitLab服务器上的项目.我在使用HTTP URL时遇到了一些问题,但我确实设法使用Eclipse插件使用HTTP进行身份验证.

无法连接到存储库:

命令"d:\ tools\Git\bin\git.exe ls-remote -h http://myserver.domain/mygroup/myproject.git HEAD"

返回状态码128:

stdout:stderr:错误:访问时请求的URL返回错误:504

HTTP://myserver.domain/mygroup/myproject.git/info/refs服务=混帐上传包

致命:HTTP请求失败

当我在浏览器中尝试此URL时,我会获得一个身份验证弹出窗口.如果我输入我的电子邮件和密码,我可以成功下载分支和标签列表.

...不:

http:// username:password@myserver.domain/mygroup/myproject.git/info/refs无效:这是一个git存储库吗?

  • Windows GUI在使用SSH时没有任何问题.
    ......詹金斯似乎并不喜欢那么多:

    git@myserver.domain:MYGROUP/myproject.git

    错误"请输入Git存储库"仍然存在,当我尝试保存配置时,我看到以下堆栈跟踪:

    Exception: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.git.GitSCM from 
    {"value":"2",
     "userRemoteConfigs":     
       {"url":"git@myserver.domain:mygroup/myproject.git",
        "name":"origin","refspec":""
       },
     "branches":{"name":""},
     "includedRegions":"","excludedRegions":"","excludedUsers":"",
     "localBranch":"","relativeTargetDir":"","reference":"",
     "scmName":"",
     "gitConfigName":"","gitConfigEmail":"",
     "pruneBranches":false,"skipTag":false,"clean":false,"remotePoll":false,
     "disableSubmodules":false,"recursiveSubmodules":false,
     "authorOrCommitter":false,"wipeOutWorkspace":false,"ignoreNotifyCommit":false,
     "useShallowClone":false,"":["","0"],
     "gitTool":"Default",
     "browser":{"stapler- class":"hudson.plugins.git.browser.FisheyeGitRepositoryBrowser"}
    
    Stacktrace:
    javax.servlet.ServletException: 
    java.lang.RuntimeException: Failed to instantiate class hudson.plugins.git.GitSCM from {...}
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:725)
    ...
    Caused by: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.git.GitSCM …
    Run Code Online (Sandbox Code Playgroud)

git jenkins gitlab

5
推荐指数
1
解决办法
1万
查看次数

从同一存储库部署多个 Google Cloud Functions

Google Cloud Functions 的文档有点模糊 - 我了解如何部署其中包含的单个函数index.js- 即使在特定目录中,但如何部署位于同一存储库中的多个云函数?

AWS Lambda 允许您指定特定文件和函数名称:

  /my/path/my-file.myHandler
Run Code Online (Sandbox Code Playgroud)

Lambda 还允许您部署仅包含运行所需文件的 zip 文件,省略所有可选的可传递 npm 依赖项及其资源。对于某些库(例如 Oracle DB),包括node-modules/**会显着增加部署时间,并可能超出存储限制(在 AWS Lambda 上确实如此)。

我可以使用 Google Cloud Function 部署进行管理的最佳方式是:

$ gcloud alpha functions deploy my-function \ --trigger-http --source-url https://github.com/user-name/my-repo.git \ --source-branch master \ --source-path lib/foo/bar --entry-point myHandler

...但我的理解是它部署的lib/foo/bar/index.js内容包含function myHandler(req, res) {}...以及连接在同一文件中的所有依赖项?这根本没有意义 - 就像我说的,文档有点模糊。

google-cloud-functions

5
推荐指数
1
解决办法
2330
查看次数

Android的代码覆盖率(calabash-android BDD)

我正在使用calabash-android测试我的android应用程序,它提供了自己的"测试项目",脚本重命名它的包以反映被测试的应用程序,然后使用InstrumentationTestRunner子类:

adb shell am instrument -w -e class sh.calaba.instrumentationbackend.InstrumentationBackend #{ENV['TEST_PACKAGE_NAME']}/sh.calaba.instrumentationbackend.CalabashInstrumentationTestRunner
Run Code Online (Sandbox Code Playgroud)

我会接受任何答案,允许我为Android应用程序生成类似于Emma或Cobertura的代码覆盖率报告,并在calabash-android中测试时收集数据.

为了让艾玛工作,我有......

  • 尝试按照这些说明让Maven构建我的项目(因为我使用ant已经太久了).coverage.em生成一个文件target/emma
  • 修改了calabash-android脚本,添加" -e coverage true"
  • 当我运行calabash-android时,我最终看到"生成的覆盖数据到/data/data/my.project/files/coverage.ec"
  • adb -e pull /data/data/my.project/files/coverage.ec coverage.ec

...所以现在我应该可以运行:

  • java -cp $ANDROID_HOME/tools/lib/emma.jar emma report -r html -in target/emma/coverage.em,coverage.ec

但是我收到一个错误:

EMMA: processing input files...
java.io.UTFDataFormatException: malformed input around byte 107
Run Code Online (Sandbox Code Playgroud)

...所以我认为android maven插件有问题,我正在试图弄清楚如何生成coverage.em文件.我跑了" android update project -p ."," ant emma"和" ant emma debug",但我无法在任何地方找到报道 ......

...生成的build.xml文件似乎暗示只有在运行"ant emma test"时才会生成coverage.em文件,但我认为这不会起作用,因为测试应用程序是由葫芦 - 机器人.

为了让Cobertura工作,我有...... …

android code-coverage emma cobertura

4
推荐指数
1
解决办法
3110
查看次数

来自Nginx的502 Bad Gateway用于大型GitLab fork

我正在通过Nginx运行GitLab 6.0.0并且可以分叉小型存储库,但是当我尝试分叉大型存储库(2GB)时,我会在大约一分钟后看到" 502 Bad Gateway "页面.

/var/log/nginx/gitlab_error.log 说明:

2013/08/29 12:21:33 [error] 25098#0: *221 upstream prematurely closed connection while reading response header from upstream, 
  client: 12.34.56.78, 
  server: myserver, 
  request: "POST /mygroup/myproject/fork HTTP/1.1", 
  upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/mygroup/myproject/fork", 
  host: "myserver", 
  referrer: "http://myserver/mygroup/myproject/fork"
Run Code Online (Sandbox Code Playgroud)

git nginx gitlab git-fork

4
推荐指数
1
解决办法
1万
查看次数