actions / setup-java

Set up your GitHub Actions workflow with a specific version of Java
MIT License
1.57k stars 746 forks source link

Add support for multiple servers. #85

Open drewctaylor opened 4 years ago

drewctaylor commented 4 years ago

Currently, as I understand it, the user may specify only one server, as follows:

- name: Setup Java.
  uses: actions/setup-java@v1
  with:
    java-version: 1.8
    server-id: value-of-server-id
    server-username: SERVER_USERNAME
    server-password: SERVER_PASSWORD

Which produces the following xml in the settings.xml file:

<server>
  <id>value-of-server-id</id>
  <username>value-of-server-username</username>
  <password>value-of-server-password</password>
</server>

However, it would be useful to be able to specify more than one server. For example, this yaml:

- name: Setup Java.
  uses: actions/setup-java@v1
  with:
    java-version: 1.8
    server-list:
      - server-id: value-of-server-id-1
        server-username: SERVER_USERNAME_1
        server-password: SERVER_PASSWORD_1
      - server-id: value-of-server-id-2
        server-username: SERVER_USERNAME_2
        server-password: SERVER_PASSWORD_2

Might produce the following xml in the settings.xml file:

<server>
  <id>value-of-server-id-1</id>
  <username>value-of-server-username-1</username>
  <password>value-of-server-password-1</password>
</server>
<server>
  <id>value-of-server-id-2</id>
  <username>value-of-server-username-2</username>
  <password>value-of-server-password-2</password>
</server>

While it would be valuable in general to be able to specify more than one server, it should be especially valuable in the context of Github, as it seems for now, in order to reference multiple packages from maven.pkg.github.com, the user must reference each package's repository in their pom.xml.

If the above configuration were possible, a user could then reference the artifacts at value-of-server-id-1 and value-of-server-id-2 in their pom.xml as follows:

<dependencies>
  <dependency>
    <groupId>group-id-for-owner</groupId>
    <artifactId>artifact-id-from-repository-1</artifactId>
    <version>version-1</version>
  </dependency>

  <dependency>
    <groupId>group-id-for-owner</groupId>
    <artifactId>artifact-id-from-repository-2</artifactId>
    <version>version-2</version>
  </dependency>
</dependencies>

<repositories>
  <repository>
    <id>value-of-server-id-1</id>
    <name>GitHub Packages</name>
    <url>https://maven.pkg.github.com/owner/artifact-id-from-repository-1</url>
  </repository>
  <repository>
    <id>value-of-server-id-2</id>
    <name>GitHub Packages</name>
    <url>https://maven.pkg.github.com/owner/artifact-id-from-repository-2</url>
  </repository>
</repositories>
MCLonips commented 3 years ago

what is the current state of this issue?

perkam commented 3 years ago

Same question here. Is this feature on the roadmap? It would be really useful.

dmitry-shibanov commented 3 years ago

Hello everyone. Unfortunately it's not possible to implement right now, because GitHub does not support multiple parameters for arguments. https://github.com/actions/toolkit/issues/184

torrespro commented 3 years ago

https://github.com/marketplace/actions/maven-settings-action

jsoref commented 1 year ago

Surely this could be supported with either a toJSON / fromJSON or by taking a file parameter which contains the relevant content.

Andreiasilva1 commented 1 year ago

Gostaria de saber como funciona

kevinheins commented 4 months ago

This would be really helpful to have. @IvanZosimov you closed the duplicate https://github.com/actions/setup-java/issues/427, can you provide an update or ping who can push this forward?

roman-bicherschii commented 2 months ago

I run into the same issue :-( ! Would be really neat to either

  1. be able to configure multiple servers,
  2. or to access all packages of a given organization via single organization's server: eg: https://maven.pkg.github.com// over https://maven.pkg.github.com//
fbonander commented 1 day ago

@roman-bicherschii You can use wildcards to access multiple repos

https://maven.pkg.github.com/MyOrg/*