Dear Robert,
Are you sure you want to use Jenkins? Gitlab has built-in CI. And the CLF has acquired Allegro CL licenses for a ASDF testing (graciously donated by Franz Inc), and we have a to-do item to attempt the same for LispWorks. If you’re willing, we would like to help set up ASDF testing pipelines as part of common-lisp.net infrastructure.
If you have reasons of your own to set up a Jenkins setup and could use access to Allegro and maybe Lispworks licenses for that purpose, please reach out regarding that as well. I am not sure about any Jenkins experience among clf or cl.net volunteers, however.
Please advise,
Dave
On Tue, Oct 13, 2020 at 11:06 PM Robert Goldman rpgoldman@sift.info wrote:
Does anyone have expertise configuring Jenkins to run against a remote Gitlab install?
If so, would you please reach out to me? I have *finally* restored some of my CI support for ASDF, but I don't know how to set up my Jenkins to run against merge requests on Gitlab (if that is even possible).
I have a backlog of patches that I would like to get evaluated and merged, but could use some help with the automation.
Thanks!
Thanks for reaching out , Dave. I hadn't realized that cl.net had the full gitlab CI hooked up to it. Are there any resource issues? There are a lot of projects hosted there.
That said, are there sufficient resources there if we start running a pipeline?
-- Robert P. Goldman
On October 14, 2020 at 07:21:44, Dave Cooper (david.cooper@genworks.com(mailto:david.cooper@genworks.com)) wrote:
Dear Robert,
Are you sure you want to use Jenkins? Gitlab has built-in CI. And the CLF has acquired Allegro CL licenses for a ASDF testing (graciously donated by Franz Inc), and we have a to-do item to attempt the same for LispWorks. If you’re willing, we would like to help set up ASDF testing pipelines as part of common-lisp.net(http://common-lisp.net) infrastructure.
If you have reasons of your own to set up a Jenkins setup and could use access to Allegro and maybe Lispworks licenses for that purpose, please reach out regarding that as well. I am not sure about any Jenkins experience among clf or cl.net(http://cl.net) volunteers, however.
Please advise,
Dave
On Tue, Oct 13, 2020 at 11:06 PM Robert Goldman <rpgoldman@sift.info(mailto:rpgoldman@sift.info)> wrote:
Does anyone have expertise configuring Jenkins to run against a remote Gitlab install?
If so, would you please reach out to me? I have finally restored some of my CI support for ASDF, but I don't know how to set up my Jenkins to run against merge requests on Gitlab (if that is even possible).
I have a backlog of patches that I would like to get evaluated and merged, but could use some help with the automation.
Thanks!
-- My Best,
Dave Cooper, david.cooper@gen.works genworks.com(http://genworks.com), gendl.org(http://gendl.org) +1 248-330-2979
Hi Robert,
According to our preliminary analysis, there are sufficient resources. As you may know, common-lisp.net has recently moved into a new infrastructure.
Would you like to set some time together to have a look at what is possible out-of-the-box now, and what we might need to add in terms of putting things in place? Our Windows machine is still available as one component in the pipelines. I remember we had started setting you up an account on there, but I’m not sure if that ever got traction yet..
Thanks,
Dave
On Wed, Oct 14, 2020 at 10:02 AM Robert P. Goldman rpgoldman@sift.net wrote:
Thanks for reaching out , Dave. I hadn't realized that cl.net had the full gitlab CI hooked up to it. Are there any resource issues? There are a lot of projects hosted there.
That said, are there sufficient resources there if we start running a pipeline?
-- Robert P. Goldman
On October 14, 2020 at 07:21:44, Dave Cooper (david.cooper@genworks.com) wrote:
Dear Robert,
Are you sure you want to use Jenkins? Gitlab has built-in CI. And the CLF has acquired Allegro CL licenses for a ASDF testing (graciously donated by Franz Inc), and we have a to-do item to attempt the same for LispWorks. If you’re willing, we would like to help set up ASDF testing pipelines as part of common-lisp.net infrastructure.
If you have reasons of your own to set up a Jenkins setup and could use access to Allegro and maybe Lispworks licenses for that purpose, please reach out regarding that as well. I am not sure about any Jenkins experience among clf or cl.net volunteers, however.
Please advise,
Dave
On Tue, Oct 13, 2020 at 11:06 PM Robert Goldman rpgoldman@sift.info wrote:
Does anyone have expertise configuring Jenkins to run against a remote Gitlab install?
If so, would you please reach out to me? I have *finally* restored some of my CI support for ASDF, but I don't know how to set up my Jenkins to run against merge requests on Gitlab (if that is even possible).
I have a backlog of patches that I would like to get evaluated and merged, but could use some help with the automation.
Thanks!
-- My Best,
Dave Cooper, david.cooper@gen.works genworks.com, gendl.org +1 248-330-2979
--
My Best,
Dave Cooper, david.cooper@gen.works genworks.com, gendl.org +1 248-330-2979
https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/146 uses cl.net's shared Gitlab CI runners. It appears that the shared runner can only run one job at a time, so the pipeline that MR introduces takes close to an hour to run (and that's only testing with four implementations). I also suspect no pipelines from other projects were running at the time.
If the CLF or someone else can provide additional runners for ASDF's use, that would be a nice way to cut down on pipeline time and avoid impacting other projects.
However, as much as I love Gitlab CI, the "core" tier of it (what I /believe/ cl.net runs) does have some limitations that, given my limited Jenkins knowledge, a properly configured Jenkins setup wouldn't have.
First, the core tier is unable to test against the merged result of an MR. I don't think that one's a deal breaker as any CI is better than none at all, issues are unlikely if the merge has no conflicts, and any issues would be quickly found after the merge completed (and either fixed or rolled back). Alternatively, ASDF could enforce (via Gitlab) that MRs need to be rebased on to the target branch, effectively making the source branch equivalent to the merged result.
The tougher one to work around is caused by the forking model of contributing code. Forks are unable to use their parent's CI runners and the pipelines for MRs from forks are run in the CI context of the fork. So if ASDF has special runners for the licensed implementations they can't be used until the MR is merged. Additionally, the pipelines before merging will be slow as they'll be using the cl.net shared CI runners.
There are a couple of ways to deal with the second issue, but they all have their drawbacks. The best way would likely be to pull contributions from forks into a separate branch in the parent repo before merging to master. That would allow any ASDF specific runners to do their job, but would require some extra steps from the maintainers. (And contributors would just have to deal with their jobs running slowly before the merge). I'm sure a sufficiently motivated person could even write a Gitlab CI job that auto merged to master from this testing branch if the tests all pass.
-Eric
"Robert P. Goldman" rpgoldman@sift.net writes:
Thanks for reaching out , Dave. I hadn't realized that cl.net had the full gitlab CI hooked up to it. Are there any resource issues? There are a lot of projects hosted there.
That said, are there sufficient resources there if we start running a pipeline?
-- Robert P. Goldman
On October 14, 2020 at 07:21:44, Dave Cooper (david.cooper@genworks.com(mailto:david.cooper@genworks.com)) wrote:
Dear Robert,
Are you sure you want to use Jenkins? Gitlab has built-in CI. And the CLF has acquired Allegro CL licenses for a ASDF testing (graciously donated by Franz Inc), and we have a to-do item to attempt the same for LispWorks. If you’re willing, we would like to help set up ASDF testing pipelines as part of common-lisp.net(http://common-lisp.net) infrastructure.
If you have reasons of your own to set up a Jenkins setup and could use access to Allegro and maybe Lispworks licenses for that purpose, please reach out regarding that as well. I am not sure about any Jenkins experience among clf or cl.net(http://cl.net) volunteers, however.
Please advise,
Dave
On Tue, Oct 13, 2020 at 11:06 PM Robert Goldman <rpgoldman@sift.info(mailto:rpgoldman@sift.info)> wrote:
Does anyone have expertise configuring Jenkins to run against a remote Gitlab install?
If so, would you please reach out to me? I have finally restored some of my CI support for ASDF, but I don't know how to set up my Jenkins to run against merge requests on Gitlab (if that is even possible).
I have a backlog of patches that I would like to get evaluated and merged, but could use some help with the automation.
Thanks!
-- My Best,
Dave Cooper, david.cooper@gen.works genworks.com(http://genworks.com), gendl.org(http://gendl.org) +1 248-330-2979
Eric,
Thank you very much for this quite helpful, and in depth discussion of the issues. If Jenkins was to be preferable, would it be possible to have the Gitlab CI trigger an external Jenkins job? I believe that this is possible, because I am working on a large program (hosted on someone else's site) where the code is hosted on GitLab, but the tests are run on a separate Jenkins server, and the two are integrated using Gitlab's pipelines.
Best, R
On 14 Oct 2020, at 10:50, Eric Timmons wrote:
https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/146 uses cl.net's shared Gitlab CI runners. It appears that the shared runner can only run one job at a time, so the pipeline that MR introduces takes close to an hour to run (and that's only testing with four implementations). I also suspect no pipelines from other projects were running at the time.
If the CLF or someone else can provide additional runners for ASDF's use, that would be a nice way to cut down on pipeline time and avoid impacting other projects.
However, as much as I love Gitlab CI, the "core" tier of it (what I /believe/ cl.net runs) does have some limitations that, given my limited Jenkins knowledge, a properly configured Jenkins setup wouldn't have.
First, the core tier is unable to test against the merged result of an MR. I don't think that one's a deal breaker as any CI is better than none at all, issues are unlikely if the merge has no conflicts, and any issues would be quickly found after the merge completed (and either fixed or rolled back). Alternatively, ASDF could enforce (via Gitlab) that MRs need to be rebased on to the target branch, effectively making the source branch equivalent to the merged result.
The tougher one to work around is caused by the forking model of contributing code. Forks are unable to use their parent's CI runners and the pipelines for MRs from forks are run in the CI context of the fork. So if ASDF has special runners for the licensed implementations they can't be used until the MR is merged. Additionally, the pipelines before merging will be slow as they'll be using the cl.net shared CI runners.
There are a couple of ways to deal with the second issue, but they all have their drawbacks. The best way would likely be to pull contributions from forks into a separate branch in the parent repo before merging to master. That would allow any ASDF specific runners to do their job, but would require some extra steps from the maintainers. (And contributors would just have to deal with their jobs running slowly before the merge). I'm sure a sufficiently motivated person could even write a Gitlab CI job that auto merged to master from this testing branch if the tests all pass.
-Eric
"Robert P. Goldman" rpgoldman@sift.net writes:
Thanks for reaching out , Dave. I hadn't realized that cl.net had the full gitlab CI hooked up to it. Are there any resource issues? There are a lot of projects hosted there.
That said, are there sufficient resources there if we start running a pipeline?
-- Robert P. Goldman
On October 14, 2020 at 07:21:44, Dave Cooper (david.cooper@genworks.com(mailto:david.cooper@genworks.com)) wrote:
Dear Robert,
Are you sure you want to use Jenkins? Gitlab has built-in CI. And the CLF has acquired Allegro CL licenses for a ASDF testing (graciously donated by Franz Inc), and we have a to-do item to attempt the same for LispWorks. If you’re willing, we would like to help set up ASDF testing pipelines as part of common-lisp.net(http://common-lisp.net) infrastructure.
If you have reasons of your own to set up a Jenkins setup and could use access to Allegro and maybe Lispworks licenses for that purpose, please reach out regarding that as well. I am not sure about any Jenkins experience among clf or cl.net(http://cl.net) volunteers, however.
Please advise,
Dave
On Tue, Oct 13, 2020 at 11:06 PM Robert Goldman <rpgoldman@sift.info(mailto:rpgoldman@sift.info)> wrote:
Does anyone have expertise configuring Jenkins to run against a remote Gitlab install?
If so, would you please reach out to me? I have finally restored some of my CI support for ASDF, but I don't know how to set up my Jenkins to run against merge requests on Gitlab (if that is even possible).
I have a backlog of patches that I would like to get evaluated and merged, but could use some help with the automation.
Thanks!
-- My Best,
Dave Cooper, david.cooper@gen.works genworks.com(http://genworks.com), gendl.org(http://gendl.org) +1 248-330-2979
I have a tiny tiny bit of Jenkins expertise. Not much, but enough for my own personal use cases.
Last week, I have managed to set up a spare computer with a Jenkins instance and SBCL/CCL installed on macOS/Linux/Win10 virtual machines, and got to the point where I can quickload and run ASDF tests on those. I am thinking of exposing this machine over the Internet soon and setting it to do daily runs of bleeding edge versions of some Lisp software.
See https://cdn.discordapp.com/attachments/297478485000192010/764837503345360946...
~phoe
On 14.10.2020 18:09, Robert Goldman wrote:
Eric,
Thank you very much for this quite helpful, and in depth discussion of the issues. If Jenkins was to be preferable, would it be possible to have the Gitlab CI trigger an external Jenkins job? I believe that this is possible, because I am working on a large program (hosted on someone else's site) where the code is hosted on GitLab, but the tests are run on a separate Jenkins server, and the two are integrated using Gitlab's pipelines.
Best, R
On 14 Oct 2020, at 10:50, Eric Timmons wrote:
https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/146 uses cl.net's shared Gitlab CI runners. It appears that the shared runner can only run one job at a time, so the pipeline that MR introduces takes close to an hour to run (and that's only testing with four implementations). I also suspect no pipelines from other projects were running at the time.
If the CLF or someone else can provide additional runners for ASDF's use, that would be a nice way to cut down on pipeline time and avoid impacting other projects.
However, as much as I love Gitlab CI, the "core" tier of it (what I /believe/ cl.net runs) does have some limitations that, given my limited Jenkins knowledge, a properly configured Jenkins setup wouldn't have.
First, the core tier is unable to test against the merged result of an MR. I don't think that one's a deal breaker as any CI is better than none at all, issues are unlikely if the merge has no conflicts, and any issues would be quickly found after the merge completed (and either fixed or rolled back). Alternatively, ASDF could enforce (via Gitlab) that MRs need to be rebased on to the target branch, effectively making the source branch equivalent to the merged result.
The tougher one to work around is caused by the forking model of contributing code. Forks are unable to use their parent's CI runners and the pipelines for MRs from forks are run in the CI context of the fork. So if ASDF has special runners for the licensed implementations they can't be used until the MR is merged. Additionally, the pipelines before merging will be slow as they'll be using the cl.net shared CI runners.
There are a couple of ways to deal with the second issue, but they all have their drawbacks. The best way would likely be to pull contributions from forks into a separate branch in the parent repo before merging to master. That would allow any ASDF specific runners to do their job, but would require some extra steps from the maintainers. (And contributors would just have to deal with their jobs running slowly before the merge). I'm sure a sufficiently motivated person could even write a Gitlab CI job that auto merged to master from this testing branch if the tests all pass.
-Eric
"Robert P. Goldman" rpgoldman@sift.net writes:
Thanks for reaching out , Dave. I hadn't realized that cl.net had the full gitlab CI hooked up to it. Are there any resource issues? There are a lot of projects hosted there.
That said, are there sufficient resources there if we start running a pipeline?
-- Robert P. Goldman
On October 14, 2020 at 07:21:44, Dave Cooper (david.cooper@genworks.com(mailto:david.cooper@genworks.com)) wrote:
Dear Robert,
Are you sure you want to use Jenkins? Gitlab has built-in CI. And the CLF has acquired Allegro CL licenses for a ASDF testing (graciously donated by Franz Inc), and we have a to-do item to attempt the same for LispWorks. If you’re willing, we would like to help set up ASDF testing pipelines as part of common-lisp.net(http://common-lisp.net) infrastructure.
If you have reasons of your own to set up a Jenkins setup and could use access to Allegro and maybe Lispworks licenses for that purpose, please reach out regarding that as well. I am not sure about any Jenkins experience among clf or cl.net(http://cl.net) volunteers, however.
Please advise,
Dave
On Tue, Oct 13, 2020 at 11:06 PM Robert Goldman <rpgoldman@sift.info(mailto:rpgoldman@sift.info)> wrote:
Does anyone have expertise configuring Jenkins to run against a remote Gitlab install?
If so, would you please reach out to me? I have finally restored some of my CI support for ASDF, but I don't know how to set up my Jenkins to run against merge requests on Gitlab (if that is even possible).
I have a backlog of patches that I would like to get evaluated and merged, but could use some help with the automation.
Thanks!
-- My Best,
Dave Cooper, david.cooper@gen.works genworks.com(http://genworks.com), gendl.org(http://gendl.org) +1 248-330-2979
I think I'm in the same boat as you, unfortunately. I know it's possible to integrate Jenkins and Gitlab, but I've never set it up myself. A brief search seems to indicate that the Gitlab sanctioned way of doing it is not available in Core (https://docs.gitlab.com/ee/integration/jenkins.html). It looks like there are Jenkins plugins to do it (https://plugins.jenkins.io/gitlab-plugin/), but I don't use Jenkins and have zero way of evaluating the quality.
If you decide to use Gitlab CI with ASDF specific runners for the licensed implementations, I'd recommend giving regular contributors Developer access to the ASDF repo. This would let the people that are most likely going to be impacted by slow test times and lack of licensed implementations the ability to use the ASDF runners by doing all their work in the parent repo. The master branch can then be protected (if it isn't already) and configured to not allow Developers to push to it, so that MRs are still required.
Infrequent or one off contributors would just have to deal with the slow test times and someone with Developer rights would have to merge to some temporary branch to test the licensed implementations before merging to master.
-Eric
"Robert Goldman" rpgoldman@sift.info writes:
Eric,
Thank you very much for this quite helpful, and in depth discussion of the issues. If Jenkins was to be preferable, would it be possible to have the Gitlab CI trigger an external Jenkins job? I believe that this is possible, because I am working on a large program (hosted on someone else's site) where the code is hosted on GitLab, but the tests are run on a separate Jenkins server, and the two are integrated using Gitlab's pipelines.
Best, R
On 14 Oct 2020, at 10:50, Eric Timmons wrote:
https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/146 uses cl.net's shared Gitlab CI runners. It appears that the shared runner can only run one job at a time, so the pipeline that MR introduces takes close to an hour to run (and that's only testing with four implementations). I also suspect no pipelines from other projects were running at the time.
If the CLF or someone else can provide additional runners for ASDF's use, that would be a nice way to cut down on pipeline time and avoid impacting other projects.
However, as much as I love Gitlab CI, the "core" tier of it (what I /believe/ cl.net runs) does have some limitations that, given my limited Jenkins knowledge, a properly configured Jenkins setup wouldn't have.
First, the core tier is unable to test against the merged result of an MR. I don't think that one's a deal breaker as any CI is better than none at all, issues are unlikely if the merge has no conflicts, and any issues would be quickly found after the merge completed (and either fixed or rolled back). Alternatively, ASDF could enforce (via Gitlab) that MRs need to be rebased on to the target branch, effectively making the source branch equivalent to the merged result.
The tougher one to work around is caused by the forking model of contributing code. Forks are unable to use their parent's CI runners and the pipelines for MRs from forks are run in the CI context of the fork. So if ASDF has special runners for the licensed implementations they can't be used until the MR is merged. Additionally, the pipelines before merging will be slow as they'll be using the cl.net shared CI runners.
There are a couple of ways to deal with the second issue, but they all have their drawbacks. The best way would likely be to pull contributions from forks into a separate branch in the parent repo before merging to master. That would allow any ASDF specific runners to do their job, but would require some extra steps from the maintainers. (And contributors would just have to deal with their jobs running slowly before the merge). I'm sure a sufficiently motivated person could even write a Gitlab CI job that auto merged to master from this testing branch if the tests all pass.
-Eric
"Robert P. Goldman" rpgoldman@sift.net writes:
Thanks for reaching out , Dave. I hadn't realized that cl.net had the full gitlab CI hooked up to it. Are there any resource issues? There are a lot of projects hosted there.
That said, are there sufficient resources there if we start running a pipeline?
-- Robert P. Goldman
On October 14, 2020 at 07:21:44, Dave Cooper (david.cooper@genworks.com(mailto:david.cooper@genworks.com)) wrote:
Dear Robert,
Are you sure you want to use Jenkins? Gitlab has built-in CI. And the CLF has acquired Allegro CL licenses for a ASDF testing (graciously donated by Franz Inc), and we have a to-do item to attempt the same for LispWorks. If you’re willing, we would like to help set up ASDF testing pipelines as part of common-lisp.net(http://common-lisp.net) infrastructure.
If you have reasons of your own to set up a Jenkins setup and could use access to Allegro and maybe Lispworks licenses for that purpose, please reach out regarding that as well. I am not sure about any Jenkins experience among clf or cl.net(http://cl.net) volunteers, however.
Please advise,
Dave
On Tue, Oct 13, 2020 at 11:06 PM Robert Goldman <rpgoldman@sift.info(mailto:rpgoldman@sift.info)> wrote:
Does anyone have expertise configuring Jenkins to run against a remote Gitlab install?
If so, would you please reach out to me? I have finally restored some of my CI support for ASDF, but I don't know how to set up my Jenkins to run against merge requests on Gitlab (if that is even possible).
I have a backlog of patches that I would like to get evaluated and merged, but could use some help with the automation.
Thanks!
-- My Best,
Dave Cooper, david.cooper@gen.works genworks.com(http://genworks.com), gendl.org(http://gendl.org) +1 248-330-2979
Hi,
On Wed, Oct 14, 2020 at 5:51 PM Eric Timmons etimmons@mit.edu wrote:
https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/146 uses cl.net's shared Gitlab CI runners. It appears that the shared runner can only run one job at a time, so the pipeline that MR introduces takes close to an hour to run (and that's only testing with four implementations). I also suspect no pipelines from other projects were running at the time.
I've increased the number of jobs this runner can run concurrently to 3, because the VM currently has 3 cores configured. If we need to configure more, let me know and I'll have a look at it.
If the CLF or someone else can provide additional runners for ASDF's use, that would be a nice way to cut down on pipeline time and avoid impacting other projects.
There is also a machine provisioned for cl-test-grid. It's idle often, just not when a new Quicklisp release has been released. If cl-test-grid could be driven by GitLab CI, it would be easy to share the resources this machine has to spare. In that case, I think 2 extra cores would be available for running tests. It would be even better if others would step up to donate their cores.
However, as much as I love Gitlab CI, the "core" tier of it (what I /believe/ cl.net runs) does have some limitations that, given my limited Jenkins knowledge, a properly configured Jenkins setup wouldn't have.
First, the core tier is unable to test against the merged result of an MR.
I'm not sure what you mean by this. Do you mean that the CI wouldn't run tests/builds on the master branch after merging an MR?
What I do know that works: The current common-lisp.net site is being built after each merge to the master branch of that repository and the artifacts of the build used to publish the site.
I don't think that one's a deal breaker as any CI is better than none at all, issues are unlikely if the merge has no conflicts, and any issues would be quickly found after the merge completed (and either fixed or rolled back). Alternatively, ASDF could enforce (via Gitlab) that MRs need to be rebased on to the target branch, effectively making the source branch equivalent to the merged result.
The tougher one to work around is caused by the forking model of contributing code. Forks are unable to use their parent's CI runners and the pipelines for MRs from forks are run in the CI context of the fork. So if ASDF has special runners for the licensed implementations they can't be used until the MR is merged. Additionally, the pipelines before merging will be slow as they'll be using the cl.net shared CI runners.
If we can disable artifacts on the ASDF runners, we might be able to use a somewhat more liberal assignment of runners to project members: if the artifacts can't be extracted, the options for abuse will become more limited.
There are a couple of ways to deal with the second issue, but they all have their drawbacks. The best way would likely be to pull contributions from forks into a separate branch in the parent repo before merging to master. That would allow any ASDF specific runners to do their job, but would require some extra steps from the maintainers. (And contributors would just have to deal with their jobs running slowly before the merge). I'm sure a sufficiently motivated person could even write a Gitlab CI job that auto merged to master from this testing branch if the tests all pass.
That would work too. Let me know what more we can research or I can help with to help solve this issue.
-Eric
Regards,
Erik.
Erik Huelsmann ehuels@gmail.com writes:
Hi,
On Wed, Oct 14, 2020 at 5:51 PM Eric Timmons etimmons@mit.edu wrote:
https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/146 uses cl.net's shared Gitlab CI runners. It appears that the shared runner can only run one job at a time, so the pipeline that MR introduces takes close to an hour to run (and that's only testing with four implementations). I also suspect no pipelines from other projects were running at the time.
I've increased the number of jobs this runner can run concurrently to 3, because the VM currently has 3 cores configured. If we need to configure more, let me know and I'll have a look at it.
Awesome! That seems to have helped, just not as much as I had hoped (down to 45 minutes). I think at this point the issue is there's one job that takes a long time (ABCL upgrade tests @ 33 minutes) and it's one of the later jobs to run. I'll talk about that more in another reply, though.
If the CLF or someone else can provide additional runners for ASDF's use, that would be a nice way to cut down on pipeline time and avoid impacting other projects.
There is also a machine provisioned for cl-test-grid. It's idle often, just not when a new Quicklisp release has been released. If cl-test-grid could be driven by GitLab CI, it would be easy to share the resources this machine has to spare. In that case, I think 2 extra cores would be available for running tests. It would be even better if others would step up to donate their cores.
However, as much as I love Gitlab CI, the "core" tier of it (what I /believe/ cl.net runs) does have some limitations that, given my limited Jenkins knowledge, a properly configured Jenkins setup wouldn't have.
First, the core tier is unable to test against the merged result of an MR.
I'm not sure what you mean by this. Do you mean that the CI wouldn't run tests/builds on the master branch after merging an MR?
What I do know that works: The current common-lisp.net site is being built after each merge to the master branch of that repository and the artifacts of the build used to publish the site.
Sorry, I should have been more clear. I meant you can't test against the merged result before actually performing the merge (this feature: https://docs.gitlab.com/ee/ci/merge_request_pipelines/pipelines_for_merged_r...). Again, I don't think it's critical to have, but it is super annoying if a test passes for the MR but then immediately breaks once it hits master.
I don't think that one's a deal breaker as any CI is better than none at all, issues are unlikely if the merge has no conflicts, and any issues would be quickly found after the merge completed (and either fixed or rolled back). Alternatively, ASDF could enforce (via Gitlab) that MRs need to be rebased on to the target branch, effectively making the source branch equivalent to the merged result.
The tougher one to work around is caused by the forking model of contributing code. Forks are unable to use their parent's CI runners and the pipelines for MRs from forks are run in the CI context of the fork. So if ASDF has special runners for the licensed implementations they can't be used until the MR is merged. Additionally, the pipelines before merging will be slow as they'll be using the cl.net shared CI runners.
If we can disable artifacts on the ASDF runners, we might be able to use a somewhat more liberal assignment of runners to project members: if the artifacts can't be extracted, the options for abuse will become more limited.
I haven't looked into this a lot, but I think it's *possible* to disable artifact uploads for certain runner configurations (basically any configuration that uses Docker images). It's nasty, though, and would require overriding the helper image used to set up and tear down the testing environment.
It's also not clear to me that blocking artifact extraction would be sufficient (assuming you're concerned about exfiltrating license info). It's been a while since I had an Allegro license, but IIRC, it's a relatively small plain text file that could just be printed into the job log or curl'ed away to some remote computer.
There are a couple of ways to deal with the second issue, but they all have their drawbacks. The best way would likely be to pull contributions from forks into a separate branch in the parent repo before merging to master. That would allow any ASDF specific runners to do their job, but would require some extra steps from the maintainers. (And contributors would just have to deal with their jobs running slowly before the merge). I'm sure a sufficiently motivated person could even write a Gitlab CI job that auto merged to master from this testing branch if the tests all pass.
That would work too. Let me know what more we can research or I can help with to help solve this issue.
-Eric
Regards,
Erik.