├── src
├── DelphiCI.dpr
├── MyClass
│ └── myClass.pas
├── View
│ ├── main.dfm
│ └── main.pas
├── Test
│ ├── TestmyClass.pas
│ ├── DelphiCITests.dpr
│ └── DelphiCITests.dproj
├── ProjectGroup1.groupproj
└── DelphiCI.dproj
├── .gitignore
├── sonar-project.properties
├── .gitlab-ci.yml
└── README.md
/src/DelphiCI.dpr:
--------------------------------------------------------------------------------
1 | program DelphiCI;
2 |
3 | uses
4 | Vcl.Forms,
5 | main in 'View\main.pas' {Form1},
6 | myClass in 'MyClass\myClass.pas';
7 |
8 | {$R *.res}
9 |
10 | begin
11 | Application.Initialize;
12 | Application.MainFormOnTaskbar := True;
13 | Application.CreateForm(TForm1, Form1);
14 | Application.Run;
15 | end.
16 |
--------------------------------------------------------------------------------
/src/MyClass/myClass.pas:
--------------------------------------------------------------------------------
1 | unit myClass;
2 |
3 | interface
4 |
5 | type
6 | TMyClass = class
7 | class function ShowSuccessfullMessage: String;
8 | end;
9 |
10 | implementation
11 |
12 | { MyClass }
13 |
14 |
15 |
16 | class function TMyClass.ShowSuccessfullMessage: String;
17 | begin
18 | Result := 'Hello from awesome stack - Gitlab-CI and Dockered-Delphi compilation';
19 | end;
20 |
21 | end.
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | modules/
2 | dist/
3 | static/
4 | **/Win32/
5 | **/Win64/
6 | **/Linux64/
7 | **/__history/
8 | **/__recovery/
9 | src/*.~*
10 | *.res
11 | *.exe
12 | *.dll
13 | *.bpl
14 | *.bpi
15 | *.dcp
16 | *.so
17 | *.apk
18 | *.drc
19 | *.map
20 | *.dres
21 | *.rsm
22 | *.tds
23 | *.dcu
24 | *.lib
25 | *.a
26 | *.o
27 | *.ocx
28 | *.local
29 | *.identcache
30 | *.projdata
31 | *.tvsconfig
32 | *.dsk
33 | *.dcu
34 | *.exe
35 | *.so
36 | *.~*
37 | *.a
38 | *.stat
39 | unittest/configuration.ini
40 |
--------------------------------------------------------------------------------
/src/View/main.dfm:
--------------------------------------------------------------------------------
1 | object Form1: TForm1
2 | Left = 0
3 | Top = 0
4 | Caption = 'Form1'
5 | ClientHeight = 299
6 | ClientWidth = 635
7 | Color = clBtnFace
8 | Font.Charset = DEFAULT_CHARSET
9 | Font.Color = clWindowText
10 | Font.Height = -11
11 | Font.Name = 'Tahoma'
12 | Font.Style = []
13 | OldCreateOrder = False
14 | PixelsPerInch = 96
15 | TextHeight = 13
16 | object Button1: TButton
17 | Left = 8
18 | Top = 16
19 | Width = 75
20 | Height = 25
21 | Caption = 'Button1'
22 | TabOrder = 0
23 | OnClick = Button1Click
24 | end
25 | end
26 |
--------------------------------------------------------------------------------
/src/Test/TestmyClass.pas:
--------------------------------------------------------------------------------
1 | unit TestmyClass;
2 |
3 | interface
4 |
5 | uses
6 | DUnitX.TestFramework;
7 |
8 | type
9 |
10 | [TestFixture]
11 | TMyTestObject = class(TObject)
12 | public
13 | [Test]
14 | procedure ShowSuccessfullMessage;
15 | end;
16 |
17 | implementation
18 |
19 | uses
20 | myClass;
21 |
22 |
23 |
24 | procedure TMyTestObject.ShowSuccessfullMessage;
25 | begin
26 | Assert.IsTrue(TMyClass.ShowSuccessfullMessage = 'Hello from awesome stack - Gitlab-CI and Dockered-Delphi compilation');
27 | end;
28 |
29 | initialization
30 |
31 | TDUnitX.RegisterTestFixture(TMyTestObject);
32 |
33 | end.
34 |
--------------------------------------------------------------------------------
/src/View/main.pas:
--------------------------------------------------------------------------------
1 | unit main;
2 |
3 | interface
4 |
5 | uses
6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
8 |
9 | type
10 | TForm1 = class(TForm)
11 | Button1: TButton;
12 | procedure Button1Click(Sender: TObject);
13 | private
14 |
15 | public
16 | { Public declarations }
17 | end;
18 |
19 | var
20 | Form1: TForm1;
21 |
22 | implementation
23 |
24 | {$R *.dfm}
25 |
26 |
27 | uses
28 | myClass;
29 |
30 |
31 |
32 | procedure TForm1.Button1Click(Sender: TObject);
33 | begin
34 | ShowMessage(TMyClass.ShowSuccessfullMessage);
35 | end;
36 |
37 | end.
38 |
--------------------------------------------------------------------------------
/sonar-project.properties:
--------------------------------------------------------------------------------
1 | # Required metadata
2 | sonar.host.url=http://10.0.75.1:9000
3 | sonar.projectKey=org.codehaus.sonar:simple-delphi-project
4 | sonar.projectName=DelphiCI
5 | sonar.projectVersion=1.0
6 |
7 | sonar.projectBaseDir=src/
8 | sonar.sources=MyClass/.
9 |
10 | # Language, needed for SonarQube < 4.2
11 | sonar.language=delph
12 |
13 | # Desabilita validação de versopnamento git/svn
14 | sonar.scm.disabled=True
15 |
16 | # The build-wrapper output dir
17 | # sonar.cfamily.build-wrapper-output=/path/to/build-wrapper/output/dir
18 |
19 | # Optional comma-separated list of additional libraries folders (such as /usr/include)
20 | #sonar.cfamily.library.directories=
21 |
22 | # Optional specific predefined macros
23 | # sonar.cfamily.predefinedMacros=#define MY_MACRO(a) ((a)+1),#define DEBUG
24 |
25 | # Encoding of the source files
26 | sonar.sourceEncoding=UTF-8
27 |
--------------------------------------------------------------------------------
/src/ProjectGroup1.groupproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {2017E574-4367-4D93-951C-6AF1B11694E2}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Default.Personality.12
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/src/Test/DelphiCITests.dpr:
--------------------------------------------------------------------------------
1 | program DelphiCITests;
2 |
3 | {$IFNDEF TESTINSIGHT}
4 | {$APPTYPE CONSOLE}
5 | {$ENDIF}{$STRONGLINKTYPES ON}
6 |
7 |
8 | uses
9 | System.SysUtils,
10 | {$IFDEF TESTINSIGHT}
11 | TestInsight.DUnitX,
12 | {$ENDIF }
13 | DUnitX.Loggers.Console,
14 | DUnitX.Loggers.Xml.NUnit,
15 | DUnitX.TestFramework,
16 | TestmyClass in 'TestmyClass.pas',
17 | myClass in '..\MyClass\myClass.pas';
18 |
19 | var
20 | runner: ITestRunner;
21 | results: IRunResults;
22 | logger: ITestLogger;
23 | nunitLogger: ITestLogger;
24 |
25 |
26 |
27 | begin
28 | {$IFDEF TESTINSIGHT}
29 | TestInsight.DUnitX.RunRegisteredTests;
30 | exit;
31 | {$ENDIF}
32 | try
33 | ReportMemoryLeaksOnShutdown := True;
34 | // Check command line options, will exit if invalid
35 | TDUnitX.CheckCommandLine;
36 | // Create the test runner
37 | runner := TDUnitX.CreateRunner;
38 | // Tell the runner to use RTTI to find Fixtures
39 | runner.UseRTTI := True;
40 | // tell the runner how we will log things
41 | // Log to the console window
42 | logger := TDUnitXConsoleLogger.Create(True);
43 | runner.AddLogger(logger);
44 | // Generate an NUnit compatible XML File
45 | nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
46 | runner.AddLogger(nunitLogger);
47 | runner.FailsOnNoAsserts := False; // When true, Assertions must be made during tests;
48 |
49 | // Run tests
50 | results := runner.Execute;
51 | if not results.AllPassed then
52 | System.ExitCode := EXIT_ERRORS;
53 |
54 | {$IFNDEF CI}
55 | // We don't want this happening when running under CI.
56 | if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
57 | begin
58 | System.Write('Done.. press key to quit.');
59 | System.Readln;
60 | end;
61 | {$ENDIF}
62 | except
63 | on E: Exception do
64 | System.Writeln(E.ClassName, ': ', E.Message);
65 | end;
66 |
67 | end.
68 |
--------------------------------------------------------------------------------
/.gitlab-ci.yml:
--------------------------------------------------------------------------------
1 | before_script:
2 | - $env:BDS="C:\Program Files (x86)\Embarcadero\Studio\17.0"
3 | - $env:BDSINCLUDE="C:\Program Files (x86)\Embarcadero\Studio\17.0\Include"
4 | - $env:BDSCOMMONDIR="C:\Users\Public\Documents\Embarcadero\Studio"
5 | - $env:FrameworkDir="C:\Windows\Microsoft.NET\Framework\v3.5"
6 | - $env:FrameworkVersion=""
7 | - $env:PATH=$env:FrameworkDir;"$env:BDS\bin";$env:PATH
8 | - $env:LANGDIR="EN"
9 | - $env:PLATFORM=""
10 | - $env:PlatformSDK=""
11 |
12 | stages:
13 | - test
14 | - analyze
15 | - build
16 | - deploy
17 |
18 |
19 | test:
20 | stage: test
21 |
22 | variables:
23 | ArtifactPath: 'src\Test\'
24 | ArtifactName: 'DelphiCITests'
25 |
26 | script:
27 | - echo building test project...
28 | - C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild.exe /m /nologo $env:ArtifactPath$env:ArtifactName.dproj /target:Build /p:DCC_BuildAllUnits=true /p:"Config=Release" /p:"Platform=Win32"
29 | #- Invoke-Item .\$env:ArtifactPath$env:ArtifactName.exe
30 | - echo running tests...
31 | - .\src\Test\DelphiCITests.exe
32 | # Coverage report > dunitx-results.xml
33 |
34 |
35 | analyze:
36 | stage: analyze
37 |
38 | variables:
39 | SonarScanner: 'C:\Docker\sonar-scanner-3.2\bin\sonar-scanner.bat'
40 |
41 | script:
42 | - echo analizing code...
43 | - C:\Docker\sonar-scanner-3.2\bin\sonar-scanner.bat
44 |
45 |
46 | build:
47 | stage: build
48 |
49 | variables:
50 | ArtifactPath: 'src\'
51 | ArtifactName: 'DelphiCI'
52 |
53 | script:
54 | - echo building project...
55 | - C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild.exe /m /nologo $env:ArtifactPath$env:ArtifactName.dproj /target:Build /p:DCC_BuildAllUnits=true /p:"Config=Release" /p:"Platform=Win32"
56 |
57 | artifacts:
58 | name: "$env:CI_PROJECT_NAME-$env:CI_JOB_ID"
59 | paths:
60 | - bin\\"$env:ArtifactName".exe
61 | when: always
62 | expire_in: 2 week
63 |
64 |
65 | deploy:
66 | stage: deploy
67 |
68 | variables:
69 | ArtifactName: 'DelphiCI'
70 |
71 | dependencies:
72 | - build
73 |
74 | script:
75 | - echo deploying project...
76 | - Compress-Archive bin\\"$env:ArtifactName".exe bin\\"$env:ArtifactName".zip
77 | - $password = ConvertTo-SecureString -AsPlainText -Force -String 'AP7dyPrVGx4M2Aq9GaTc8tFqqTT'
78 | - $cred = New-Object Management.Automation.PSCredential ('admin', $password)
79 | - $ARTIFACT_SHA1_CHECKSUM=$(Get-FileHash -Algorithm SHA1 bin\\"$env:ArtifactName".zip).Hash
80 | - $HEADERS = @{"X-Checksum-SHA1"=$ARTIFACT_SHA1_CHECKSUM;};
81 | - Invoke-RestMethod -Uri http://10.0.75.1:9700/artifactory/generic-local/build/$env:CI_PROJECT_NAME/$env:CI_JOB_ID/$env:ArtifactName.zip -InFile $env:ArtifactName.zip -Method PUT -Credential $cred
82 |
83 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://gitlab.com/charoleizer/delphi-gitlab-ci-sample/pipelines)
2 |
3 |
4 | # Gitlab-CI with Docker-Windows for Delphi Projects
5 |
6 | Pipelines: https://gitlab.com/charoleizer/delphi-gitlab-ci-sample/pipelines
7 |
8 | # Stack
9 | - Windows 10 v1089 as Host;
10 | - Delphi CE;
11 | - .NET Framework v3.5;
12 | - Docker Desktop 2.1.0.0 ;
13 | - Gitlab-Runner with Docker-Windows executor and .NET 3.5 image;
14 | - Sonarqube 5.6.7 ;
15 | - Sonar-Scanner 3.2 ;
16 | - JFrog Artifactory OSS;
17 | - Portainer;
18 |
19 | # Docker Images
20 | - .NET Framework: mcr.microsoft.com/dotnet/framework/runtime:3.5 (Windows)
21 | - Sonarqube with Delphi Plugin: charoleizer/sonarqube-delphi-5.6.7-alpine
22 | - JFrog Artifactory OSS: docker.bintray.io/jfrog/artifactory-oss
23 | - Portainer: portainer/portainer (Optional)
24 |
25 | # Flow
26 | - Download gitlab runner for Windows, register, install and start as service. [[?]](https://docs.gitlab.com/runner/install/windows.html);
27 | - It will create 2 Runners container, one for cache and another for build
28 | - Switch to Windows Containers on Docker Desktop.
29 | - Pull the .NET Framework image. This image will be used to create a container from Build Runner. [[?]](https://hub.docker.com/_/microsoft-dotnet-framework-runtime);
30 | - Bind the Delphi ./bin directory (C:\Program Files (x86)\Embarcadero\Studio\17.0\bin) with Build Runner Container.
31 | - Download Sonar-Scanner 3.2 and bind the scanner path with Build Runner Container. [[?]](https://github.com/SonarSource/sonar-scanner-cli/releases/tag/3.2.0.1227)
32 | - Switch to Linux Containers on Docker Desktop.
33 | - Create a Linux-Container with Sonarqube. This container use [SandroLuck's](https://github.com/SandroLuck/SonarDelphi) Plugin. [[?]](https://hub.docker.com/r/charoleizer/sonarqube-delphi-5.6.7-alpine)
34 | - Sonar Scanner need a property file to analyse the code. [[?]](https://github.com/charoleizer/delphi-gitlab-ci-sample/blob/master/sonar-project.properties)
35 | - Create a Linux-Container with Artifactory OSS. [[?]](https://jfrog.com/open-source/)
36 | - Switch to Windows Containers on Docker Desktop.
37 |
38 | # .gitlab-ci.yml
39 | - To know more about this file, [read it](https://docs.gitlab.com/ee/ci/quick_start/).
40 | - Take a look at the full [.gitlab-ci.yml](https://github.com/charoleizer/delphi-gitlab-ci-sample/blob/master/.gitlab-ci.yml) file
41 |
42 | #### Specificaly for this Delphi example, we will use this file to do 4 steps(stages):
43 |
44 | #### *test:*
45 | - Build the test project with MSBuild;
46 | - Run the Test binary output;
47 | - Save the result file for future coverage;
48 |
49 | #### *analyze:*
50 | - Run the sonar-scanner using sonar-project.properties configurations;
51 |
52 | #### *build*
53 | - Build the project with MSBuild;
54 | - Deploy the artifact temporarily;
55 |
56 | #### *deploy*
57 | - Take the build stage artifact, and compress it;
58 | - Set JFrog Artifactory OSS variables;
59 | - Upload the artifact by Artifactory rest API;
60 |
61 | # Curiosities
62 |
63 | #### *Why gitlab?*
64 | - Because Gitlab-CE and Gitlab-CI are free self-hosted tools. Maybe [Github Actions](https://github.com/features/actions) can change it. Waiting for Self-Hosted option.
65 |
66 | #### *Why is this project in github?*
67 | - Because github is the most famous repository and has a larger community
68 |
69 | #### *Why not create an image with Delphi?*
70 | - Because of Embarcadero's license
71 |
--------------------------------------------------------------------------------
/src/Test/DelphiCITests.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {7A2D9948-1CB8-4824-ABE7-31D0124E3274}
4 | 18.1
5 | None
6 | True
7 | Release
8 | Win32
9 | 1
10 | Console
11 | DelphiCITests.dpr
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Base
34 | true
35 |
36 |
37 | true
38 | Cfg_1
39 | true
40 | true
41 |
42 |
43 | true
44 | Base
45 | true
46 |
47 |
48 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
49 | $(BDS)\Source\DUnit\src;$(DCC_UnitSearchPath)
50 | 1046
51 | DelphiCITests
52 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)
53 | CONSOLE_TESTRUNNER;$(DCC_Define)
54 | .
55 | false
56 | false
57 | false
58 | false
59 | false
60 |
61 |
62 | DBXSqliteDriver;bindcompdbx;IndyIPCommon;RESTComponents;DBXInterBaseDriver;IndyIPServer;IndySystem;tethering;fmxFireDAC;FireDAC;bindcompfmx;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;inetdb;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;FireDACIBDriver;fmx;fmxdae;xmlrtl;soapmidas;ibxbindings;fmxobj;rtl;DbxClientDriver;CustomIPTransport;dbexpress;IndyCore;bindcomp;dsnap;FireDACCommon;IndyIPClient;RESTBackendComponents;dbxcds;soapserver;FireDACODBCDriver;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;inetdbxpress;IndyProtocols;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage)
63 |
64 |
65 | 1033
66 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
67 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
68 | DBXSqliteDriver;bindcompdbx;IndyIPCommon;RESTComponents;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;frxe23;vclFireDAC;IndySystem;tethering;svnui;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;DbxDevartPostgreSQLDriver230;TeeDB;FireDAC;vcltouch;vcldb;bindcompfmx;svn;Intraweb;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;inetdb;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;FireDACIBDriver;fmx;fmxdae;xmlrtl;soapmidas;ibxbindings;fmxobj;vclwinx;vclib;rtl;Tee;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;frxDB23;RESTBackendComponents;TeeUI;VCLRESTComponents;vclribbon;dbxcds;VclSmp;soapserver;adortl;FireDACODBCDriver;frxTee23;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;inetdbxpress;IndyProtocols;frx23;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage)
69 |
70 |
71 | DBXSqliteDriver;bindcompdbx;IndyIPCommon;RESTComponents;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;tethering;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;TeeDB;FireDAC;vcltouch;vcldb;bindcompfmx;Intraweb;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;inetdb;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;FireDACIBDriver;fmx;fmxdae;xmlrtl;soapmidas;ibxbindings;fmxobj;vclwinx;vclib;rtl;Tee;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;TeeUI;VCLRESTComponents;vclribbon;dbxcds;VclSmp;soapserver;adortl;FireDACODBCDriver;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;inetdbxpress;IndyProtocols;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage)
72 |
73 |
74 | DEBUG;$(DCC_Define)
75 | true
76 | false
77 | true
78 | true
79 | true
80 |
81 |
82 | 1033
83 | None
84 | false
85 |
86 |
87 | false
88 | RELEASE;$(DCC_Define)
89 | 0
90 | 0
91 |
92 |
93 |
94 | MainSource
95 |
96 |
97 |
98 |
99 | Cfg_2
100 | Base
101 |
102 |
103 | Base
104 |
105 |
106 | Cfg_1
107 | Base
108 |
109 |
110 |
111 | Delphi.Personality.12
112 | Application
113 |
114 |
115 |
116 | DelphiCITests.dpr
117 |
118 |
119 | Microsoft Office XP Sample Automation Server Wrapper Components
120 |
121 |
122 |
123 |
124 |
125 | DelphiCITests.exe
126 | true
127 |
128 |
129 |
130 |
131 | true
132 |
133 |
134 |
135 |
136 | true
137 |
138 |
139 |
140 |
141 | true
142 |
143 |
144 |
145 |
146 | 1
147 |
148 |
149 | 1
150 |
151 |
152 |
153 |
154 | Contents\Resources
155 | 1
156 |
157 |
158 |
159 |
160 | classes
161 | 1
162 |
163 |
164 |
165 |
166 | Contents\MacOS
167 | 0
168 |
169 |
170 | 1
171 |
172 |
173 | Contents\MacOS
174 | 1
175 |
176 |
177 |
178 |
179 | 1
180 |
181 |
182 | 1
183 |
184 |
185 | 1
186 |
187 |
188 |
189 |
190 | res\drawable-xxhdpi
191 | 1
192 |
193 |
194 |
195 |
196 | library\lib\mips
197 | 1
198 |
199 |
200 |
201 |
202 | 0
203 |
204 |
205 | 1
206 |
207 |
208 | Contents\MacOS
209 | 1
210 |
211 |
212 | 1
213 |
214 |
215 | library\lib\armeabi-v7a
216 | 1
217 |
218 |
219 | 1
220 |
221 |
222 |
223 |
224 | 0
225 |
226 |
227 | Contents\MacOS
228 | 1
229 | .framework
230 |
231 |
232 |
233 |
234 | 1
235 |
236 |
237 | 1
238 |
239 |
240 | 1
241 |
242 |
243 |
244 |
245 | 1
246 |
247 |
248 | 1
249 |
250 |
251 | 1
252 |
253 |
254 |
255 |
256 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
257 | 1
258 |
259 |
260 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
261 | 1
262 |
263 |
264 |
265 |
266 | library\lib\x86
267 | 1
268 |
269 |
270 |
271 |
272 | 1
273 |
274 |
275 | 1
276 |
277 |
278 | 1
279 |
280 |
281 |
282 |
283 | 1
284 |
285 |
286 | 1
287 |
288 |
289 | 1
290 |
291 |
292 |
293 |
294 | library\lib\armeabi
295 | 1
296 |
297 |
298 |
299 |
300 | 0
301 |
302 |
303 | 1
304 |
305 |
306 | Contents\MacOS
307 | 1
308 |
309 |
310 |
311 |
312 | 1
313 |
314 |
315 | 1
316 |
317 |
318 | 1
319 |
320 |
321 |
322 |
323 | res\drawable-normal
324 | 1
325 |
326 |
327 |
328 |
329 | res\drawable-xhdpi
330 | 1
331 |
332 |
333 |
334 |
335 | res\drawable-large
336 | 1
337 |
338 |
339 |
340 |
341 | 1
342 |
343 |
344 | 1
345 |
346 |
347 | 1
348 |
349 |
350 |
351 |
352 | ../
353 | 1
354 |
355 |
356 | ../
357 | 1
358 |
359 |
360 |
361 |
362 | res\drawable-hdpi
363 | 1
364 |
365 |
366 |
367 |
368 | library\lib\armeabi-v7a
369 | 1
370 |
371 |
372 |
373 |
374 | Contents
375 | 1
376 |
377 |
378 |
379 |
380 | ../
381 | 1
382 |
383 |
384 |
385 |
386 | 1
387 |
388 |
389 | 1
390 |
391 |
392 | 1
393 |
394 |
395 |
396 |
397 | res\values
398 | 1
399 |
400 |
401 |
402 |
403 | res\drawable-small
404 | 1
405 |
406 |
407 |
408 |
409 | res\drawable
410 | 1
411 |
412 |
413 |
414 |
415 | 1
416 |
417 |
418 | 1
419 |
420 |
421 | 1
422 |
423 |
424 |
425 |
426 | 1
427 |
428 |
429 |
430 |
431 | res\drawable
432 | 1
433 |
434 |
435 |
436 |
437 | 0
438 |
439 |
440 | 0
441 |
442 |
443 | Contents\Resources\StartUp\
444 | 0
445 |
446 |
447 | 0
448 |
449 |
450 | 0
451 |
452 |
453 | 0
454 |
455 |
456 |
457 |
458 | library\lib\armeabi-v7a
459 | 1
460 |
461 |
462 |
463 |
464 | 0
465 | .bpl
466 |
467 |
468 | 1
469 | .dylib
470 |
471 |
472 | Contents\MacOS
473 | 1
474 | .dylib
475 |
476 |
477 | 1
478 | .dylib
479 |
480 |
481 | 1
482 | .dylib
483 |
484 |
485 |
486 |
487 | res\drawable-mdpi
488 | 1
489 |
490 |
491 |
492 |
493 | res\drawable-xlarge
494 | 1
495 |
496 |
497 |
498 |
499 | res\drawable-ldpi
500 | 1
501 |
502 |
503 |
504 |
505 | 0
506 | .dll;.bpl
507 |
508 |
509 | 1
510 | .dylib
511 |
512 |
513 | Contents\MacOS
514 | 1
515 | .dylib
516 |
517 |
518 | 1
519 | .dylib
520 |
521 |
522 | 1
523 | .dylib
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 |
533 |
534 |
535 | False
536 | True
537 | False
538 |
539 |
540 | DUnit / Delphi Win32
541 | Console
542 | C:\Users\s202\Desktop\Workspace\dsv-delphi\delphi-ci-test2\src\DelphiCI.dproj
543 |
544 |
545 |
546 | 12
547 |
548 |
549 |
550 |
551 |
552 |
--------------------------------------------------------------------------------
/src/DelphiCI.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {7A18D716-F644-4593-B1B0-3C5757D864CC}
4 | 18.1
5 | VCL
6 | DelphiCI.dpr
7 | True
8 | Release
9 | Win32
10 | 1
11 | Application
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Cfg_1
34 | true
35 | true
36 |
37 |
38 | true
39 | Base
40 | true
41 |
42 |
43 | true
44 | Cfg_2
45 | true
46 | true
47 |
48 |
49 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
50 | 1046
51 | DelphiCI
52 | $(BDS)\bin\delphi_PROJECTICON.ico
53 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)
54 | ..\bin
55 | false
56 | false
57 | false
58 | false
59 | false
60 |
61 |
62 | true
63 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
64 | 1033
65 | DBXSqliteDriver;fmxase;RESTComponents;DBXInterBaseDriver;dxCoreRS23;vclactnband;dxPSdxLCLnkRS23;dxADOServerModeRS23;dxPSLnksRS23;frxe23;vclFireDAC;dxmdsRS23;cxDataRS23;svnui;DataSnapFireDAC;FireDACADSDriver;tethering;dxPSCoreRS23;dxSkinscxPCPainterRS23;dxDBXServerModeRS23;dxPScxGridLnkRS23;DatasnapConnectorsFreePascal;vcltouch;vcldb;bindcompfmx;svn;dxPScxCommonRS23;Intraweb;inetdb;FmxTeeUI;frxDBX23;dxServerModeRS23;FireDACIBDriver;cxLibraryRS23;fmx;fmxdae;cxPivotGridChartRS23;vclib;acntDX10;cxPageControlRS23;dxGDIPlusRS23;fsDB23;office2K;dbexpress;IndyCore;vclx;dsnap;DataSnapCommon;FireDACCommon;dxLayoutControlRS23;DataSnapConnectors;cxVerticalGridRS23;RESTBackendComponents;VCLRESTComponents;soapserver;frxTee23;cxGridRS23;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACMySQLDriver;FireDACCommonDriver;dxPScxPCProdRS23;DataSnapClient;fsADO23;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;dxPScxExtCommonRS23;IndySystem;dxSkinsCoreRS23;dxThemeRS23;dsnapcon;madExcept_;FireDACMSAccDriver;fmxFireDAC;vclimg;madBasic_;TeeDB;FireDAC;frxADO23;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;cxEditorsRS23;FireDACASADriver;fs23;FMXTee;soaprtl;DbxCommonDriver;ibxpress;cxPivotGridOLAPRS23;Tee;DataSnapServer;xmlrtl;DataSnapNativeClient;soapmidas;fmxobj;vclwinx;ibxbindings;rtl;madDisAsm_;DbxClientDriver;CustomIPTransport;vcldsnap;bindcomp;DigitalPersona;cxPivotGridRS23;appanalytics;dxPScxVGridLnkRS23;IndyIPClient;dxPScxTLLnkRS23;frxDB23;bindcompvcl;dxPScxPivotGridLnkRS23;TeeUI;vclribbon;dbxcds;VclSmp;adortl;cxTreeListRS23;FireDACODBCDriver;DataSnapIndy10ServerTransport;acntDX10_R;dxComnRS23;DataSnapProviderClient;dsnapxml;dbrtl;cxExportRS23;IndyProtocols;frx23;inetdbxpress;DataSnapServerMidas;$(DCC_UsePackage)
66 | $(BDS)\bin\default_app.manifest
67 |
68 |
69 | DBXSqliteDriver;fmxase;RESTComponents;DBXInterBaseDriver;dxCoreRS23;vclactnband;dxPSdxLCLnkRS23;dxADOServerModeRS23;dxPSLnksRS23;vclFireDAC;dxmdsRS23;cxDataRS23;DataSnapFireDAC;FireDACADSDriver;tethering;dxPSCoreRS23;dxSkinscxPCPainterRS23;dxDBXServerModeRS23;dxPScxGridLnkRS23;DatasnapConnectorsFreePascal;vcltouch;vcldb;bindcompfmx;dxPScxCommonRS23;Intraweb;inetdb;FmxTeeUI;dxServerModeRS23;FireDACIBDriver;cxLibraryRS23;fmx;fmxdae;cxPivotGridChartRS23;vclib;cxPageControlRS23;dxGDIPlusRS23;office2K;dbexpress;IndyCore;vclx;dsnap;DataSnapCommon;FireDACCommon;dxLayoutControlRS23;DataSnapConnectors;cxVerticalGridRS23;RESTBackendComponents;VCLRESTComponents;soapserver;cxGridRS23;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACMySQLDriver;FireDACCommonDriver;dxPScxPCProdRS23;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;dxPScxExtCommonRS23;IndySystem;dxSkinsCoreRS23;dxThemeRS23;dsnapcon;FireDACMSAccDriver;fmxFireDAC;vclimg;TeeDB;FireDAC;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;cxEditorsRS23;FireDACASADriver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;cxPivotGridOLAPRS23;Tee;DataSnapServer;xmlrtl;DataSnapNativeClient;soapmidas;fmxobj;vclwinx;ibxbindings;rtl;DbxClientDriver;CustomIPTransport;vcldsnap;bindcomp;DigitalPersona;cxPivotGridRS23;appanalytics;dxPScxVGridLnkRS23;IndyIPClient;dxPScxTLLnkRS23;bindcompvcl;dxPScxPivotGridLnkRS23;TeeUI;vclribbon;dbxcds;VclSmp;adortl;cxTreeListRS23;FireDACODBCDriver;DataSnapIndy10ServerTransport;dxComnRS23;DataSnapProviderClient;dsnapxml;dbrtl;cxExportRS23;IndyProtocols;inetdbxpress;DataSnapServerMidas;$(DCC_UsePackage)
70 |
71 |
72 | DEBUG;$(DCC_Define)
73 | true
74 | false
75 | true
76 | true
77 | true
78 |
79 |
80 | true
81 | 1033
82 | true
83 | true
84 | false
85 |
86 |
87 | false
88 | RELEASE;$(DCC_Define)
89 | 0
90 | 0
91 |
92 |
93 | true
94 | 1033
95 | true
96 | true
97 |
98 |
99 |
100 | MainSource
101 |
102 |
103 |
104 |
105 |
106 |
107 | Cfg_2
108 | Base
109 |
110 |
111 | Base
112 |
113 |
114 | Cfg_1
115 | Base
116 |
117 |
118 |
119 | Delphi.Personality.12
120 | Application
121 |
122 |
123 |
124 | DelphiCI.dpr
125 |
126 |
127 | Microsoft Office XP Sample Automation Server Wrapper Components
128 |
129 |
130 |
131 |
132 |
133 | DelphiCI.exe
134 | true
135 |
136 |
137 |
138 |
139 | DelphiCI.exe
140 | true
141 |
142 |
143 |
144 |
145 | 0
146 | .dll;.bpl
147 |
148 |
149 | 1
150 | .dylib
151 |
152 |
153 | Contents\MacOS
154 | 1
155 | .dylib
156 |
157 |
158 | 1
159 | .dylib
160 |
161 |
162 | 1
163 | .dylib
164 |
165 |
166 |
167 |
168 | Contents\Resources
169 | 1
170 |
171 |
172 |
173 |
174 | classes
175 | 1
176 |
177 |
178 |
179 |
180 | Contents\MacOS
181 | 0
182 |
183 |
184 | 1
185 |
186 |
187 | Contents\MacOS
188 | 1
189 |
190 |
191 |
192 |
193 | 1
194 |
195 |
196 | 1
197 |
198 |
199 | 1
200 |
201 |
202 |
203 |
204 | res\drawable-xxhdpi
205 | 1
206 |
207 |
208 |
209 |
210 | library\lib\mips
211 | 1
212 |
213 |
214 |
215 |
216 | 0
217 |
218 |
219 | 1
220 |
221 |
222 | Contents\MacOS
223 | 1
224 |
225 |
226 | 1
227 |
228 |
229 | library\lib\armeabi-v7a
230 | 1
231 |
232 |
233 | 1
234 |
235 |
236 |
237 |
238 | 0
239 |
240 |
241 | Contents\MacOS
242 | 1
243 | .framework
244 |
245 |
246 |
247 |
248 | 1
249 |
250 |
251 | 1
252 |
253 |
254 | 1
255 |
256 |
257 |
258 |
259 | 1
260 |
261 |
262 | 1
263 |
264 |
265 | 1
266 |
267 |
268 |
269 |
270 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
271 | 1
272 |
273 |
274 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
275 | 1
276 |
277 |
278 |
279 |
280 | library\lib\x86
281 | 1
282 |
283 |
284 |
285 |
286 | 1
287 |
288 |
289 | 1
290 |
291 |
292 | 1
293 |
294 |
295 |
296 |
297 | 1
298 |
299 |
300 | 1
301 |
302 |
303 | 1
304 |
305 |
306 |
307 |
308 | library\lib\armeabi
309 | 1
310 |
311 |
312 |
313 |
314 | 0
315 |
316 |
317 | 1
318 |
319 |
320 | Contents\MacOS
321 | 1
322 |
323 |
324 |
325 |
326 | 1
327 |
328 |
329 | 1
330 |
331 |
332 | 1
333 |
334 |
335 |
336 |
337 | res\drawable-normal
338 | 1
339 |
340 |
341 |
342 |
343 | res\drawable-xhdpi
344 | 1
345 |
346 |
347 |
348 |
349 | res\drawable-large
350 | 1
351 |
352 |
353 |
354 |
355 | 1
356 |
357 |
358 | 1
359 |
360 |
361 | 1
362 |
363 |
364 |
365 |
366 | ../
367 | 1
368 |
369 |
370 | ../
371 | 1
372 |
373 |
374 |
375 |
376 | res\drawable-hdpi
377 | 1
378 |
379 |
380 |
381 |
382 | library\lib\armeabi-v7a
383 | 1
384 |
385 |
386 |
387 |
388 | Contents
389 | 1
390 |
391 |
392 |
393 |
394 | ../
395 | 1
396 |
397 |
398 |
399 |
400 | 1
401 |
402 |
403 | 1
404 |
405 |
406 | 1
407 |
408 |
409 |
410 |
411 | res\values
412 | 1
413 |
414 |
415 |
416 |
417 | res\drawable-small
418 | 1
419 |
420 |
421 |
422 |
423 | res\drawable
424 | 1
425 |
426 |
427 |
428 |
429 | 1
430 |
431 |
432 | 1
433 |
434 |
435 | 1
436 |
437 |
438 |
439 |
440 | 1
441 |
442 |
443 |
444 |
445 | res\drawable
446 | 1
447 |
448 |
449 |
450 |
451 | 0
452 |
453 |
454 | 0
455 |
456 |
457 | Contents\Resources\StartUp\
458 | 0
459 |
460 |
461 | 0
462 |
463 |
464 | 0
465 |
466 |
467 | 0
468 |
469 |
470 |
471 |
472 | library\lib\armeabi-v7a
473 | 1
474 |
475 |
476 |
477 |
478 | 0
479 | .bpl
480 |
481 |
482 | 1
483 | .dylib
484 |
485 |
486 | Contents\MacOS
487 | 1
488 | .dylib
489 |
490 |
491 | 1
492 | .dylib
493 |
494 |
495 | 1
496 | .dylib
497 |
498 |
499 |
500 |
501 | res\drawable-mdpi
502 | 1
503 |
504 |
505 |
506 |
507 | res\drawable-xlarge
508 | 1
509 |
510 |
511 |
512 |
513 | res\drawable-ldpi
514 | 1
515 |
516 |
517 |
518 |
519 | 1
520 |
521 |
522 | 1
523 |
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 |
533 |
534 | True
535 | False
536 |
537 |
538 | C:\Users\s202\Desktop\Workspace\dsv-delphi\delphi-ci-test2\src\Test\DelphiCITests.dproj
539 |
540 |
541 | 12
542 |
543 |
544 |
545 |
546 |
547 |
--------------------------------------------------------------------------------