花了几个小时,试图了解如何使后持续部署的工作在的情况下,基于OSGi的应用程序,我终于摆在我的计算器的第一个问题,希望对我可能做错了或漏掉某些适应症-不知何故我觉得自己走错了路......
这就是我想要实现的目标:
构建一些bundle并将它们安装到maven存储库(这里没问题,使用bnd)
现在让所有捆绑包组成我的应用程序(通过所有测试等),我想部署并运行应用程序,即使用这些捆绑包启动一些OSGi框架.
开始不是问题 - "mvn pax:provision -Dframework = equinox"可以解决问题.我的应用程序启动jetty,因此很容易通过浏览器验证看起来是否正常(除了所有测试)
但是,现在,尝试"连续",下次我想应用此过程时,我真的应该确保首先关闭我的应用程序的运行实例(至少释放正在使用的端口).所以,为了重新运行一切,我不得不首先关闭旧安装.
这就是我的问题开始的地方:有什么能帮我解决这个问题吗?我知道有maven-deploy-plugin,但这在将一些WAR/EAR文件部署到某个标准应用程序容器中时似乎很有用(似乎不需要重新启动它).
我真的只需要运行一些脚本来启动 OSGi环境 - 然后,下次再将它关闭,然后再重新启动它.使用tomcat,jetty,jboss等,有一些shutdown.sh脚本或mvn jetty:停止指令,但我真的必须自己写这些脚本吗?这是我认为我开始走错路的地方,有人必须在我面前遇到这些问题并解决它们我猜;)
我知道我可以以某种方式尝试使用JMX或使用telnet控制台访问正在运行的实例以发出"stop 0"命令,但这感觉不对.
从jenkins开始的进程应该编译/构建/部署项目,但是我猜不会启动长时间运行的线程,所以我不得不启动一些"外部"进程,我想在下次再次尝试时先杀死它.
有任何想法吗?也许我错过了什么?提前感谢您对此的任何意见!
我正在尝试了解创建git-workflow的问题
我们正在考虑使用功能分支一次开发多个功能,所以我们说:
- F1 (Feature 1)
- F2 (Feature 2)
- F3 (Feature 3)
Run Code Online (Sandbox Code Playgroud)
我们刚刚完成了功能1和3,并将它们合并到我们的开发分支中进行集成测试:
-F1---Commit1---Commit2----------------------------------
-F2--------Commit1---------------------------------------
-F3--------------------------Commit1---------------------
-Development-------Merge-F1------------Merge-F2----------
Run Code Online (Sandbox Code Playgroud)
开发部门正处于前沿,并作为夜间构建的一部分被释放.当我们对此感到满意时,此分支将合并到一个临时分支中,然后用于客户端审核:
-F1---Commit1---Commit2---------------------------------------------
-F2--------Commit1--------------------------------------------------
-F3-------------------------Commit1-----Commit2---------------------
-Development-------Merge-F1------------Merge-F2---------------------
-Staging-------------------------------------------Merge-Development
Run Code Online (Sandbox Code Playgroud)
客户在测试环境中查看此版本,但对F1不满意.在此期间,F3代码已完成,客户希望查看.
问:如何使用git进入我们的暂存分支只有F2和F3进行审核的位置,而不是客户现在拒绝的F1?
我正在尝试在Cloudbees上使用Jenkins来自动部署我的软件.我设置我的工作流程如下.
有时候我想重新部署.(假设该阶段采用手动输入参数).我如何在工作流程中这样做?这是我的Groovy脚本.
def src = 'https://git.repo.url/proj.git'
stage 'Build'
node {
env.JAVA_HOME="${tool name: 'Pre-Installed OpenJDK 8 (Latest) on DEV@Cloud nodes', type: 'hudson.model.JDK'}"
sh 'javac -version'
git credentialsId: 'abcdef', url: src
sh 'ant -f build.xml proj.jar report'
}
stage 'Generate Release Version'
input message: 'Create Tar and Push to S3', ok: 'Generate Release'
node {
// TODO
}
stage 'QA Approved'
input message: 'Enter a Tag Name to approve this build and tag in GIT', ok: 'Approve and Tag', parameters: [[$class: 'StringParameterDefinition', …Run Code Online (Sandbox Code Playgroud) groovy continuous-deployment jenkins cloudbees jenkins-workflow
我在circleci运行一些测试,一些测试需要更长的时间,然后10分钟,因为它的ui测试运行在无头浏览器上,我安装在我的circle.yml
如何延长超时时间?
谢谢
java continuous-integration scala continuous-deployment circleci
我正在使用CircleCI来构建一个项目,一切运行正常,除了我的标签在推送到github时没有构建:
我不明白为什么,我已将整个配置减少到简约配置文件,它是相同的逻辑:
version: 2
jobs:
my_dummy_job_nightly:
working_directory: ~/build
docker:
- image: docker:git
steps:
- checkout
- setup_remote_docker:
reusable: true
exclusive: true
- run:
name: NIGHTLY BUILD
command: |
apk add --update py-pip
python -m pip install --upgrade pip
my_dummy_job_deploy:
working_directory: ~/build
docker:
- image: docker:git
steps:
- checkout
- setup_remote_docker:
reusable: true
exclusive: true
- run:
name: RELEASE BUILD
command: |
apk add --update py-pip
python -m pip install --upgrade pip
###################################################################################
# CircleCI WORKFLOWS #
###################################################################################
workflows: …Run Code Online (Sandbox Code Playgroud) continuous-integration release continuous-deployment circleci
亲爱的stackoverflow社区,我再次向您求助:)
最近,我遇到了Gitlab及其非常好的捆绑CI / CD解决方案的奇迹。它工作得很出色,但是我们所有人都需要对二进制文件进行签名,我们没有发现像我将密钥上传到Jenkins服务器那样的方法。
那么,在构建发行版时,如何在不检查密钥和秘密的情况下对我的android(实际上是颤抖的)应用程序进行签名?
据我所知,大多数人使用签名设置来定义构建作业,签名设置是指未提交的key.properties文件,该文件指定了本地keystore.jks。在本地构建APK时,这种方法可以正常工作,但是如果我想作为CI / CD工作的一部分来构建和存档它们,我该怎么办?
对于秘密密钥,例如密钥库本身的密码,我发现我可以将它们简单地存储为受保护的变量,但可以存储实际的密钥库文件本身。我该怎么办?
任何想法,建议都将受到欢迎。干杯
我喜欢改进连续交付.我正在使用Tomcat 8和maven.
我mvn tomcat:redeploy用来部署webapp.
在tomcat文档中我找到了这个部分:
远程部署新的应用程序存档(WAR)
如果安装和启动成功,您将收到(...)
否则,响应将以FAIL开头并包含错误消息.
可能的原因FAIL之一是休息:
尝试启动新的Web应用程序时遇到异常.
所以我想在启动时抛出一个异常,所以在web.xml我写道:
<负载上启动> 1 </负载上启动>
到org.springframework.web.servlet.DispatcherServlet-Servlet.然后我写了一个单身人士:
@Service
public class AvoidStartupOnMissingDatabase implements SmartInitializingSingleton {
@Override
public void afterSingletonsInstantiated() {
throw new RuntimeException("Do not deploy this app!");
}
}
Run Code Online (Sandbox Code Playgroud)
这会导致这个Stacktrace:
java.lang.RuntimeException: Do not deploy this app!
at xxx.AvoidStartupOnMissingDatabase.afterSingletonsInstantiated(AvoidStartupOnMissingDatabase.java:11)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:775)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:762)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:664)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:630)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:678)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:549)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:490)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1144)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
at …Run Code Online (Sandbox Code Playgroud) 我RDS为我的开发团队编写了一个自定义模块,用于部署RDS实例。我正在使用BitBucket源代码控制,并且我正在尝试集成一个BitBucket管道以terraform validate在我的.tf文件上运行以验证语法,然后再将其提供给开发人员使用。terraform init运行良好,但是当我运行时terraform validate出现以下错误:Error: Missing required argument. The argument "region" is required, but was not set.查看文档后,我很困惑,如果该命令实际上没有部署任何内容,为什么会检查已声明的提供程序?诚然,我是编写模块的新手。也许这不是我想要完成的正确命令?
Terraform version: v0.12.7
AWS Provider version: 2.24
bitbucket-pipelines.yml:
image: hashicorp/terraform:full
pipelines:
branches:
master:
- step:
script:
- terraform version
- terraform init
- terraform validate
Run Code Online (Sandbox Code Playgroud)
Module tree:
??? CHANGELOG.md
??? README.md
??? bitbucket-pipelines.yml
??? main.tf
??? modules
? ??? db_instance
? ? ??? README.md
? ? …Run Code Online (Sandbox Code Playgroud) bitbucket continuous-deployment terraform terraform-provider-aws
我是 Github Actions 的新手,我正在尝试找到一种方法来实现以下功能:每当一个步骤失败时,它会显示它失败(将提供正确的反馈),但仍会继续执行其他步骤。
目前,失败导致步骤停止:

我见过最流行的建议是使用 continue-on-error,但这似乎使该步骤的结论为“成功”,除非您进入日志,否则不会显示它失败。

在上面的屏幕截图中,“秘密”步骤失败了,但除非输入日志,否则它似乎是成功的。
在阅读此线程时,我开始怀疑 GH 操作中可能尚不存在此功能。
我还尝试为每个步骤和/或工作使用条件。例如,我尝试过:
if: ${{ success() }} || ${{ failure() }} - 这根本没有提供所需的功能,步骤失败并且下一步没有开始。
if: succeeded() || failed()- 从上面的 Github 社区线程中获取此语法,但它生成了一个语法错误(这是有道理的,因为它与此处指定的语法不兼容)。
总而言之,我正在寻找一种方法来使失败的步骤表明它们失败了,并且仍然使工作流继续进行下一步。
谢谢!
我很困惑在哪里使用变量以及在ARM模板中使用参数的位置.我们如何打这个电话?
引用的脚本使用两者.我更好奇使用变量的理由.
参考
示例服务Fabric Azure部署脚本
azure continuous-deployment azure-resource-manager azure-resource-group azure-template