20 Commits

Author SHA1 Message Date
Daniel Rudolf
60d0f5403c
CI: Use build script to publish new releases
Since Pico depends on PicoDeprecated, and PicoDeprecated depends on Pico, a chicken-egg-problem arises: When pushing a new tag for Pico, GitHub Actions will try to build this new release by downloading the matching version of PicoDeprecated from Packagist. Since we didn't release a new version of PicoDeprecated yet, this will fail. So we need to push PicoDeprecated's tag first. Doing so yields GitHub Actions trying to build PicoDeprecated's new release - by trying to download the matching version of Pico from Packagist, which doesn't exist yet.

Thus builds will always fail - unless you push both tags at the exact same time, and unless you send some prayers that GitHub Actions delays building until Packagist picks up the new releases. The simplest solution is not to use GitHub Actions to publish new releases, but letting the user to do it instead. With this changeset this is as simple as `make publish version=v3.0.0`. The 'deploy-release' GitHub workflow now just updates the website and is triggered by publishing the GitHub release, not the tag. This additionally allows the user to perform some manual tests before publication.

The build script now depends on GitHub CLI (`gh`), see https://cli.github.com/. You must setup authentication first (`gh auth login`).
2022-03-08 22:07:35 +01:00
Daniel Rudolf
00ac6c0700
CI: Some small styling improvements 2022-03-06 18:04:03 +01:00
Daniel Rudolf
1aacce829f
🎉 Switch from Travis CI to GitHub Actions for release deployment
Since Travis CI was transformed into a proprietary service we didn't have a CI pipeline. This heavily refactors and simplifies the CI pipeline and uses GitHub Actions to deploy new Pico releases. You can use Pico's Makefile to build new releases locally, too. Pico's build script no longer depends on any external resources (like our `picocms/ci-tools` collection). However, this isn't true for other release deployment steps, like updating phpDoc class docs, version badge, cloc stats, etc., even though the CI scripts are mostly self-containing now.
2022-02-27 23:05:17 +01:00
Daniel Rudolf
41fc15a7e8
Remove picocms\Pico\ namespace
This reverts commit 812ae5c21548905e308f002bc6d97a042ea09aad
2022-02-06 23:14:08 +01:00
Daniel Rudolf
9bf317f903
Travis CI: Use phpDocumentor 3 2020-07-10 19:45:21 +02:00
Daniel Rudolf
1b1fa73fd9
Fix Travis CI 2020-04-11 21:21:33 +02:00
Daniel Rudolf
636e8d2a8a
Travis CI: Force Composer minimum stability <= beta
Unfortunately we must force Composer minimum stability <= beta due to Parsedown 1.8 currently being in beta. Composer AFAIK can't decide this on a per-dependency basis...
2019-11-25 00:43:53 +01:00
Daniel Rudolf
58f615403e
Refactor Build system
- Separate Travis branch deployment and release deployment stages (also makes `deploy.sh` obsolete)
- Add `clean.sh` and `release.sh` scripts to allow users to create "release" packages locally
- Use `setup/*.sh` scripts to check and install build dependencies (like PHP_CodeSniffer, phpDocumentor and cloc)
- Use `create-release.sh` of `picocms/ci-tools` to create release archives
- Streamline script usage

Use the following to test Pico and to create a "release" package locally:

```sh
cd ~/My-Pico-Workspace/Components/pico

ln -rs ../ci-tools .build/ci-tools

. ./.build/ci-tools/init/local.sh.inc
. ./.build/init.sh.inc

phpcs --standard=.phpcs.xml "$PICO_PROJECT_DIR"

clean.sh
release.sh
```
2019-11-03 20:03:48 +01:00
Daniel Rudolf
92a8a299f8
Travis CI: Add PHP 7.4, improve deployment logging 2019-10-01 13:28:21 +02:00
Daniel Rudolf
56659ab95d
Build system: Don't use Composer for dev dependencies
PHP_CodeSniffer and phpDocumentor are external tools which should never affect Pico's environment, thus we rather use PHARs in the future.
2019-09-12 12:38:56 +02:00
Daniel Rudolf
641cae849b
Travis CI: Additionally create .zip release archives 2019-08-29 16:42:18 +02:00
Daniel Rudolf
2cf60e25af
Build system: Small improvement 2019-02-21 10:35:54 +01:00
Daniel Rudolf
6dd6da655f
Build system: Allow pre-release dependencies when creating pre-releases 2019-01-03 13:15:18 +01:00
Daniel Rudolf
edef825792
Build system: Don't overwrite config/config.yml.template when creating pre-bundled releases 2018-07-01 20:57:37 +02:00
Daniel Rudolf
834300acb4
Build system: Fix cloc statistics generation 2018-07-01 19:21:14 +02:00
Daniel Rudolf
6d6a39b744
Fix Travis build
See travis-ci/travis-ci#8248
2018-07-01 15:22:40 +02:00
Daniel Rudolf
5f7b455975
Add README.md, CONTRIBUTING.md and CHANGELOG.md to pre-bundled releases 2018-02-24 13:19:04 +01:00
Daniel Rudolf
e079946e6f
Build system: Don't delete .gitignore when creating release archives
It doesn't make much sense to remove all .gitignore files just to explain users that they should create those files if they want to manage their website using a Git repository.
2018-01-27 21:02:06 +01:00
Daniel Rudolf
1ce1780a86
Build system: Fix release deployment 2017-12-24 14:21:32 +01:00
Daniel Rudolf
722de2a1e5
Build system: Refactor scripts to use picocms/ci-tools 2017-12-02 17:21:03 +01:00