Troubleshooting Builds

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

Builds in Bamboo are exactly the same as how they would be executed via command line.

Bamboo Build Process

Bamboo forks a new process for each build, and tries to reproduce the user's environment by passing down all the System and PATH variables to the build.

The new process is created using the Apache Ant Execute Task as below:

ここをクリックして展開...
AbstractBuilder.java
    /**
     * Execute the command line in a specific directory.
     *
     * @param buildContext The BuildContext for the current build
     * @param commandExecuteStreamHandler Stream Handler for the output of the execute command
     * @param extraEnvironmentVariables environment variable additional to those already in the env (e.g provided by the user via UI)
     * @param javaHome The java home value for this command
     * @param capabilitySet Capability set
     * @return -1 if the command failed
     * @throws CommandException Failure
     */
    public int executeCommand(final @NotNull BuildContext buildContext, final @NotNull CommandExecuteStreamHandler commandExecuteStreamHandler, String extraEnvironmentVariables, String javaHome, ReadOnlyCapabilitySet capabilitySet) throws CommandException
    {
        final BuildLogger buildLogger = buildLoggerManager.getBuildLogger(buildContext.getBuildResultKey());

        Commandline commandline = getSubstitutedCommandLine(buildContext, buildLogger, capabilitySet);

        extraEnvironmentVariables = substitutionBean.substituteBambooVariables(extraEnvironmentVariables, buildContext, buildLogger);

        Execute execute = new Execute(commandExecuteStreamHandler);
        execute.setWorkingDirectory(getWorkingDirectory());
        execute.setCommandline(commandline.getCommandline());

        String[] defaultEnvironmentVars = getEnvironmentSetting(extraEnvironmentVariables, javaHome);

        String[] customEnvironmentVars = getCustomEnvironmentVars(capabilitySet);
        if (customEnvironmentVars != null && customEnvironmentVars.length > 0)
        {
            defaultEnvironmentVars = (String[]) ArrayUtils.addAll(defaultEnvironmentVars, customEnvironmentVars);
        }

        execute.setEnvironment(defaultEnvironmentVars);

        checkHomeVariable(execute);

        if (ArrayUtils.contains(defaultEnvironmentVars, "BAMBOO_DEBUG_BUILD=true"))
        {
            debugBuildEnvironment(buildContext, buildLogger, execute);
        }

        try
        {
            return execute.execute();
        }
        catch (Exception e)
        {
            log.warn("Failed to execute command", e);
            throw new CommandException(e.getMessage(), e);
        }
    }

Debugging Failing Builds

If you haven't done so already, please run your build outside of Bamboo via command line as the user running the Bamboo process and confirm that build is successful.

Navigate to your local working directory BAMBOO_HOME/xml-data/build-dir/PLAN_KEY and try executing your build manually.

For E.g, if this is a Maven build then please supply the appropriate goal: mvn clean install

Please ensure that the following criteria have been met:

  • Ensure that Bamboo is running as the local user and the user executing the build via commandline owns the Bamboo process.

    Bamboo Service on Windows

    Bamboo will install itself as the SYSTEM user on Windows, ensure that you are running the Bamboo service as the local user

  • If the failing build is being executed on a remote agent, ensure that it can be executed successfully on the remote agent as the Bamboo user.
  • If your build has specific dependencies or requires you to set Environment Variables, ensure that the variables/dependencies are available to your build.
  • If your JAVA build is failing due to memory errors, then please try increasing memory allocated to your build.
最終更新日 2019 年 9 月 19 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する

このセクションの項目

Powered by Confluence and Scroll Viewport.