diff --git a/.gitignore b/.gitignore index 96f0a5e2..658683b1 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,7 @@ package-lock.json public/* /public/* storage/framework/laravel-excel/* +.vapor/ +.env.production +.env.staging +.env.development diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..9868fcf9 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,91 @@ +// Webhook + Gitlab git pull + Vapor + +// def payload = readJSON text: "${payload}" +// String userName = payload.user_name +// String userEmail = payload.user_email +// String httpUrl = payload.project.http_url + + +pipeline { + agent { + docker { + image 'dillonngo/docker-based-image:poc' + args "--group-add 992 -v /var/run/docker.sock:/var/run/docker.sock" + } + } + environment { + HOME = '.' + } + stages { + stage('Download source code from Git') { + steps { + script{ + switch(GIT_BRANCH) { + case "vapor/production": + case "vapor/staging": + case "vapor/development": + git( + url: 'https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git', + credentialsId: 'gitlab-jenkins-localhost', + branch: GIT_BRANCH + ) + case "origin/dillon/34-jenkins-vapor": + git( + url: 'https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git', + credentialsId: 'gitlab-jenkins-localhost', + branch: 'dillon/34-jenkins-vapor' + ) + break + } + } + } + } + + stage('Install') { + steps { + sh 'composer update' + } + } + + stage('Tests') { + steps { + sh 'vendor/bin/phpunit tests/Unit' + } + } + + stage('Deploy') { + steps { + script{ + String gitCommitMessage = getCommitMessage() + println("GIT CommitMessage: " + gitCommitMessage) + println("GIT GIT_BRANCH: " + GIT_BRANCH) + switch(GIT_BRANCH) { + case "vapor/production": + sh "vendor/bin/vapor deploy production --message='${gitCommitMessage}'" + break + case "vapor/staging": + sh "vendor/bin/vapor deploy staging --message='${gitCommitMessage}'" + break + case "vapor/development": + sh "vendor/bin/vapor deploy development --message='${gitCommitMessage}'" + break + case "origin/dillon/34-jenkins-vapor": + sh "vendor/bin/vapor deploy development --message='${gitCommitMessage}'" + break + } + } + } + } + } +} + +@NonCPS +String getCommitMessage(){ + commitMessage = " " + for ( changeLogSet in currentBuild.changeSets){ + for (entry in changeLogSet.getItems()){ + commitMessage = entry.msg + } + } + return commitMessage +} diff --git a/composer.json b/composer.json index 5cf6ba23..9f1228f0 100644 --- a/composer.json +++ b/composer.json @@ -22,6 +22,8 @@ "laravel/legacy-factories": "^1.3", "laravel/tinker": "^2.5", "league/fractal": "^0.20.1", + "laravel/vapor-cli": "^1.60", + "laravel/vapor-core": "^2.33", "maatwebsite/excel": "^3.1", "predis/predis": "^2.1", "rinvex/countries": "^6.1", diff --git a/development.Dockerfile b/development.Dockerfile new file mode 100644 index 00000000..53dee762 --- /dev/null +++ b/development.Dockerfile @@ -0,0 +1,3 @@ +FROM laravelphp/vapor:php74 + +COPY . /var/task diff --git a/production.Dockerfile b/production.Dockerfile new file mode 100644 index 00000000..53dee762 --- /dev/null +++ b/production.Dockerfile @@ -0,0 +1,3 @@ +FROM laravelphp/vapor:php74 + +COPY . /var/task diff --git a/resources/assets/images/—Pngtree—2019 chinese new year lantern_951828.jpg b/resources/assets/images/—Pngtree—2019 chinese new year lantern_951828.jpg deleted file mode 100644 index dd7ceda3..00000000 Binary files a/resources/assets/images/—Pngtree—2019 chinese new year lantern_951828.jpg and /dev/null differ diff --git a/resources/views/layouts/base_login.blade.php b/resources/views/layouts/base_login.blade.php index eca47351..81be4949 100644 --- a/resources/views/layouts/base_login.blade.php +++ b/resources/views/layouts/base_login.blade.php @@ -125,4 +125,4 @@ -@endsection \ No newline at end of file +@endsection diff --git a/staging.Dockerfile b/staging.Dockerfile new file mode 100644 index 00000000..53dee762 --- /dev/null +++ b/staging.Dockerfile @@ -0,0 +1,3 @@ +FROM laravelphp/vapor:php74 + +COPY . /var/task diff --git a/vapor.yml b/vapor.yml new file mode 100644 index 00000000..1409a9a4 --- /dev/null +++ b/vapor.yml @@ -0,0 +1,49 @@ +id: 52493 +name: shipping-portal +environments: + production: + domain: production.portal.izyim.com + memory: 1024 + cli-memory: 512 + database: cief-rds-mysql + storage: shipping-portal-production + runtime: 'docker' + timeout: 180 + build: + - 'composer update' + - 'npm install' + - 'npm run dev' + - 'gulp build' + deploy: + - 'php artisan migrate --force' + staging: + domain: staging.portal.izyim.com + memory: 1024 + cli-memory: 512 + database: cief-rds-mysql + storage: shipping-portal-staging + runtime: 'docker' + timeout: 180 + build: + - 'composer update' + - 'npm install' + - 'npm run dev' + - 'gulp build' + deploy: + - 'php artisan migrate --force' + development: + domain: dev.portal.izyim.com + memory: 1024 + cli-memory: 512 + database: cief-rds-mysql + storage: shipping-portal-development + runtime: 'docker' + timeout: 180 + build: + - 'composer update' + - 'npm install' + - 'npm run dev' + - 'gulp build' + deploy: + - 'php artisan migrate --force' +