• ■ ■ ■ ■ ■ ■
    pom.xml
    skipped 8 lines
    9 9   <version>1.0.5</version>
    10 10   </parent>
    11 11   <artifactId>server</artifactId>
    12  - <version>4.8.0</version>
     12 + <version>4.8.1</version>
    13 13   <packaging>pom</packaging>
    14 14   <build>
    15 15   <finalName>${project.groupId}.${project.artifactId}-${project.version}</finalName>
    skipped 538 lines
    554 554   </repositories>
    555 555   <properties>
    556 556   <commons.version>2.0.11</commons.version>
    557  - <k8shelper.version>2.1.5</k8shelper.version>
     557 + <k8shelper.version>2.1.6</k8shelper.version>
    558 558   <slf4j.version>1.7.5</slf4j.version>
    559 559   <logback.version>1.2.0</logback.version>
    560 560   <antlr.version>4.7.2</antlr.version>
    skipped 15 lines
  • ■ ■ ■ ■
    server-core/pom.xml
    skipped 6 lines
    7 7   <parent>
    8 8   <groupId>io.onedev</groupId>
    9 9   <artifactId>server</artifactId>
    10  - <version>4.8.0</version>
     10 + <version>4.8.1</version>
    11 11   </parent>
    12 12   <build>
    13 13   <plugins>
    skipped 311 lines
  • ■ ■ ■ ■ ■ ■
    server-core/src/main/java/io/onedev/server/buildspec/BuildSpec.java
    skipped 1000 lines
    1001 1001   }
    1002 1002   }
    1003 1003  
     1004 + @SuppressWarnings("unused")
     1005 + private void migrate9(VersionedYamlDoc doc, Stack<Integer> versions) {
     1006 + for (NodeTuple specTuple: doc.getValue()) {
     1007 + String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue();
     1008 + if (specObjectKey.equals("jobs")) {
     1009 + SequenceNode jobsNode = (SequenceNode) specTuple.getValueNode();
     1010 + for (Node jobsNodeItem: jobsNode.getValue()) {
     1011 + MappingNode jobNode = (MappingNode) jobsNodeItem;
     1012 + for (NodeTuple jobTuple: jobNode.getValue()) {
     1013 + String jobTupleKey = ((ScalarNode)jobTuple.getKeyNode()).getValue();
     1014 + if (jobTupleKey.equals("steps")) {
     1015 + SequenceNode stepsNode = (SequenceNode) jobTuple.getValueNode();
     1016 + for (Node stepsNodeItem: stepsNode.getValue()) {
     1017 + MappingNode stepNode = (MappingNode) stepsNodeItem;
     1018 + if (stepNode.getTag().getValue().equals("!CommandStep")) {
     1019 + stepNode.getValue().add(new NodeTuple(new ScalarNode(Tag.STR, "useTTY"),
     1020 + new ScalarNode(Tag.BOOL, "false")));
     1021 + }
     1022 + }
     1023 + }
     1024 + }
     1025 + }
     1026 + } else if (specObjectKey.equals("stepTemplates")) {
     1027 + SequenceNode stepTemplatesNode = (SequenceNode) specTuple.getValueNode();
     1028 + for (Node stepTemplatesNodeItem: stepTemplatesNode.getValue()) {
     1029 + MappingNode stepTemplateNode = (MappingNode) stepTemplatesNodeItem;
     1030 + for (NodeTuple stepTemplateTuple: stepTemplateNode.getValue()) {
     1031 + String stepTemplateTupleKey = ((ScalarNode)stepTemplateTuple.getKeyNode()).getValue();
     1032 + if (stepTemplateTupleKey.equals("steps")) {
     1033 + SequenceNode stepsNode = (SequenceNode) stepTemplateTuple.getValueNode();
     1034 + for (Node stepsNodeItem: stepsNode.getValue()) {
     1035 + MappingNode stepNode = (MappingNode) stepsNodeItem;
     1036 + if (stepNode.getTag().getValue().equals("!CommandStep")) {
     1037 + stepNode.getValue().add(new NodeTuple(new ScalarNode(Tag.STR, "useTTY"),
     1038 + new ScalarNode(Tag.BOOL, "false")));
     1039 + }
     1040 + }
     1041 + }
     1042 + }
     1043 + }
     1044 + }
     1045 + }
     1046 + }
     1047 +
    1004 1048  }
    1005 1049   
  • ■ ■ ■ ■ ■ ■
    server-core/src/main/java/io/onedev/server/buildspec/step/CommandStep.java
    skipped 25 lines
    26 26  
    27 27   private List<String> commands = new ArrayList<>();
    28 28  
     29 + private boolean useTTY;
     30 +
    29 31   @Editable(order=100, description="Specify docker image to execute commands inside")
    30 32   @Interpolative(variableSuggester="suggestVariables")
    31 33   @NotEmpty
    skipped 18 lines
    50 52   this.commands = commands;
    51 53   }
    52 54  
     55 + @Editable(order=120, name="Enable TTY Mode", description="Many commands print outputs with ANSI colors in "
     56 + + "TTY mode to help identifying problems easily. However some commands running in this mode may "
     57 + + "wait for user input to cause build hanging. This can normally be fixed by adding extra options "
     58 + + "to the command")
     59 + public boolean isUseTTY() {
     60 + return useTTY;
     61 + }
     62 + 
     63 + public void setUseTTY(boolean useTTY) {
     64 + this.useTTY = useTTY;
     65 + }
     66 + 
    53 67   @SuppressWarnings("unused")
    54 68   private static List<InputSuggestion> suggestVariables(String matchWith) {
    55 69   return BuildSpec.suggestVariables(matchWith, false, false);
    skipped 6 lines
    62 76  
    63 77   @Override
    64 78   public Executable getExecutable(Build build, String jobToken, ParamCombination paramCombination) {
    65  - return new CommandExecutable(getImage(), getCommands());
     79 + return new CommandExecutable(getImage(), getCommands(), isUseTTY());
    66 80   }
    67 81  
    68 82  }
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    server-core/src/main/java/io/onedev/server/migration/DataMigrator.java
    skipped 2580 lines
    2581 2581   }
    2582 2582   }
    2583 2583  
     2584 + private void migrate60(File dataDir, Stack<Integer> versions) {
     2585 + for (File file: dataDir.listFiles()) {
     2586 + if (file.getName().startsWith("Settings.xml")) {
     2587 + VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
     2588 + for (Element element: dom.getRootElement().elements()) {
     2589 + if (element.elementTextTrim("key").equals("JOB_EXECUTORS")) {
     2590 + Element valueElement = element.element("value");
     2591 + if (valueElement != null) {
     2592 + for (Element executorElement: valueElement.elements()) {
     2593 + if (executorElement.getName().equals("io.onedev.server.plugin.docker.DockerExecutor"))
     2594 + executorElement.setName("io.onedev.server.plugin.executor.docker.DockerExecutor");
     2595 + }
     2596 + }
     2597 + }
     2598 + }
     2599 + dom.writeToFile(file, false);
     2600 + }
     2601 + }
     2602 + }
     2603 +
    2584 2604  }
    2585 2605   
  • ■ ■ ■ ■
    server-plugin/pom.xml
    skipped 5 lines
    6 6   <parent>
    7 7   <groupId>io.onedev</groupId>
    8 8   <artifactId>server</artifactId>
    9  - <version>4.8.0</version>
     9 + <version>4.8.1</version>
    10 10   </parent>
    11 11   <dependencies>
    12 12   <dependency>
    skipped 22 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-archetype/pom.xml
    skipped 5 lines
    6 6   <parent>
    7 7   <groupId>io.onedev</groupId>
    8 8   <artifactId>server-plugin</artifactId>
    9  - <version>4.8.0</version>
     9 + <version>4.8.1</version>
    10 10   </parent>
    11 11   <build>
    12 12   <resources>
    skipped 44 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-authenticator-ldap/pom.xml
    skipped 4 lines
    5 5   <parent>
    6 6   <groupId>io.onedev</groupId>
    7 7   <artifactId>server-plugin</artifactId>
    8  - <version>4.8.0</version>
     8 + <version>4.8.1</version>
    9 9   </parent>
    10 10   <properties>
    11 11   <moduleClass>io.onedev.server.plugin.authenticator.ldap.LdapModule</moduleClass>
    skipped 3 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-buildspec-gradle/pom.xml
    skipped 4 lines
    5 5   <parent>
    6 6   <groupId>io.onedev</groupId>
    7 7   <artifactId>server-plugin</artifactId>
    8  - <version>4.8.0</version>
     8 + <version>4.8.1</version>
    9 9   </parent>
    10 10   <properties>
    11 11   <moduleClass>io.onedev.server.plugin.buildspec.gradle.GradleModule</moduleClass>
    skipped 3 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-buildspec-maven/pom.xml
    skipped 4 lines
    5 5   <parent>
    6 6   <groupId>io.onedev</groupId>
    7 7   <artifactId>server-plugin</artifactId>
    8  - <version>4.8.0</version>
     8 + <version>4.8.1</version>
    9 9   </parent>
    10 10   <properties>
    11 11   <moduleClass>io.onedev.server.plugin.buildspec.maven.MavenModule</moduleClass>
    skipped 3 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-buildspec-node/pom.xml
    skipped 4 lines
    5 5   <parent>
    6 6   <groupId>io.onedev</groupId>
    7 7   <artifactId>server-plugin</artifactId>
    8  - <version>4.8.0</version>
     8 + <version>4.8.1</version>
    9 9   </parent>
    10 10   <properties>
    11 11   <moduleClass>io.onedev.server.plugin.buildspec.node.NodePluginModule</moduleClass>
    skipped 4 lines
  • ■ ■ ■ ■ ■ ■
    server-plugin/server-plugin-executor-docker/pom.xml
    skipped 4 lines
    5 5   <parent>
    6 6   <groupId>io.onedev</groupId>
    7 7   <artifactId>server-plugin</artifactId>
    8  - <version>4.8.0</version>
     8 + <version>4.8.1</version>
    9 9   </parent>
    10 10   <properties>
    11  - <moduleClass>io.onedev.server.plugin.docker.DockerModule</moduleClass>
     11 + <moduleClass>io.onedev.server.plugin.executor.docker.DockerModule</moduleClass>
    12 12   </properties>
    13 13  </project>
    14 14   
  • ■ ■ ■ ■ ■ ■
    server-plugin/server-plugin-executor-docker/src/main/java/io/onedev/server/plugin/docker/DockerExecutor.java server-plugin/server-plugin-executor-docker/src/main/java/io/onedev/server/plugin/executor/docker/DockerExecutor.java
    1  -package io.onedev.server.plugin.docker;
     1 +package io.onedev.server.plugin.executor.docker;
    2 2   
    3 3  import static io.onedev.k8shelper.KubernetesHelper.cloneRepository;
    4 4  import static io.onedev.k8shelper.KubernetesHelper.getCacheInstances;
    skipped 65 lines
    70 70  import io.onedev.server.git.config.GitConfig;
    71 71  import io.onedev.server.model.support.RegistryLogin;
    72 72  import io.onedev.server.model.support.administration.jobexecutor.JobExecutor;
    73  -import io.onedev.server.plugin.docker.DockerExecutor.TestData;
     73 +import io.onedev.server.plugin.executor.docker.DockerExecutor.TestData;
    74 74  import io.onedev.server.util.ExceptionUtils;
    75 75  import io.onedev.server.util.PKCS12CertExtractor;
    76 76  import io.onedev.server.util.ServerConfig;
    skipped 516 lines
    593 593   }
    594 594   }
    595 595   
     596 + if (commandExecutable.isUseTTY())
     597 + docker.addArgs("-t");
    596 598   docker.addArgs("-w", containerWorkspace, "--entrypoint=" + containerEntryPoint);
    597 599  
    598 600   docker.addArgs(commandExecutable.getImage());
    skipped 467 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-executor-docker/src/main/java/io/onedev/server/plugin/docker/DockerModule.java server-plugin/server-plugin-executor-docker/src/main/java/io/onedev/server/plugin/executor/docker/DockerModule.java
    1  -package io.onedev.server.plugin.docker;
     1 +package io.onedev.server.plugin.executor.docker;
    2 2   
    3 3  import java.util.Collection;
    4 4   
    skipped 70 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-executor-kubernetes/pom.xml
    skipped 5 lines
    6 6   <parent>
    7 7   <groupId>io.onedev</groupId>
    8 8   <artifactId>server-plugin</artifactId>
    9  - <version>4.8.0</version>
     9 + <version>4.8.1</version>
    10 10   </parent>
    11 11   <properties>
    12 12   <moduleClass>io.onedev.server.plugin.executor.kubernetes.KubernetesModule</moduleClass>
    skipped 3 lines
  • ■ ■ ■ ■ ■ ■
    server-plugin/server-plugin-executor-kubernetes/src/main/java/io/onedev/server/plugin/executor/kubernetes/KubernetesExecutor.java
    skipped 822 lines
    823 823   } else {
    824 824   List<Action> actions = new ArrayList<>();
    825 825   CommandExecutable executable = new CommandExecutable((String) executionContext,
    826  - Lists.newArrayList("this does not matter"));
     826 + Lists.newArrayList("this does not matter"), false);
    827 827   actions.add(new Action("test", executable, ExecuteCondition.ALWAYS));
    828 828   entryExecutable = new CompositeExecutable(actions);
    829 829   }
    skipped 23 lines
    853 853   public Void visit(LeafExecutable executable, List<Integer> position) {
    854 854   String containerName = getContainerName(position);
    855 855   containerNames.add(containerName);
    856  - String image;
    857  - if (executable instanceof CommandExecutable)
    858  - image = ((CommandExecutable)executable).getImage();
    859  - else
    860  - image = "1dev/k8s-helper-" + baselineOsInfo.getHelperImageSuffix() + ":" + helperImageVersion;
    861  -
    862  - Map<Object, Object> stepContainerSpec = CollectionUtils.newHashMap(
    863  - "name", containerName,
    864  - "image", image);
     856 + Map<Object, Object> stepContainerSpec;
     857 + if (executable instanceof CommandExecutable) {
     858 + stepContainerSpec = CollectionUtils.newHashMap(
     859 + "name", containerName,
     860 + "image", ((CommandExecutable)executable).getImage());
     861 + if (((CommandExecutable) executable).isUseTTY())
     862 + stepContainerSpec.put("tty", true);
     863 + } else {
     864 + stepContainerSpec = CollectionUtils.newHashMap(
     865 + "name", containerName,
     866 + "image", "1dev/k8s-helper-" + baselineOsInfo.getHelperImageSuffix() + ":" + helperImageVersion);
     867 + }
    865 868  
    866 869   String positionStr = stringifyPosition(position);
    867 870   if (baselineOsInfo.isLinux()) {
    skipped 709 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-import-github/pom.xml
    skipped 4 lines
    5 5   <parent>
    6 6   <groupId>io.onedev</groupId>
    7 7   <artifactId>server-plugin</artifactId>
    8  - <version>4.8.0</version>
     8 + <version>4.8.1</version>
    9 9   </parent>
    10 10   <properties>
    11 11   <moduleClass>io.onedev.server.plugin.imports.github.GitHubPluginModule</moduleClass>
    skipped 3 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-import-youtrack/pom.xml
    skipped 4 lines
    5 5   <parent>
    6 6   <groupId>io.onedev</groupId>
    7 7   <artifactId>server-plugin</artifactId>
    8  - <version>4.8.0</version>
     8 + <version>4.8.1</version>
    9 9   </parent>
    10 10   <properties>
    11 11   <moduleClass>io.onedev.server.plugin.imports.youtrack.YouTrackPluginModule</moduleClass>
    skipped 3 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-report-checkstyle/pom.xml
    skipped 4 lines
    5 5   <parent>
    6 6   <groupId>io.onedev</groupId>
    7 7   <artifactId>server-plugin</artifactId>
    8  - <version>4.8.0</version>
     8 + <version>4.8.1</version>
    9 9   </parent>
    10 10   <properties>
    11 11   <moduleClass>io.onedev.server.plugin.report.checkstyle.CheckstylePluginModule</moduleClass>
    skipped 3 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-report-clover/pom.xml
    skipped 4 lines
    5 5   <parent>
    6 6   <groupId>io.onedev</groupId>
    7 7   <artifactId>server-plugin</artifactId>
    8  - <version>4.8.0</version>
     8 + <version>4.8.1</version>
    9 9   </parent>
    10 10   <properties>
    11 11   <moduleClass>io.onedev.server.plugin.report.clover.CloverPluginModule</moduleClass>
    skipped 3 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-report-jest/pom.xml
    skipped 4 lines
    5 5   <parent>
    6 6   <groupId>io.onedev</groupId>
    7 7   <artifactId>server-plugin</artifactId>
    8  - <version>4.8.0</version>
     8 + <version>4.8.1</version>
    9 9   </parent>
    10 10   <properties>
    11 11   <moduleClass>io.onedev.server.plugin.report.jest.JestTestReportModule</moduleClass>
    skipped 3 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-report-markdown/pom.xml
    skipped 4 lines
    5 5   <parent>
    6 6   <groupId>io.onedev</groupId>
    7 7   <artifactId>server-plugin</artifactId>
    8  - <version>4.8.0</version>
     8 + <version>4.8.1</version>
    9 9   </parent>
    10 10   <properties>
    11 11   <moduleClass>io.onedev.server.plugin.report.markdown.MarkdownReportModule</moduleClass>
    skipped 3 lines
  • ■ ■ ■ ■
    server-plugin/server-plugin-sso-openid/pom.xml
    skipped 5 lines
    6 6   <parent>
    7 7   <groupId>io.onedev</groupId>
    8 8   <artifactId>server-plugin</artifactId>
    9  - <version>4.8.0</version>
     9 + <version>4.8.1</version>
    10 10   </parent>
    11 11   <dependencies>
    12 12   <dependency>
    skipped 16 lines
  • ■ ■ ■ ■
    server-product/pom.xml
    skipped 6 lines
    7 7   <parent>
    8 8   <groupId>io.onedev</groupId>
    9 9   <artifactId>server</artifactId>
    10  - <version>4.8.0</version>
     10 + <version>4.8.1</version>
    11 11   </parent>
    12 12   <dependencies>
    13 13   <dependency>
    skipped 76 lines
Please wait...
Page is in error, reload to recover