XCode Server CI Bot Integrate error (Swift) - ios

I am trying to setup a CI server on my Macbook, I have followed the documentation on the apple website up to the point of creating a bot and integrating my build. When I attempt to integrate the build I repeatedly get the following error:
Bot Issue: error. Build Service Error.
Issue: '/Library/Developer/XcodeServer/Integrations/Caches/14a8ea2a72904f1abcecd38b1c02196b' exists and is not an empty directory (-4).
Integration Number: 13.
Integration URL: https://DavidMcQueens-MacBook-Pro-2.local/xcode/bots/BF817C9/integrations
Description: '/Library/Developer/XcodeServer/Integrations/Caches/14a8ea2a72904f1abcecd38b1c02196b' exists and is not an empty directory (-4).
I have manually deleted the folders in this location, as well as changing the permissions incase the server was having issues writing. Each time I run, I receive the same error. Even after I have deleted the folder so it is empty before the integration.
Does anyone have any ideas on how to solve this issue? I have built my iOS application in Swift (which I believe should still work with the CI server)
I am running OSX Server 4.0 and the latest version of XCode.
I followed Apple's documentation for creating bots
Thanks,
EDIT:
After some experimenting and trying different things to see what the issue is, I disabled 2-factor authentication on my GitHub hosting. This appeared to solve the issue, despite the fact that I was generating a specific application key to get around 2-factor. It solved the issue for a small amount of time, and I managed to successfully get the bot to integrate a few times. However it appears to have gone back to its old tricks.
If anyone has any other knowledge on this, or has managed to get it working on their own machines it will be good to know.

So I believe I have solved this issue, the GitHub 2-factor authentication issue looks to be a red herring.
When setting up the bot, there is a section that says "Checkout the repository", I did not do this step because I already had the repository on my local machine and presumed that it would simply create the repository in another location, and server no other purpose.
However, after some investigation this step is very necessary. From what I understand, checking out the repository does create it again in another location, however this is necessary as this new repository is where the Bot's will pull changes into and build in order to perform the tests. I was trying to use the same repo for development and for the Bots, which it did not like.
Creating a clean checkout of the project (on the server), and configuring the bots in that project then allowed me to progress and get everything setup correctly. It comes down to user error. In hindsight, it makes perfect sense to have a separate repo for the bots (this is my first CI server setup), however the error messages were not helpful and I can't remember seeing this emphasised in the setup guide.

Related

"failed to get context" error against real server, works fine with mockserver

Following the ODATA V4 tutorial in step 2: app runs against mockserver, tips are given to run it against a real server. Used the existing index.html as test/mockServer.html and created a new index.html, pointing to ComponentSupport for oninit. Added cors-anywhere and adjusted the manifest. Works well, both mockserver and real.
That was in step 2 and the app worked fine also against a real server. Fast-forward to step 5 and I notice the app fails to load any data when running against a real server. Long story short, the backend is throwing an error, not even "count" together with "top" is accepted. I checked the docs for ODATA, "count" does not seem to be an exclusive option.
Am I fundamentally misunderstanding the way ODATA works? I am especially puzzled by the fact that the mockserver runs fine.
EDIT: created bugreport
As reported in the closing comment of my bugreport, Microsoft has confirmed the issue: "This was due to an error in the version of the OData WebAPI library we were using in the backing service. I have an update with various fixes, including updating to the latest WebAPI library that contains this fix, that I just haven't pushed out to production yet. Let me see when if I can get that deployed."

Issue trying to launch sample project che-ide-server-extension

With Eclipse Che, I've recently been able to deploy the docker container without any issue as provided in the instructions.
I'm at the point where am trying to learn a bit more about extension development for Che, and I'm going through the small introduction on "developing your first plugin" located on the following page:
https://www.eclipse.org/che/docs/che-in-che-quickstart.html
I'm stuck at the point where I can successfully build and deploy the sample project by executing the Traefik Start, Tomcat8-IDE Start, Deploy IDE and Deploy Workspace Agent commands.
But when it comes time to navigate to the newly created 2nd workspace by clicking on the link provided in the IDE to go to the newly created 2nd workplace instance...:
... I end up getting redirected to the following error page:
I suspect that there may be some kind of configuration problem with the sample plugin project, or configuration problem with keycloak, but I'm at the point where I don't really know how to proceed in terms of troubleshooting.
(Update: 2018/07/31)
At request of #kalrsson for more information, below is a screenshot of the che-public client configuration in my Keycloak instance.
(SOLUTION Update: 2018/08/01)
Thanks to #kalrsson for pointing me in the right direction.
At first I tried only adding the needed URL to the "Valid Redirect URIs" list. Doing so allowed me to get past the issue were I was receiving the error "Invalid parameter: redirect_uri". However, this only presented me with a blank page. On this blank page, when I inspect the web browser console, I noticed the following error:
From there, I also tried to add the needed URL to WebOrigins in KeyCloak as seen below.
Doing this finally allowed me to fully load and render the secondary workspace
Can you go to keycloak_ip:5050/auth, login as admin/admin, clients, che-public, and the IP you use to redirect urls and webOrigins?
So, you need to previewURL:port both to redirectURIs and webOrigins

Umbraco: Restoring content. Could not get parent with Id

I'm working on an Umbraco cloud project. I pulled the website from the git repositories and built it. First thing to do there when you run the site is to restore the content that's in the development environment to the local project so we can create new features. Yet Umbraco fails to do so with the following error:
The source environment has thrown a Umbraco.Deploy.Exceptions.ProcessArtifactException
with message: Process pass #3 failed for artifact
umb://document/xxthexguidxofxsomexpagexxxxxxxxx. It might have been
caused by an inner Umbraco.Deploy.Exceptions.EnvironmentException with
message: Could not get parent with id xxthexxx-guid-xofx-xthe-xxhomepagexx.
The following artifacts might be involved:
umb://document/xxthexxxguidxofxxthexxhomepagexx
The technical details may contain more information.
I've noticed that I some strange errors occur if not everything is deployed in the development site in the cloud. So I made sure everything is published.. Still errors though... I'm kinda lost here.
Has anyone come across simular issues? And how did you fix it?
Thanks in advance?
This can happen for a number of reasons, so it's a bit hard to say what exactly the problem is in your case.
Most of the time this happens due to either a circular reference of some sort causing a state that can't really be restored. For example that could be a datatype having a dependency on a node - but the node doesn't exist in a blank new environment. The content restore then refuses to start until the structural data (datatypes, contenttypes and such) is completely in sync, but the datatypes will never be able to be in sync until the content node exists. It's a sort of catch22 situation that might need to be resolved manually.
I would suggest you contact support through the Cloud portal and they will assist you in getting your problem resolved.

Xcode OSX Server "Internal Error Creating Bot"

I am trying to create a bot using OSX Server 4.0 and Xcode 6.4.
My project encompasses multiple repositories and uses additional libraries as submodules. When I go to "Product > Create Bot," A dialog appears, saying "Provide repository credentials for this bot."
The dialog shows all of the repositories which I use as submodules. If I attempt to authenticate them by either SSH or https, xcode rejects my credentials.
When I click "Ignore" and finish the setup process, it says "Bot creation failed with error: Internal Error Creating Bot" and gives me no other information.
As a test, I have successfully created a sample project in github which I can create a bot for without a problem. I have tried to add submodules to the sample project and it still can create bots fine.
Can anyone help fix this?
I figured out the answer.
The problem ended up being GitSlave (http://gitslave.sourceforge.net/) which my team was using to keep our repositories updated. Something about the way GitSlave set up the repositories causes Xcode bots to fail with an internal error.
My issues accessing the repositories were unrelated to the internal error and were fixed by creating a new set of SSH keys for the bot instead of using my personal SSH keys, which had different permissions.
Hope this helps anyone else having this problem!
I managed to get past the "provide credentials" dialog, but Xcode Bots would fail with the same "Internal Error Creating Bot" error once I had stepped all the way through the wizard and clicked "Create".
The solution in my case was to change the remote.origin.url setting for my repository from a git#github.com SSH URL to a https://github.com HTTPS URL, and suddenly it just worked.
(This is kind of maddening because I checked every log file and every place where there might be an error report and found nothing. Figured it out through trial and error)

How to prevent load of meteor.local (when building ios app with phonegap)

This is an extension of a question I asked here, which went unanswered. I am attempting to use the Meteor app on my iPad that I'm hosting on my own remote server. The issue is that when I run the following command, the app builds successfully:
sudo meteor run ios-device --mobile-server=XXXX:XXXX
The problem begins when I click the build button in Xcode to deploy the app to my device. It seems to build everything OK and even load the data from my remote server. But after a few seconds, it reverts back to a local database/build. When I check the Xcode log, it says "Finished load of http://meteor.local/" so it seems to be overwriting the remote data with new, local data. I'm not sure if I have something enabled that's causing Xcode to load a local database or if there's something that I have to turn off to prevent it from loading.
UPDATE:
I've resolved the issue using the suggestion from Jey DWork to apply the missing environment variables in the Meteor server startup.
The ones I added were:
Meteor.absoluteUrl.defaultOptions.rootUrl
process.env.ROOT_URL
process.env.MOBILE_ROOT_URL
process.env.MOBILE_DDP_URL
Without setting these, the ROOT_URL seemed to be getting overwritten after the initial load. As these environment variables do not seem to be documented, I'm still going to search and see if there is a different solution to this issue (as it seems strange that the app would have to re-load itself multiple times before it's usable). For now though, this is a temporary solution.
Have a look at this post :
I've understood my problem, maybe your problem is the same, all explanations here : stackoverflow.com/questions/34658956/
Your app for smartphone must be built with --server=http://IP:PORT parameters
And
Your app for server must be started with --mobile-server http://IP:PORT parameters

Resources