Change software versions for Continuous Integration.
This is a demonstration project only. It is not ready to be used in production.
You are currently looking at the PHP version of this code.
You can also see a Python implementation of this code here.
To read the code top-down from the highest entry point, please start in bin/pop.php.
CI providers (Travis, Circle, etc.) provide tools for changing software versions.
Here's an example from SemaphoreCI which sets the php version:
sem-version php 8.2
php -v
Pop aims to provide similar tools, that you can install and use anywhere:
./ci version php 8.2
./ci php -v
I wanted an unusual project to demonstrate that I know how to:
- Demonstrate a solution to unusual problems.
- Use Inheritance, Polymorphism and Interface Segregation.
- Build something usable in about 4 hours time.
- Write PSR 4 and PSR 12 compatible code.
- Improve code using static analysis tools like Psalm.
- (Hopefully) write a decent README :).
It doesn't demonstrate that I know how to:
- Write unit tests.
- Publish stuff on Packagist for all to use.
That's because of the current size and I have other (older) examples for those.
You will need these installed:
To install, first clone the repository and then run the build script:
git clone https://github.com/WillSkates/pop.git
cd pop
bash ./build
./ci version php 8.2
./ci php -v
./ci version php 8.3
./ci php -v
This project is published under the MIT license.
Full details can be found in the "LICENSE" file.