extdn / github-actions-m2

137 stars 46 forks source link

Use mirror repo for unit tests to avoid need for credentials #22

Open Vinai opened 3 years ago

Vinai commented 3 years ago

The unit test build requires setting secrets.MAGENTO_MARKETPLACE_USERNAME and secrets.MAGENTO_MARKETPLACE_PASSWORD.

For myself as the maintainer that is not a problem, but it means I have to ask every contributor to set up the secrets when they open a PR... I'm just wondering, shouldn't it be possible to execute the build without the credentials, since it also works for the integration test build?

Vinai commented 3 years ago

I just found --repository=https://repo-magento-mirror.fooman.co.nz/ is used for the integration test build, but not for the unit test build. Is there a reason to stick with the "official" repo for the unit tests?

Vinai commented 3 years ago

By the way, THANK YOU @fooman for setting up the mirror!

jissereitsma commented 3 years ago

I think this is just work in progress. The first step into improving things was to add secrets, so that the secrets could be used in different actions - this is what I'm using already, but indeed, the secrets will not work with Pull Requests :( For that matter, there is no way to share an environment variable ("secret") with others than the contributors of the project.

However, the thing that you bump into is more a flaw in the documentation, than the actual workflow files. In the docs, it is mentioned to use the following snippet:

jobs:
    env:
          MAGENTO_MARKETPLACE_USERNAME: ${{ secrets.MAGENTO_MARKETPLACE_USERNAME }}
          MAGENTO_MARKETPLACE_PASSWORD: ${{ secrets.MAGENTO_MARKETPLACE_PASSWORD }}

But it is quite common that people fill in the details differently. The dependency in the workflow files is with the environment variable. The way to fill in that environment variable - for instance, using secrets or hard-coded - is up to you. (Obviously, hard-coded is not pretty.)

jobs:
    env:
          MAGENTO_MARKETPLACE_USERNAME: foo
          MAGENTO_MARKETPLACE_PASSWORD: bar

But you already changed the topic: Why not use the mirror? Good point - I see no reason not to. I'm going to fix that right away. Ideally, with a switch REPOSITORY_URL which defaults to https://repo-magento-mirror.fooman.co.nz/.

jissereitsma commented 3 years ago

Done.

Vinai commented 3 years ago

Awesome, thanks @jissereitsma. This should make it easier to use for open source modules.

Vinai commented 3 years ago

Cam this issue be closed?

fooman commented 3 years ago

Let's keep it open for the moment. I'd like to take a look at pre-seeding the Composer cache for the mirror repo.

fooman commented 3 years ago

Am still also considering pre-building images to effectively jump straight to here https://github.com/extdn/github-actions-m2/blob/master/magento-unit-tests/entrypoint.sh#L31 (could be done for integration tests too, but should stop before the set up step)

jissereitsma commented 2 years ago

@fooman As of yet, all is working fine with this change. Can we close this issue?