Conversation
| - name: "build-phar.sh" | ||
| run: "build-phar.sh" | ||
| - name: "Build and sign phar file via phing" | ||
| run: "vendor/bin/phing phar-build phar-sign" |
There was a problem hiding this comment.
I was able to run phar-build locally to produce a phar (attached to the main PR description), but I am not sure how to test the signing, and uploading the PHAR to the release.
| steps: | ||
| - name: "Checkout" | ||
| uses: "actions/checkout@v3" | ||
| uses: "actions/checkout@v2" |
| - name: "build-phar.sh" | ||
| run: "build-phar.sh" | ||
| - name: "Build and sign phar file via phing" | ||
| run: "vendor/bin/phing phar-build phar-sign" |
| <!-- http://www.phing.info/get/phing-latest.phar --> | ||
| <!-- php -d phar.readonly=Off phing-latest.phar phar-build-release --> | ||
| <!-- ============================================================== --> | ||
| <project name="roave-backward-compatibility-check" default="phar-build"> |
There was a problem hiding this comment.
Why the fresh hell do we need phing, and why does it still exist? 😱
| ], | ||
| "require-dev": { | ||
| "doctrine/coding-standard": "^9.0.0", | ||
| "phing/phing": "^2.17", |
| <!--create the package--> | ||
| <mkdir dir="${build-dir}" /> | ||
| <php expression="file_put_contents('bin/clistub.php', '#!/usr/bin/env php' . chr(10) . Phar::createDefaultStub('bin/roave-backward-compatibility-check.php'))"/> | ||
| <pharpackage basedir="./" |
There was a problem hiding this comment.
We really shouldn't drag in phing for just this 😬
There was a problem hiding this comment.
This is just based off the suggested approach in maglnet/ComposerRequireChecker - which uses Phing's PHAR packager to make this heh
There was a problem hiding this comment.
Yup - I think we just need to extract this specific step to be done via bash, and then we are good 🤔
There was a problem hiding this comment.
Seems like it isn't too much Voodoo: https://github.com/phingofficial/phing/blob/d98239f270e86c6a886eb93893d5ddd17c9d71bd/src/Phing/Task/System/PharPackageTask.php
Only dependency becomes ext-phar in require-dev
There was a problem hiding this comment.
Sorry for bothering: any update on this? Thanks!
There was a problem hiding this comment.
Hmm, yeah, looking at https://github.com/maglnet/ComposerRequireChecker/blob/fb2a69aa2b7307541233536f179275e99451b339/.github/workflows/phar-creation.yml#L32, there's no real way around it.
We could have a tools/phing/composer.json, but let's roll with the current solution for now, if you are happy with it.
I can extract it from here later, if it becomes a problem: would really rather not have phing in my big list of problems, but it is what it is :D
There was a problem hiding this comment.
Not sure if @theseer might be working a tool: https://phpc.social/@theseer/109296480712703364
There was a problem hiding this comment.
Let's just go with what works now and unblocks @sebastianbergmann, and then we suffer later in trying to extract it from our pipeline again :P
There was a problem hiding this comment.
OK, I'll take a look at this again and refresh myself, haven't looked at it for a while and probably needs a rebase etc 😁
There was a problem hiding this comment.
Not sure if @theseer might be working a tool: phpc.social/@theseer/109296480712703364
This is work in progress and in early design phase on my side.
Given I'm currently quite busy, this is likely not to materialize very soon :-(
Fixes #374
NOTE - I have not tested this end to end - not entirely sure how to set up GPG to use the private key without nuking my own private key.
The phar builds (example attached, zipped so that GH accepts it) but I'm not sure how to test the signing
roave-backward-compatibility-check.zip
.