All Projects → phingofficial → Phing

phingofficial / Phing

Licence: lgpl-3.0
PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.

Projects that are alternatives of or similar to Phing

Zeus
An Electrifying Build System
Stars: ✭ 176 (-83.78%)
Mutual labels:  build-tool, build-automation, make
makesure
Simple task/command runner with declarative goals and dependencies
Stars: ✭ 230 (-78.8%)
Mutual labels:  build-automation, build-tool, make
up
UP - Ultimate Provisioner CLI
Stars: ✭ 43 (-96.04%)
Mutual labels:  ant, build-tool, make
Walk
A fast, general purpose, graph based build and task execution utility.
Stars: ✭ 108 (-90.05%)
Mutual labels:  build-tool, build-automation, make
Cargo Make
Rust task runner and build tool.
Stars: ✭ 895 (-17.51%)
Mutual labels:  build-tool, build-automation, make
broom
A disk cleaning utility for developers.
Stars: ✭ 38 (-96.5%)
Mutual labels:  ant, make
obs-docu
Official Open Build Service Documentation. Content gets reviewed and edited. Generated books are available at http://www.openbuildservice.org
Stars: ✭ 26 (-97.6%)
Mutual labels:  build-automation, build-tool
Ltx2any
Yet another LaTeX build wrapper, with one or two nifty features
Stars: ✭ 48 (-95.58%)
Mutual labels:  build-tool, build-automation
Gradle In Action Source
Source code for the Manning book "Gradle in Action"
Stars: ✭ 483 (-55.48%)
Mutual labels:  build-tool, build-automation
tainted
Tool to determine which Go packages need to be rebuilt in a monorepo
Stars: ✭ 53 (-95.12%)
Mutual labels:  build-automation, build-tool
Cake
🍰 Cake (C# Make) is a cross platform build automation system.
Stars: ✭ 3,154 (+190.69%)
Mutual labels:  build-tool, build-automation
Cbt
CBT - fun, fast, intuitive, compositional, statically checked builds written in Scala
Stars: ✭ 489 (-54.93%)
Mutual labels:  build-tool, build-automation
jagen
A software engineer's workspace manager and build systems wrapper
Stars: ✭ 32 (-97.05%)
Mutual labels:  build-automation, build-tool
pyke
🔨🐍 Make-like build utility for Python projects with extensive DSL features
Stars: ✭ 13 (-98.8%)
Mutual labels:  build-automation, build-tool
Xake
Another MAKE utility implementation on F#, fully declarative with no-brain parallelism, inspired by Shake
Stars: ✭ 24 (-97.79%)
Mutual labels:  build-automation, build-tool
Task
A task runner / simpler Make alternative written in Go
Stars: ✭ 4,282 (+294.65%)
Mutual labels:  build-tool, make
Buildout
Buildout is a deployment automation tool written in and extended with Python
Stars: ✭ 510 (-53%)
Mutual labels:  build-tool, build-automation
Asynctasks.vim
🚀 Modern Task System for Project Building, Testing and Deploying !!
Stars: ✭ 495 (-54.38%)
Mutual labels:  make, ant
Flubucore
A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.
Stars: ✭ 695 (-35.94%)
Mutual labels:  build-tool, build-automation
build
Build system scripts based on GENie (https://github.com/bkaradzic/genie) project generator
Stars: ✭ 30 (-97.24%)
Mutual labels:  build-automation, build-tool

Phing LogoP H I N G

Phing CI Scrutinizer Code Quality codecov

Thank you for using PHING!

PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant. You can do anything with it that you could do with a traditional build system like GNU make, and its use of simple XML build files and extensible PHP "task" classes make it an easy-to-use and highly flexible build framework.

Features include running PHPUnit unit tests (including test result and coverage reports), file transformations (e.g. token replacement, XSLT transformation, template transformations), file system operations, interactive build support, SQL execution, SCM operations (Git, Subversion and Mercurial), documentation generation (PhpDocumentor, ApiGen) and much, much more.

If you find yourself writing custom scripts to handle the packaging, deploying, or testing of your applications, then we suggest looking at Phing. Pre-packaged with numerous out-of-the-box operation modules (tasks), and an easy-to-use OO model to extend or add your own custom tasks.

For more information and documentation, you can visit our official website at https://www.phing.info/.

Phing 3

Phing 3 is a significant update with some breaking changes compared to Phing 2. For details, please refer to the UPGRADING.md file.

Supported PHP versions

Phing 3.x is compatible with PHP 7.3 and higher.

Installation

  1. Composer

The preferred method to install Phing is through Composer. Add phing/phing to the require-dev or require section of your project's composer.json configuration file, and run 'composer install':

     {
         "require-dev": {
             "phing/phing": "3.0.x-dev"
         }
     }
  1. Phar

Download the Phar archive. The archive can then be executed by running:

     $ php phing-latest.phar
  1. Docker (experimental)

The official Phing Docker image can be found on Docker Hub.

To execute Phing inside a container and execute build.xml located in /home/user, run the following:

     $ docker run --rm -v /home/user:/opt phing/phing:3.0 -f /opt/build.xml
  1. Phing GitHub Action

The official GitHub action phingofficial/phing-github-action is available on GitHub Marketplace.

To Run a Phing Build as an action, you need to setup a .github/workflow/phing.yml workflow file and paste the following snipped:

 name: CI
 on: [ push ]
 jobs:
   build-test:
     runs-on: ubuntu-latest

     steps:
       - uses: actions/[email protected]
       - name: Phing Build
         uses: phingofficial/[email protected]
         with:
           version: 3.0.0-alpha4
           user-properties: prop=FooBar
           targets: foo
           verbose: true

README for more info and documentation.

Documentation

Documentation is available in various formats in the docs/docbook5/en/output directory (generated from DocBook sources located in docs/docbook5/en/source).

For online documentation, you can also visit the Phing website: https://www.phing.info/

Contact

Donations

Developing and maintaining Phing has cost many hours over the years. If you want to show your appreciation, you can use one of the following methods to donate something to the project maintainer, Michiel Rook:

Thank you!

Contributing

We love contributions!

Help us spot & fix bugs

We greatly appreciate it when users report issues or come up with feature requests. However, there are a few guidelines you should observe before submitting a new issue:

  • Make sure the issue has not already been submitted, by searching through the list of (closed) issues.
  • Support and installation questions should be asked on Twitter, Slack or IRC, not filed as issues.
  • Give a good description of the problem, this also includes the necessary steps to reproduce the problem!
  • If you have a solution - please tell us! This doesn't have to be code. We appreciate any snippets, thoughts, ideas, etc that can help us resolve the issue.

Issues can be reported on GitHub.

Pull requests

The best way to submit code to Phing is to make a Pull Request on GitHub. Please help us merge your contribution quickly and keep your pull requests clean and concise: squash commits and don't introduce unnecessary (whitespace) changes.

Phing's source code is formatted according to the PSR-2 standard.

Running the (unit) tests

If you'd like to contribute code to Phing, please make sure you run the tests before submitting your pull request. To successfully run all Phing tests, the following conditions have to be met:

  • PEAR installed, channel "pear.phing.info" discovered
  • Packages "python-docutils" and "subversion" installed
  • php.ini setting "phar.readonly" set to "Off"

Then, perform the following steps (on a clone/fork of Phing):

     $ composer install
     $ cd tests
     $ ../bin/phing

Licensing

This software is licensed under the terms you may find in the file named "LICENSE" in this directory.

Proud to use:

PhpStorm Logo

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].