summaryrefslogtreecommitdiffstats
path: root/php-codeception-specify.spec
blob: b8d4834e7a1a56af656438377f6597389be0d3c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# remirepo spec file for php-codeception-specify
#
# Fedora spec file for php-codeception-specify
#
# Copyright (c) 2017-2019 Shawn Iwinski <shawn@iwin.ski>
#
# License: MIT
# http://opensource.org/licenses/MIT
#
# Please preserve changelog entries
#

%global github_owner     Codeception
%global github_name      Specify
%global github_version   1.1.0
%global github_commit    504ac7a882e6f7226b0cff44c72a6c0bbd0bad95

%global composer_vendor  codeception
%global composer_project specify

# "php": ">=7.1.0"
%global php_min_ver 7.1.0
# "myclabs/deep-copy": "~1.1"
%global myclabs_deep_copy_min_ver 1.1
%global myclabs_deep_copy_max_ver 2.0
# "phpunit/phpunit": "^7.0"

# Build using "--without tests" to disable tests
%global with_tests 0%{!?_without_tests:1}

%{!?phpdir:  %global phpdir  %{_datadir}/php}

Name:          php-%{composer_vendor}-%{composer_project}
Version:       %{github_version}
Release:       2%{?github_release}%{?dist}
Summary:       BDD code blocks for PHPUnit and Codeception

License:       MIT
URL:           https://github.com/%{github_owner}/%{github_name}
Source0:       %{url}/archive/%{github_commit}/%{name}-%{github_version}-%{github_commit}.tar.gz

BuildArch:     noarch
# Autoloader
BuildRequires: php-fedora-autoloader-devel
# Tests
%if %{with_tests}
## composer.json
BuildRequires: php(language) >= %{php_min_ver}
BuildRequires: phpunit7
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
BuildRequires: (php-composer(myclabs/deep-copy) >= %{myclabs_deep_copy_min_ver} with php-composer(myclabs/deep-copy) < %{myclabs_deep_copy_max_ver})
%else
BuildRequires: php-myclabs-deep-copy19
%endif
## phpcompatinfo (computed from version 1.1.0)
BuildRequires: php-pcre
BuildRequires: php-reflection
BuildRequires: php-spl
%endif

# composer.json
Requires:      php(language) >= %{php_min_ver}
Requires:      phpunit7
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
Requires:      (php-composer(myclabs/deep-copy) >= %{myclabs_deep_copy_min_ver} with php-composer(myclabs/deep-copy) < %{myclabs_deep_copy_max_ver})
%else
Requires:      php-myclabs-deep-copy19
%endif
# phpcompatinfo (computed from version 1.1.0)
Requires:      php-pcre
Requires:      php-reflection
Requires:      php-spl
# Autoloader
Requires:      php-composer(fedora/autoloader)

# Composer
Provides:      php-composer(%{composer_vendor}/%{composer_project}) = %{version}

%description
BDD style code blocks for PHPUnit / Codeception

Specify allows you to write your tests in more readable BDD style, the
same way you might have experienced with Jasmine. Inspired by MiniTest
of Ruby now you combine BDD and classical TDD style in one test.

Autoloader: %{phpdir}/Codeception/Specify/autoload.php


%prep
%setup -qn %{github_name}-%{github_commit}


%build
: Create autoloader
%{_bindir}/phpab --template fedora --output src/Codeception/Specify/autoload.php src/
cat <<'AUTOLOAD' | tee -a src/Codeception/Specify/autoload.php

\Fedora\Autoloader\Dependencies::required(array(
    [
        '%{phpdir}/DeepCopy19/autoload.php',
        '%{phpdir}/DeepCopy/autoload.php',
    ],
    '%{phpdir}/PHPUnit7/autoload.php',
));
AUTOLOAD


%install
mkdir -p %{buildroot}%{phpdir}
cp -rp src/Codeception %{buildroot}%{phpdir}/


%check
%if %{with_tests}
: Mock Composer autoload
mkdir vendor
ln -s %{buildroot}%{phpdir}/Codeception/Specify/autoload.php vendor/autoload.php

: Upstream tests
RETURN_CODE=0
PHPUNIT=$(which phpunit7)
for PHP_EXEC in php71 php72 php73 php74; do
    if [ "php" == "$PHP_EXEC" ] || which $PHP_EXEC; then
        $PHP_EXEC $PHPUNIT --verbose || RETURN_CODE=1
    fi
done
exit $RETURN_CODE
%else
: Tests skipped
%endif


%files
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc *.md
%doc composer.json
%dir %{phpdir}/Codeception
     %{phpdir}/Codeception/Specify
     %{phpdir}/Codeception/Specify.php


%changelog
* Wed Jun 12 2019 Remi Collet <remi@remirepo.net> - 1.1.0-2
- sync with fedora
- use php-myclabs-deep-copy19 on EL 6 and 7

* Mon May 27 2019 Shawn Iwinski <shawn@iwin.ski> - 1.1.0-2
- Update phpcompatinfo dependencies

* Mon May 27 2019 Shawn Iwinski <shawn@iwin.ski> - 1.1.0-1
- Update to 1.1.0 (RHBZ #1515810)
- Add range version dependencies for Fedora >= 27 || RHEL >= 8

* Tue Sep 05 2017 Shawn Iwinski <shawn@iwin.ski> - 0.4.6-2
- Remove empty Suggests

* Sun Aug 20 2017 Shawn Iwinski <shawn@iwin.ski> - 0.4.6-1
- Initial package