-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Set up automated builds for LDC snap #21
Comments
As a secondary question: what platform architectures are currently supported by LDC (in terms of actually running on those platforms)? I imagine amd64 and x86, but any others ... ? |
Ping on this? I'm asking simply because I don't feel comfortable asking a 3rd-party webapp to hook into the ldc-developers group without an OK from others. |
Sure, let's go ahead with this – just didn't notice this earlier. |
Hmmm, well, this ran into a brick wall quickly :-P They only detect/handle repos under my own handle, despite giving them access to the ldc-developers group. I'll follow up and see what can be done ... |
In the short term, one option would be to use Launchpad to build and push the packages. Would it be OK to set up an ldc-developers team there? (I'd rather not just set up a project via my own launchpad account, although that's easy to do if need be.) |
I can't see any potential issues with that either. |
OK. There's now a new ldc-developers group on Launchpad: https://launchpad.net/~ldc-developers ... which owns a new ldc2 snap package project: https://launchpad.net/ldc2.snap ... which has a git clone of the present GitHub repo: https://code.launchpad.net/~ldc-developers/ldc2.snap/+git/ldc2.snap ... which is set up to automatically build a new snap package every time the master branch is updated (it pulls every 5 hours from the github repo): https://code.launchpad.net/~ldc-developers/+snap/ldc2 Currently it looks like i386 builds are failing, but I think that's a known issue that should be fixed shortly (https://bugs.launchpad.net/snapcraft/+bug/1665165). The amd64 build is proceeding fine so far. Are there any other processors it would be worth building for? Those available (besides amd64 and i386) are arm64, armhf, powerpc, powerpc64el and s390x. |
BTW if anyone else from the LDC team wants to sign up on Launchpad (or is already), I can add them to the members of this group, and invite them as collaborators on the snap package. Just in case an elephant falls on me at DConf, or something like that. |
This is necessary in order to ensure that CI tools can access git source repos. In support of ldc-developers#21.
My account name there is the same as here. (For whatever reason, I seem to have ended up with two accounts after the whole Ubuntu One login thing.) |
OK, you should be in the team now. An amd64 build of the updated package is now in progress now that the git/https URL issue is fixed. |
This should probably save some time as well as avoiding the need for the user to have git installed. It should also work around a problem with the Launchpad build setup not being able to clone a git repo. In support of ldc-developers#21.
This will hopefully resolve the Launchpad built system's issues when trying to clone the git repositories. In support of ldc-developers#21.
I've run into a couple of slightly unpleasant issues with the Launchpad build service which are getting in the way of building the package successfully.
Any thoughts on what would be the best way forward (with least inconvenience to LDC developers)? |
N.B. there is a 3rd option, which is to wait for the Launchpad devs to fix https://bugs.launchpad.net/launchpad-buildd/+bug/1663920. |
This should probably save some time as well as avoiding the need for the user to have git installed. It should also work around a problem with the Launchpad build setup not being able to clone LDC's git submodules (since they use `git://` URLs instead of `https://`). In support of ldc-developers#21.
This option allows users to override the default behaviour of comparing `LDC_VERSION` to the output of `git describe` and preferring the latter in the case of any difference. This should obviously be used with caution but allows the user to avoid issues that can arise when e.g. building from a source tarball that has been extracted in a subdirectory of an independent git tree (!). This is unfortunately a real possibility: apart from folks who use git to version their home directory [1], it's also proven an issue when trying to use source tarballs to build the LDC snap package [2]. [1]https://stackoverflow.com/questions/21266948/use-git-to-manage-home-directory/42946460 [2]ldc-developers/ldc2.snap#21 (comment) This provides a workaround for ldc-developers#2042.
This option allows users to override the default behaviour of comparing `LDC_VERSION` to the output of `git describe` and preferring the latter in the case of any difference. This should obviously be used with caution but allows the user to avoid issues that can arise when e.g. building from a source tarball that has been extracted in a subdirectory of an independent git tree (!). This is unfortunately a real possibility: apart from folks who use git to version their home directory [1], it's also proven an issue when trying to use source tarballs to build the LDC snap package [2]. [1]https://stackoverflow.com/questions/21266948/use-git-to-manage-home-directory/42946460 [2]ldc-developers/ldc2.snap#21 (comment) This provides a workaround for ldc-developers#2042.
This option allows users to override the default behaviour of comparing `LDC_VERSION` to the output of `git describe` and preferring the latter in the case of any difference. This should obviously be used with caution but allows the user to avoid issues that can arise when e.g. building from a source tarball that has been extracted in a subdirectory of an independent git tree (!). This is unfortunately a real possibility: apart from folks who use git to version their home directory [1], it's also proven an issue when trying to use source tarballs to build the LDC snap package [2]. [1]https://stackoverflow.com/questions/21266948/use-git-to-manage-home-directory/42946460 [2]ldc-developers/ldc2.snap#21 (comment) This provides a workaround for ldc-developers#2042.
Switching from `git://` URLs to `https://` should make it easier to avoid some CI-related issues encountered with the LDC snap package: ldc-developers/ldc2.snap#21 (comment)
Switching from `git://` URLs to `https://` should make it easier to avoid some CI-related issues encountered with the LDC snap package: ldc-developers/ldc2.snap#21 (comment)
Switching from `git://` URLs to `https://` should make it easier to avoid some CI-related issues encountered with the LDC snap package: ldc-developers/ldc2.snap#21 (comment)
Switching from `git://` URLs to `https://` should make it easier to avoid some CI-related issues encountered with the LDC snap package: ldc-developers/ldc2.snap#21 (comment)
Since this function is only ever invoked from the base directory of the LDC source tree, it does not need to recurse in order to get the correct git revision for LDC. This patch therefore adds a parameter that can be set to `TRUE` or `FALSE` depending on whether one wants to use recursion or not, and sets it to false in when calling `get_git_head_revision` in LDC's own `CMakeLists.txt`. This should prevent issues that arise when building from source tarballs that have been extracted into a subdirectory of another git tree (!). This is unfortunately a real possibility: apart from folks using git to version their home directory [1], it has also proven an issue when using source tarballs to build the LDC snap package [2]. [1]https://stackoverflow.com/questions/21266948/use-git-to-manage-home-directory/42946460 [2]ldc-developers/ldc2.snap#21 (comment) Fixes ldc-developers#2042.
Since this function is only ever invoked from the base directory of the LDC source tree, it does not need to recurse in order to get the correct git revision for LDC. This patch therefore adds a parameter that can be set to `TRUE` or `FALSE` depending on whether one wants to use recursion or not, and sets it to false in when calling `get_git_head_revision` in LDC's own `CMakeLists.txt`. This should prevent issues that arise when building from source tarballs that have been extracted into a subdirectory of another git tree (!). This is unfortunately a real possibility: apart from folks using git to version their home directory [1], it has also proven an issue when using source tarballs to build the LDC snap package [2]. [1]https://stackoverflow.com/questions/21266948/use-git-to-manage-home-directory/42946460 [2]ldc-developers/ldc2.snap#21 (comment) Fixes #2042.
Latest ltsmaster and release-1.2.x branches now work with the Launchpad build system; I have successfully built amd64 and i386 patches from the |
Since this function is only ever invoked from the base directory of the LDC source tree, it does not need to recurse in order to get the correct git revision for LDC. This patch therefore adds a parameter that can be set to `TRUE` or `FALSE` depending on whether one wants to use recursion or not, and sets it to false in when calling `get_git_head_revision` in LDC's own `CMakeLists.txt`. This should prevent issues that arise when building from source tarballs that have been extracted into a subdirectory of another git tree (!). This is unfortunately a real possibility: apart from folks using git to version their home directory [1], it has also proven an issue when using source tarballs to build the LDC snap package [2]. [1]https://stackoverflow.com/questions/21266948/use-git-to-manage-home-directory/42946460 [2]ldc-developers/ldc2.snap#21 (comment) Fixes #2042.
OK, so, both ARM builds failed (not entirely a surprise), but for different reasons.
... while
I'll have to look into whether it's possible to set different C flags for different architectures, but in any case, I think support for ARM is a slight long shot right now. Curious about what the |
I've now had a bunch of successful automated builds and uploads via Launchpad, for both i386 and amd64, so I think this issue can reasonably be considered closed. Where other architectures are concerned I think this can be addressed via separate PRs and issues. ARM builds probably need specific input/advice anyway. |
Ubuntu is now offering an automated build service for snaps, which will automatically build and push out a new revision of the snap package whenever the master branch is updated:
https://build.snapcraft.io/
This will require authorizing some GitHub hooks via my account and on behalf of the ldc-developers group. @klickverbot @JohanEngelen is it OK to move forwards with this?
The text was updated successfully, but these errors were encountered: