Skip to content

Commit

Permalink
Merge pull request #67 from badges/feat/add-compatibility-with-php80
Browse files Browse the repository at this point in the history
feat(deps): add compatibility with php 8.0
  • Loading branch information
JellyBellyDev authored Jan 3, 2021
2 parents 3178d73 + 00a013d commit c7a7e78
Show file tree
Hide file tree
Showing 12 changed files with 134 additions and 73 deletions.
49 changes: 39 additions & 10 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
version: 2.1

executors:
poser_executor: # declares a reusable executor
# declares a reusable executor
poser_executor_php74:
docker:
- image: pugx/poser:2.0
- image: pugx/poser:php74
working_directory: ~/app

poser_executor_php80:
docker:
- image: pugx/poser:php80
working_directory: ~/app

jobs:
checkout_code:
executor: poser_executor
parameters:
poser_executor:
type: executor
executor: << parameters.poser_executor >>
steps:
- checkout
- save_cache:
Expand All @@ -17,7 +26,10 @@ jobs:
- ~/app

php_dependencies:
executor: poser_executor
parameters:
poser_executor:
type: executor
executor: << parameters.poser_executor >>
steps:
- restore_cache:
keys:
Expand All @@ -32,7 +44,10 @@ jobs:
key: v1-php-dependencies-{{ .Environment.CIRCLE_SHA1 }}

lint_checks:
executor: poser_executor
parameters:
poser_executor:
type: executor
executor: << parameters.poser_executor >>
steps:
- restore_cache:
keys:
Expand All @@ -43,10 +58,13 @@ jobs:
- v1-php-dependencies-{{ .Environment.CIRCLE_SHA1 }}
- run:
name: run php-cs-fixer checks
command: bin/php-cs-fixer fix --verbose --diff --dry-run
command: PHP_CS_FIXER_IGNORE_ENV=1 bin/php-cs-fixer fix --verbose --diff --dry-run

phpspec_and_behat:
executor: poser_executor
parameters:
poser_executor:
type: executor
executor: << parameters.poser_executor >>
steps:
- restore_cache:
keys:
Expand All @@ -60,24 +78,35 @@ jobs:
command: bin/phpspec run --format=pretty
- run:
name: run phpspec coverage tests
command: bin/phpspec run -f progress -c phpspec-coverage.yml
command: XDEBUG_MODE=coverage bin/phpspec run -f progress -c phpspec-coverage.yml
- store_artifacts:
path: coverage
- run:
name: run behat checks
command: bin/behat

workflows:
version: 2
build-and-test:
jobs:
- checkout_code
- checkout_code:
matrix:
parameters:
poser_executor: [ "poser_executor_php74", "poser_executor_php80" ]
- php_dependencies:
matrix:
parameters:
poser_executor: [ "poser_executor_php74", "poser_executor_php80" ]
requires:
- checkout_code
- lint_checks:
matrix:
parameters:
poser_executor: [ "poser_executor_php74", "poser_executor_php80" ]
requires:
- php_dependencies
- phpspec_and_behat:
matrix:
parameters:
poser_executor: [ "poser_executor_php74", "poser_executor_php80" ]
requires:
- php_dependencies
17 changes: 0 additions & 17 deletions .circleci/images/Dockerfile

This file was deleted.

19 changes: 19 additions & 0 deletions .circleci/images/php74/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
FROM circleci/php:7.4-fpm-browsers

USER root

# install system packages
RUN apt-get update \
&& apt-get -y install git wget \
&& apt-get install -qqy libzip-dev libpng-dev libjpeg-dev libfreetype6-dev \
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# configure php packages
RUN docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/

# install php requirements
RUN docker-php-ext-install zip iconv gd

USER circleci

COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
19 changes: 19 additions & 0 deletions .circleci/images/php80/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
FROM circleci/php:8.0-fpm-browsers

USER root

# install system packages
RUN apt-get update \
&& apt-get -y install git wget \
&& apt-get install -qqy libzip-dev libpng-dev libjpeg-dev libfreetype6-dev \
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# configure php packages
RUN docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/

# install php requirements
RUN docker-php-ext-install zip iconv gd

USER circleci

COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

## [Unreleased]

### Added
* add CircleCI jobs for build and tests with php 8.0

### Changed
* refactoring of docker-compose to develop with php74 and php80

### Fixed
* removed unnecessary composer symlinks from `bin` dir, removed them from `.gitignore` too

Expand Down
9 changes: 6 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,14 @@ composer behat

```bash
docker-compose up --build -d
docker-compose exec fpm composer install
docker-compose exec fpm composer phpspec
docker-compose exec fpm composer behat
docker-compose exec php74 composer install
docker-compose exec php74 composer phpspec
docker-compose exec php74 composer behat
docker-compose exec php74 composer php-cs-fixer
```

or


## Pull Request

Expand Down
21 changes: 12 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,26 +19,30 @@ to use the library with lower php version use the tag [v1.4](https://github.com/

#### 1. Create a project

``` bash
$ composer create-project badges/poser
$ ln -s poser/bin/poser /usr/local/bin/poser
```bash
composer create-project badges/poser
ln -s poser/bin/poser /usr/local/bin/poser
```

#### 2. Launch the command

Create an image

`$ poser license MIT blue -p "license.svg"`
```bash
poser license MIT blue -p "license.svg"
```

Flush an image

`$ poser license MIT blue`
```bash
poser license MIT blue
```

## Usage as library

#### 1. Add to composer dependencies

`$ composer require badges/poser`
```bash
composer require badges/poser
```

#### 2. Use in your project as lib

Expand Down Expand Up @@ -92,4 +96,3 @@ Please refer to [CONTRIBUTING](CONTRIBUTING.md)
## License

[![License](https://poser.pugx.org/badges/poser/license.svg)](./LICENSE)

20 changes: 12 additions & 8 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"repositories": [
{
"type": "vcs",
"url": "https://github.com/madisoft/phpspec-data-provider-extension"
"url": "https://github.com/JellyBellyDev/phpspec-data-provider-extension"
}
],
"require": {
Expand All @@ -38,12 +38,12 @@
"symfony/console": "^4.0|^5.0"
},
"require-dev": {
"behat/behat": "^3.7",
"phpspec/phpspec": "^6.1",
"friends-of-phpspec/phpspec-code-coverage": "^4.3",
"friendsofphp/php-cs-fixer": "^2.16",
"moave/phpspec-data-provider-extension": "dev-master",
"vimeo/psalm": "^3.12"
"behat/behat": "^3.8",
"phpspec/phpspec": "^7.0",
"friends-of-phpspec/phpspec-code-coverage": "^6.0",
"friendsofphp/php-cs-fixer": "^2.17",
"moave/phpspec-data-provider-extension": "dev-feat/add-compatibility-to-php80",
"vimeo/psalm": "^4.3"
},
"config": {
"bin-dir": "bin",
Expand All @@ -55,7 +55,11 @@
"php-cs-fixer": "bin/php-cs-fixer fix -v --ansi",
"phpspec": "bin/phpspec run --format=pretty --ansi",
"phpspec-coverage": "bin/phpspec run -f progress -c phpspec-coverage.yml --ansi",
"behat": "bin/behat"
"behat": "bin/behat",
"docker:build:php74": "docker build -t pugx/poser:php74 -f .circleci/images/php74/Dockerfile .",
"docker:push:php74": "docker push pugx/poser:php74",
"docker:build:php80": "docker build -t pugx/poser:php80 -f .circleci/images/php80/Dockerfile .",
"docker:push:php80": "docker push pugx/poser:php80"
},
"extra": {
"branch-alias": {
Expand Down
14 changes: 11 additions & 3 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
version: '3.7'
services:

fpm:
php74:
build:
context: docker/php-fpm
network: host
context: docker/php74
working_dir: /application
stdin_open: true
volumes:
- .:/application:cached

php80:
build:
context: docker/php80
working_dir: /application
stdin_open: true
volumes:
- .:/application:cached
23 changes: 0 additions & 23 deletions docker/php-fpm/Dockerfile

This file was deleted.

5 changes: 5 additions & 0 deletions docker/php74/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FROM pugx/poser:php74

USER root

WORKDIR "/application"
5 changes: 5 additions & 0 deletions docker/php80/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FROM pugx/poser:php80

USER root

WORKDIR "/application"

0 comments on commit c7a7e78

Please sign in to comment.