Grails Migrations Plugin - database

I have an issue with the Grails Migrations plugin (version 1.3.2). I have a changelog setup of groovy files to run, however when I run "dbm-update" and the database is already populated, the command errors out FROM JENKINS. If I run the same command from my local machine, "dbm-update" just immediately finished because the database is already up-to-date.
From what I read and how I understand it to work, "dbm-update" should run any changesets that have not been run yet. I don't know why Jenkins would behave differently. And just to note, I'm using the grails wrapper to build on jenkins and I did test "dbm-update" with the grails wrapper on my local machine and it is working properly.

Related

gitlab CI + gradle + locally is not executing selenium test with shell executor

I am new to gradle and trying to fix a old gradle project. I am able to run it on local cmd using - gradle test 'taskToExecute' and it is able to run tests.
Then I tried to switch to Gitlab CI/CD. I was able to install gitlab runner and specific runner setup on gitlab. I have 2 stages Build and Test. Build stages gets completed everytime but with test stage I don't know the problem it always exit with timeout Either I set up timeout limit to 30 minute or 3 hours. I am also not sure if it running the selenium tests as test stage is getting completed very early.
I am using windows shell executor with gitlab runner. Will be posting screen shot for more details.
Gradle version - 7.2
Gitlab-runner version - 15.3.0
Need help to fix this issue.
I tried executing the same thing on my local machine and it works fine. As I am trying to run it using gitlab runner which is also installed on my local system I wanted to see the result that test gets executed and processed the reports.

Migrations in CakePHP 4 not working correctly?

I'm running a fresh install of CakePHP 4 and I'm trying to create an initial migration for the database. The migration itself is build correctly but the command fails to mark the migrations as done:
~/code$ bin/cake bake migration_snapshot Initial
Creating file /home/vagrant/code/config/Migrations/20200125204245_Initial.php
Wrote `/home/vagrant/code/config/Migrations/20200125204245_Initial.php`
Marking the migration 20200125204245_Initial as migrated...
Exception: Shell class for "Migrations" could not be found. If you are trying to use a plugin shell, that was loaded via $this->addPlugin(), you may need to update bin/cake.php to match https://github.com/cakephp/app/tree/master/bin/cake.php
In [/home/vagrant/code/vendor/cakephp/cakephp/src/Console/ShellDispatcher.php, line 332]
Since the migration is created successfully I'm pretty sure the plugin is installed correctly but somehow Bake can't access it?
The installed versions are:
CakePHP 4.0.2
CakePHP/Bake 2.0.4
CakePHP/Migrations 3.0.0-beta2
Apparently it's a bug and an issue has been created:
https://github.com/cakephp/bake/issues/638

Loopback 3 & Angular 2 generation of /reset-password endpoint unrealiable

We are building an application that so far has a simple user management implementation. This question relates to the built-in password resetting functionality of Loopback v3. User management is being worked on a model derived from the built-in User, and it is called MyCustomUser
Each time code changes are pushed into a GitHub repo, we have Jenkins build a Docker container, and inside of it run npm install then lb-sdk (with suitable parameters) then ng build --env=prod and finally node .. After this happens, the application runs normally, BUT:
When performing the same deployment commands locally (on my own linux laptop), the API endpoints /MyCustomUsers/reset and /MyCustomUsers/reset-password are created (i.e. they are visible and manipulable via the Strongloop Explorer)
When the deployment is run by Jenkins in the Docker container, only one of the two API endpoints is created, /MyCustomUsers/reset. God only knows where the other endpoint, /MyCustomUsers/reset-password, ends up.
Obviously, all deployments are run against the same codebase (i.e. the same commit ID of the GitHub repo). It is bewildering how the service behaves perfectly on localhost but not on the cloud-based docker container.
Sounds like you are running two different versions of the Loopback-Angular2-SDK. From what I've understood the SDK for Angular2 is still in heavy beta and not yet ready for production. However this doesn't excuse the difference, but it really sounds like two different versions.
We are using the same build-flow as you, are your package.json identical when it comes to #mean-expert/loopback-sdk-builder?
The guys working with the SDK-generator are really good at responding in their issue-section, would recommend asking there otherwise.
It turns out that the remote docker was running node 6.9.2 and npm 3.10.9, whereas I was running node 6.10.3 and npm 3.10.10. After making the docker instance run the same versions as I had locally and deploying the package.json along with its npm-shrinkwrap.json, the endpoint was correctly generated.

Google App Engine Source Not Updating PHP

I cannot get my server code to update. I'm running a PHP instance on GAE and no matter what I do, the files won't update. In the source code view, I can see the files have updated, but when I attempt to access the updated file, I'm still viewing the old version. I've also attempted disconnecting my Bitbucket repo and using the appcfg.py update project-name command, but the files aren't refreshing when I attempt to access them. I'm not sure what to do to force the changes to take place.
My app.yaml contains the following code
- url: /(.+\.php)$
script: \1
secure: always
So the files should be getting read, right?
I was able to figure out what went wrong. I downloaded my code using appcfg.py download_app -A <your_app_id> -V <your_app_version> <output-dir> and noticed that I was downloading the old versions of the files (and wasn't downloading the new files). Turns out using source control within GAE will upload new code, but won't deploy it. I attempted to use appcfg.py update project-name one more time, but it didn't work. Turns out I didn't disconnect my Bitbucket account (could have sworn that I did...). Once disconnected, I was able to update the project using appcfg.py update project-name. While I was figuring this out, I reached out to Google support and received this message:
To use the feature of push to deploy you need to spin-up the Jenkins
Instance on GCE (Google Compute Engine) and then it will take the
updated code and execute it in the environment. Go through [1] for how
to enable the Jenkins instance and its configuration according to
different run time.
In your issue, you just mirrored the code from Bit Bucket to Cloud
Repository, as it is just doing the version control for the
application not executing the application. So basically you have have
the option of using Jenkins instance as I described above to test the
different version of the code or using the appcfg.py update command
from your local repository.
I haven't attempted to install and use Jenkins since I fixed it after disconnecting my Bitbucket account), but it may help others who have run into this problem.

how do i run script after successful build in jenkins

I am running automated builds in jenkins after successful build the jars are copying in to my scp repository.
I configured in post build action publish artifacts in to scp repository. Everything is going fine.
But I want to stop my dev server before copying artifacts in to my dev server from jenkins.
Is it possible to stop my dev server from jenkins ?
I'm not sure if you are still looking for an answer but you can install plugin to run a script post build.
You can install the plugin by browsing to Manage Jenkin -> Manage Plugin on Jenkins. Then select Available tab. Search for the Post Build Task plugin and install

Resources