Vapor + Jenkinsfile setup

This commit is contained in:
Dillon Ngo
2023-10-21 04:37:18 +08:00
parent 04acbbac6f
commit 48182bf921
7 changed files with 665 additions and 25 deletions
+3
View File
@@ -13,3 +13,6 @@ npm-debug.log
yarn-error.log
/.idea
/.vscode
.vapor/
.env.production
.env.staging
Vendored
+49
View File
@@ -0,0 +1,49 @@
// 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 {
git(
url: httpUrl,
credentialsId: 'gitlab-jenkins-localhost',
branch: 'test'
)
}
}
stage('Install') {
steps {
sh 'composer update'
}
}
stage('Tests') {
steps {
sh 'vendor/bin/phpunit tests/Unit'
}
}
stage('Deploy') {
steps {
sh 'vendor/bin/vapor deploy production --message="Test Jenkins"'
}
}
}
}
+2 -1
View File
@@ -11,7 +11,8 @@
"laravel/framework": "^8.75",
"laravel/sanctum": "^2.11",
"laravel/tinker": "^2.5",
"laravel/ui": "^3.4"
"laravel/ui": "^3.4",
"laravel/vapor-core": "^2.33"
},
"require-dev": {
"facade/ignition": "^2.5",
Generated
+588 -24
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "cf14086919a839fe740e00554e4baff6",
"content-hash": "cfbb117fcd18e8b98980c1be69b99115",
"packages": [
{
"name": "asm89/stack-cors",
@@ -62,6 +62,155 @@
},
"time": "2022-01-18T09:12:03+00:00"
},
{
"name": "aws/aws-crt-php",
"version": "v1.2.2",
"source": {
"type": "git",
"url": "https://github.com/awslabs/aws-crt-php.git",
"reference": "2f1dc7b7eda080498be96a4a6d683a41583030e9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/2f1dc7b7eda080498be96a4a6d683a41583030e9",
"reference": "2f1dc7b7eda080498be96a4a6d683a41583030e9",
"shasum": ""
},
"require": {
"php": ">=5.5"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35||^5.6.3||^9.5",
"yoast/phpunit-polyfills": "^1.0"
},
"suggest": {
"ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality."
},
"type": "library",
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "AWS SDK Common Runtime Team",
"email": "aws-sdk-common-runtime@amazon.com"
}
],
"description": "AWS Common Runtime for PHP",
"homepage": "https://github.com/awslabs/aws-crt-php",
"keywords": [
"amazon",
"aws",
"crt",
"sdk"
],
"support": {
"issues": "https://github.com/awslabs/aws-crt-php/issues",
"source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.2"
},
"time": "2023-07-20T16:49:55+00:00"
},
{
"name": "aws/aws-sdk-php",
"version": "3.283.9",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "0233b9f3f2155dac35c829ce4fc1b7cdb6ff8c0a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0233b9f3f2155dac35c829ce4fc1b7cdb6ff8c0a",
"reference": "0233b9f3f2155dac35c829ce4fc1b7cdb6ff8c0a",
"shasum": ""
},
"require": {
"aws/aws-crt-php": "^1.0.4",
"ext-json": "*",
"ext-pcre": "*",
"ext-simplexml": "*",
"guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
"guzzlehttp/promises": "^1.4.0 || ^2.0",
"guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
"mtdowling/jmespath.php": "^2.6",
"php": ">=7.2.5",
"psr/http-message": "^1.0 || ^2.0"
},
"require-dev": {
"andrewsville/php-token-reflection": "^1.4",
"aws/aws-php-sns-message-validator": "~1.0",
"behat/behat": "~3.0",
"composer/composer": "^1.10.22",
"dms/phpunit-arraysubset-asserts": "^0.4.0",
"doctrine/cache": "~1.4",
"ext-dom": "*",
"ext-openssl": "*",
"ext-pcntl": "*",
"ext-sockets": "*",
"nette/neon": "^2.3",
"paragonie/random_compat": ">= 2",
"phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
"psr/cache": "^1.0",
"psr/simple-cache": "^1.0",
"sebastian/comparator": "^1.2.3 || ^4.0",
"yoast/phpunit-polyfills": "^1.0"
},
"suggest": {
"aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
"doctrine/cache": "To use the DoctrineCacheAdapter",
"ext-curl": "To send requests using cURL",
"ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
"ext-sockets": "To use client-side monitoring"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0-dev"
}
},
"autoload": {
"files": [
"src/functions.php"
],
"psr-4": {
"Aws\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "Amazon Web Services",
"homepage": "http://aws.amazon.com"
}
],
"description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
"homepage": "http://aws.amazon.com/sdkforphp",
"keywords": [
"amazon",
"aws",
"cloud",
"dynamodb",
"ec2",
"glacier",
"s3",
"sdk"
],
"support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.283.9"
},
"time": "2023-10-20T20:03:26+00:00"
},
{
"name": "brick/math",
"version": "0.9.3",
@@ -763,33 +912,29 @@
},
{
"name": "guzzlehttp/promises",
"version": "2.0.1",
"version": "1.5.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
"reference": "111166291a0f8130081195ac4556a5587d7f1b5d"
"reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d",
"reference": "111166291a0f8130081195ac4556a5587d7f1b5d",
"url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e",
"reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0"
"php": ">=5.5"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.1",
"phpunit/phpunit": "^8.5.29 || ^9.5.23"
"symfony/phpunit-bridge": "^4.4 || ^5.1"
},
"type": "library",
"extra": {
"bamarni-bin": {
"bin-links": true,
"forward-command": false
}
},
"autoload": {
"files": [
"src/functions_include.php"
],
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
}
@@ -826,7 +971,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/2.0.1"
"source": "https://github.com/guzzle/promises/tree/1.5.3"
},
"funding": [
{
@@ -842,7 +987,7 @@
"type": "tidelift"
}
],
"time": "2023-08-03T15:11:55+00:00"
"time": "2023-05-21T12:31:43+00:00"
},
{
"name": "guzzlehttp/psr7",
@@ -960,6 +1105,56 @@
],
"time": "2023-08-27T10:13:57+00:00"
},
{
"name": "hollodotme/fast-cgi-client",
"version": "v3.1.7",
"source": {
"type": "git",
"url": "https://github.com/hollodotme/fast-cgi-client.git",
"reference": "062182d4eda73c161cc2839783acc83096ec0f37"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hollodotme/fast-cgi-client/zipball/062182d4eda73c161cc2839783acc83096ec0f37",
"reference": "062182d4eda73c161cc2839783acc83096ec0f37",
"shasum": ""
},
"require": {
"ext-json": "*",
"php": ">=7.1"
},
"require-dev": {
"ext-xdebug": ">=2.6.0"
},
"type": "library",
"autoload": {
"psr-4": {
"hollodotme\\FastCGI\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Holger Woltersdorf",
"email": "hw@hollo.me"
}
],
"description": "A PHP fast CGI client to send requests (a)synchronously to PHP-FPM.",
"keywords": [
"Socket",
"async",
"fastcgi",
"php-fpm"
],
"support": {
"issues": "https://github.com/hollodotme/fast-cgi-client/issues",
"source": "https://github.com/hollodotme/fast-cgi-client/tree/v3.1.7"
},
"time": "2021-12-07T10:10:20+00:00"
},
{
"name": "laravel/framework",
"version": "v8.83.27",
@@ -1388,6 +1583,86 @@
},
"time": "2022-05-20T13:38:08+00:00"
},
{
"name": "laravel/vapor-core",
"version": "v2.33.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/vapor-core.git",
"reference": "de2ddb6c279b8e51e9ef9cea3e0f7fda829740b2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/vapor-core/zipball/de2ddb6c279b8e51e9ef9cea3e0f7fda829740b2",
"reference": "de2ddb6c279b8e51e9ef9cea3e0f7fda829740b2",
"shasum": ""
},
"require": {
"aws/aws-sdk-php": "^3.80",
"guzzlehttp/guzzle": "^6.3|^7.0",
"guzzlehttp/promises": "^1.4.0",
"hollodotme/fast-cgi-client": "^3.0",
"illuminate/container": "^6.0|^7.0|^8.0|^9.0|^10.0",
"illuminate/http": "^6.0|^7.0|^8.0|^9.0|^10.0",
"illuminate/queue": "^6.0|^7.0|^8.0|^9.0|^10.0",
"illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0",
"monolog/monolog": "^1.12|^2.0|^3.2",
"nyholm/psr7": "^1.0",
"php": "^7.2|^8.0",
"psr/http-message": "^1.0",
"riverline/multipart-parser": "^2.0.9",
"symfony/process": "^4.3|^5.0|^6.0",
"symfony/psr-http-message-bridge": "^1.0|^2.0"
},
"require-dev": {
"mockery/mockery": "^1.2",
"orchestra/testbench": "^4.0|^5.0|^6.0|^7.0|^8.0",
"phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^8.0|^9.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0-dev"
},
"laravel": {
"providers": [
"Laravel\\Vapor\\VaporServiceProvider"
],
"aliases": {
"Vapor": "Laravel\\Vapor\\Vapor"
}
}
},
"autoload": {
"files": [
"src/debug.php"
],
"psr-4": {
"Laravel\\Vapor\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Taylor Otwell",
"email": "taylor@laravel.com"
}
],
"description": "The kernel and invocation handlers for Laravel Vapor",
"homepage": "https://github.com/laravel/vapor-core",
"keywords": [
"laravel",
"vapor"
],
"support": {
"source": "https://github.com/laravel/vapor-core/tree/v2.33.2"
},
"time": "2023-09-29T13:37:32+00:00"
},
{
"name": "league/commonmark",
"version": "2.4.1",
@@ -1828,6 +2103,72 @@
],
"time": "2023-02-06T13:44:46+00:00"
},
{
"name": "mtdowling/jmespath.php",
"version": "2.7.0",
"source": {
"type": "git",
"url": "https://github.com/jmespath/jmespath.php.git",
"reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/bbb69a935c2cbb0c03d7f481a238027430f6440b",
"reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
"symfony/polyfill-mbstring": "^1.17"
},
"require-dev": {
"composer/xdebug-handler": "^3.0.3",
"phpunit/phpunit": "^8.5.33"
},
"bin": [
"bin/jp.php"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.7-dev"
}
},
"autoload": {
"files": [
"src/JmesPath.php"
],
"psr-4": {
"JmesPath\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Declaratively specify how to extract elements from a JSON document",
"keywords": [
"json",
"jsonpath"
],
"support": {
"issues": "https://github.com/jmespath/jmespath.php/issues",
"source": "https://github.com/jmespath/jmespath.php/tree/2.7.0"
},
"time": "2023-08-25T10:54:48+00:00"
},
{
"name": "nesbot/carbon",
"version": "2.71.0",
@@ -2138,6 +2479,84 @@
},
"time": "2023-08-13T19:53:39+00:00"
},
{
"name": "nyholm/psr7",
"version": "1.8.0",
"source": {
"type": "git",
"url": "https://github.com/Nyholm/psr7.git",
"reference": "3cb4d163b58589e47b35103e8e5e6a6a475b47be"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Nyholm/psr7/zipball/3cb4d163b58589e47b35103e8e5e6a6a475b47be",
"reference": "3cb4d163b58589e47b35103e8e5e6a6a475b47be",
"shasum": ""
},
"require": {
"php": ">=7.2",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.1 || ^2.0"
},
"provide": {
"php-http/message-factory-implementation": "1.0",
"psr/http-factory-implementation": "1.0",
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"http-interop/http-factory-tests": "^0.9",
"php-http/message-factory": "^1.0",
"php-http/psr7-integration-tests": "^1.0",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.4",
"symfony/error-handler": "^4.4"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.8-dev"
}
},
"autoload": {
"psr-4": {
"Nyholm\\Psr7\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com"
},
{
"name": "Martijn van der Ven",
"email": "martijn@vanderven.se"
}
],
"description": "A fast PHP7 implementation of PSR-7",
"homepage": "https://tnyholm.se",
"keywords": [
"psr-17",
"psr-7"
],
"support": {
"issues": "https://github.com/Nyholm/psr7/issues",
"source": "https://github.com/Nyholm/psr7/tree/1.8.0"
},
"funding": [
{
"url": "https://github.com/Zegnat",
"type": "github"
},
{
"url": "https://github.com/nyholm",
"type": "github"
}
],
"time": "2023-05-02T11:26:24+00:00"
},
{
"name": "opis/closure",
"version": "3.6.3",
@@ -2533,16 +2952,16 @@
},
{
"name": "psr/http-message",
"version": "2.0",
"version": "1.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
"reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"shasum": ""
},
"require": {
@@ -2551,7 +2970,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
"dev-master": "1.1.x-dev"
}
},
"autoload": {
@@ -2566,7 +2985,7 @@
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
@@ -2580,9 +2999,9 @@
"response"
],
"support": {
"source": "https://github.com/php-fig/http-message/tree/2.0"
"source": "https://github.com/php-fig/http-message/tree/1.1"
},
"time": "2023-04-04T09:54:51+00:00"
"time": "2023-04-04T09:50:52+00:00"
},
{
"name": "psr/log",
@@ -2997,6 +3416,62 @@
],
"time": "2021-09-25T23:10:38+00:00"
},
{
"name": "riverline/multipart-parser",
"version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/Riverline/multipart-parser.git",
"reference": "2418bdfc2eab01e39bcffee808b1a365c166292a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Riverline/multipart-parser/zipball/2418bdfc2eab01e39bcffee808b1a365c166292a",
"reference": "2418bdfc2eab01e39bcffee808b1a365c166292a",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": ">=5.6.0"
},
"require-dev": {
"laminas/laminas-diactoros": "^1.8.7 || ^2.11.1",
"phpunit/phpunit": "^5.7 || ^9.0",
"psr/http-message": "^1.0",
"symfony/psr-http-message-bridge": "^1.1 || ^2.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Riverline\\MultiPartParser\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Romain Cambien",
"email": "romain@cambien.net"
},
{
"name": "Riverline",
"homepage": "http://www.riverline.fr"
}
],
"description": "One class library to parse multipart content with encoding and charset support.",
"keywords": [
"http",
"multipart",
"parser"
],
"support": {
"issues": "https://github.com/Riverline/multipart-parser/issues",
"source": "https://github.com/Riverline/multipart-parser/tree/2.1.1"
},
"time": "2023-04-28T18:53:59+00:00"
},
{
"name": "swiftmailer/swiftmailer",
"version": "v6.3.0",
@@ -4754,6 +5229,95 @@
],
"time": "2023-08-07T10:36:04+00:00"
},
{
"name": "symfony/psr-http-message-bridge",
"version": "v2.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/psr-http-message-bridge.git",
"reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/581ca6067eb62640de5ff08ee1ba6850a0ee472e",
"reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"psr/http-message": "^1.0 || ^2.0",
"symfony/deprecation-contracts": "^2.5 || ^3.0",
"symfony/http-foundation": "^5.4 || ^6.0"
},
"require-dev": {
"nyholm/psr7": "^1.1",
"psr/log": "^1.1 || ^2 || ^3",
"symfony/browser-kit": "^5.4 || ^6.0",
"symfony/config": "^5.4 || ^6.0",
"symfony/event-dispatcher": "^5.4 || ^6.0",
"symfony/framework-bundle": "^5.4 || ^6.0",
"symfony/http-kernel": "^5.4 || ^6.0",
"symfony/phpunit-bridge": "^6.2"
},
"suggest": {
"nyholm/psr7": "For a super lightweight PSR-7/17 implementation"
},
"type": "symfony-bridge",
"extra": {
"branch-alias": {
"dev-main": "2.3-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Bridge\\PsrHttpMessage\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "PSR HTTP message bridge",
"homepage": "http://symfony.com",
"keywords": [
"http",
"http-message",
"psr-17",
"psr-7"
],
"support": {
"issues": "https://github.com/symfony/psr-http-message-bridge/issues",
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.3.1"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2023-07-26T11:53:26+00:00"
},
{
"name": "symfony/routing",
"version": "v5.4.26",
+3
View File
@@ -0,0 +1,3 @@
FROM laravelphp/vapor:php74
COPY . /var/task
+3
View File
@@ -0,0 +1,3 @@
FROM laravelphp/vapor:php74
COPY . /var/task
+17
View File
@@ -0,0 +1,17 @@
id: 53440
name: vapor-laravel-explore
environments:
production:
memory: 1024
cli-memory: 512
database: vapor-laravel-poc-db
storage: vapor-laravel-explore
runtime: 'docker'
timeout: 180
build:
- 'composer update'
- 'npm install'
- 'npm run dev'
# - 'gulp build'
deploy:
- 'php artisan migrate --force'