CakePHPで学ぶ継続的インテグレーションhttp://www.amazon.co.jp/dp/4844336789/を題材に、継続的インテグレーションの概要〜環境構築方法の解説〜実際の開発の流れを解説します。
参加される方は、ハンズオン当日までに以下の事前準備をお願いします。
ハンズオンの前に、以下の環境をご確認ください。ハンズオン会場にはネットワーク環境の提供はないので、当日ダウンロードなどは難しいです。
| phpinfo() | |
| PHP Version => 5.6.30 | |
| System => Windows NT RD00155E20242C 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586 | |
| Build Date => Jan 18 2017 19:41:45 | |
| Compiler => MSVC11 (Visual C++ 2012) | |
| Architecture => x86 | |
| Configure Command => cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--with-enchant=shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--without-analyzer" "--with-pgo" | |
| Server API => Command Line Interface | |
| Virtual Directory Support => disabled |
| var request = require('request'); | |
| var Slack = require('slack-node'); | |
| module.exports = function (context, myTimer) { | |
| var timeStamp = new Date().toISOString(); | |
| if(myTimer.isPastDue) | |
| { | |
| context.log('JavaScript is running late!'); | |
| } |
| { | |
| "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", | |
| "contentVersion": "1.0.0.0", | |
| "parameters": { | |
| "newStorageAccountName": { | |
| "type": "string", | |
| "metadata": { | |
| "description": "Unique DNS Name for the Storage Account where the Virtual Machine's disks will be placed." | |
| } | |
| }, |
| { | |
| "$schema": "http://schemas.management.azure.com/schemas/2015-01-01-preview/deploymentTemplate.json#", | |
| "contentVersion": "1.0.0.0", | |
| "parameters": { | |
| "appName": { | |
| "type": "string", | |
| "metadata": { | |
| "description": "The name of the function app that you wish to create." | |
| } | |
| }, |
| let url = "https://api.example.com/foo" | |
| let paramaters = ["foo": "bar"] | |
| let encoding = makeCustomEncoding() | |
| Alamofire.request(.GET, url, parameters: parameters, encoding: encoding) | |
| .... |
| func makeCustomEncoding() -> ParameterEncoding { | |
| return ParameterEncoding.Custom { requestConvertible, parameters in | |
| func escape(string: String) -> String { | |
| // MEMO: /, ? もエンコードされるようにオリジナルのコードに追加指定している | |
| // see https://github.com/Alamofire/Alamofire/blob/master/Source/ParameterEncoding.swift#L220 | |
| // | |
| let generalDelimitersToEncode = ":#[]@/?" // does not include "?" or "/" due to RFC 3986 - Section 3.4 | |
| let subDelimitersToEncode = "!$&'()*+,;=" | |
| let allowedCharacterSet = NSCharacterSet.URLQueryAllowedCharacterSet().mutableCopy() as! NSMutableCharacterSet |
| <?php | |
| namespace App\Model\Entity; | |
| use Cake\ORM\Entity; | |
| /** | |
| * Article Entity. | |
| * | |
| * @SWG\Definition( | |
| * definition="Article", |
CakePHPで学ぶ継続的インテグレーションhttp://www.amazon.co.jp/dp/4844336789/を題材に、継続的インテグレーションの概要〜環境構築方法の解説〜実際の開発の流れを解説します。
参加される方は、ハンズオン当日までに以下の事前準備をお願いします。
ハンズオンの前に、以下の環境をご確認ください。ハンズオン会場にはネットワーク環境の提供はないので、当日ダウンロードなどは難しいです。
| # -*- mode: ruby -*- | |
| # vi: set ft=ruby : | |
| # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | |
| VAGRANTFILE_API_VERSION = "2" | |
| Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
| if Vagrant.has_plugin?("vagrant-cachier") | |
| config.cache.scope = :box | |
| end |