In this article, You will learn how to auto-release your TYPO3 extensions to save your time & efforts. The solution list contains the most popular TYPO3 Github repositories which are developed and well-maintained by popular faces of TYPO3.
Modern TYPO3 developers should have the knowledge to automate the deployment process of your TYPO3 extension to save time & effort. In this micro TYPO3 blog, you will get a list of Github repositories that provide features to auto-release your TYPO3 extension. The list only contains the latest TYPO3 Github repositories which are developed and well-maintained, most of them are CLI-based TYPO3 CI/CD approach which is very convenient ;)
Our App Store Is Called “TER”, and it’s FREE ;)
- TYPO3 GmbH
Wait.. before we start ;)
My dear TYPO3 reader, as you know me, I’m always eager to appreciate TYPO3 people’s work ;) Let's give big hands to all TYPO3 developers who contributed to the auto-release TYPO3 extension. #T3Kudos
What’re the Basic Needs To Publish TYPO3 Extension?
Congratulations! You have decided to publish your first TYPO3 extension at the community’s official website https://extensions.typo3.org/ Follow these steps to publish your TYPO3 extension.
Step 1. TYPO3.org Account
Register your account at the official My TYPO3 site my.typo3.org/register
Step 2. Login at TER
Go to https://extensions.typo3.org/ & Login with your account.
Step 3. Valid Extension Key
Once logged in, Go to the My Extension and Register extension key for your first TYPO3 extension.
Step 4. Documentation
Although, you can submit an extension without Documentation. But as a good developer, I recommend making documentation of your extension so TYPO3 people can efficiently use your TYPO3 extension.
Step 5. Bugs and Reporting System
Optional, but it’s a good idea to provide some ticket system so people can contribute to improving your TYPO3 extension. Most people use Git-repository eg., Github’s issues management.
Step 6. Develop & Publish Your TYPO3 Extension
Complete the development of your TYPO3 extension, and set up an auto-release TYPO3 extension with Github (keep reading this article for how-to ;)
If you are looking for detailed insight and other-ways (eg., Gitlab) to publish TYPO3 extension to TER, check one of another popular blog 8 Ways to Publish Your TER TYPO3 Extensions
TYPO3 Extension Repository (TER) client library and CLI commands.
// Installation namelesscoder/typo3-repository-client // Release Command ./bin/upload /path/to/extension myusername mypassword "An optional comment" // Version Release Command (local) ./bin/setversion 1.2.3 beta /optional/path/to/extension/ // Version Release Delete Command (admins only) ./bin/rmversion extensionkey 1.2.3 myusername mypassword
TYPO3 Extension Repository (TER) client library and Symfony Console command. This has been built on the shoulders of namelesscoder/typo3-repository-client.
// Installation composer require helhum/ter-client // Release Command ter-client upload ext_key /path/to/extension -u myusername -p mypassword -m "Upload Comment" // Version-Release Command ter-client remove-version extensionkey 1.2.3 -u myusername -p mypassword
This repo contains a GitHub action workflow file that works as a starting point for automatized TER releases to be used within your TYPO3 CMS extension repository. It makes use of the namelesscoder/typo3-repository-client package.
- Add and adjust the example workflow configuration
- Configure TYPO3 credentials and extension key
- After the workflow is in place, pushing a new tag will trigger:
tag-valid job: checks if the event is a tag and if it's valid using regex
if so, the ter-release job: uploads the new version to TER
Github: Workflow Release
Github actions give you the possibility to run some code after a special trigger (e.g. a push into a repo) is recognized. This can be used for running tests or - in our case - to deploy the software to TYPO3 TER when a new tag is pushed.
TYPO3: WSDL Services
CI environments (like Jenkins or GitLab CI) can execute these commands, it’s not to be that difficult to publish an extension automatically.
Interestingly, there lies a public SOAP interface for the TYPO3 Extension Repository. The entirety of the as of now referenced solutions utilize this API.
You can discover it under the URL https://typo3.org/wsdl/tx_ter_wsdl.php
Repo Releaser: release.namelesscoder.net
One of the awesome solutions by @NamelessCoder to automatically upload your extension from the Github repository to TER. Recommend to see a complete solution at http://release.namelesscoder.net/ (It’s free and secure).
- Edit your repository's settings
- Locate the "Webhooks & Services" tab
- Click "Add webhook"
- Enter in "URL": release.namelesscoder.net/my_extension.
- my_extension is the lowercase underscored extension key to release.
- Username: password is your credentials with permission to upload the extension.
- Enter in "Secret": typo3rocks
- Leave the "Events" selection as it is - this service only requires the push event.
One of the active TYPO3 contributor Alex from In2Code provided us clean solution to release extension from Github to TER. Good thing is, It has been using TER's new standard TYPO3_API_TOKEN too. By d way, it also uses the "TYPO3 Tailor" to automatically publish extension with Github tag release.
Thanks for reading my blog, I hope you found it interesting & helpful.
Did you miss any good-one auto-release TYPO3 extension techniques? What’s your favorite release management way? Do you have any questions or problems? Feel free to write to the comment box below.
Have a Happy TYPO3 Releasing!
Post a Comment
Thanks for figuring this out for us! I've auto-publishing at GIT to be a tricky thing -- lots of separate parts to address.
Thank you for the post Sanjay. It is a compact precise guide on typo3 plugin auto-publishing at Git that no one has ever written much about. I will look into it and post an update here and on the Git repo. Thanks for flagging and your compliments!
We have a very small alternative published in german: https://www.in2code.de/aktuelles/github-typo3-erweiterungen-automatisch-ins-ter-deployen/ - just a few lines of code will help you to deploy your extension to TER after a tag is pushed :)
Thanks for the suggestion! We've included it in the blog post :)
Sanjay ChauhanCTO - T3Planet & Nitsan Technologies
Sanjay Chauhan, Co-Founder of NITSAN (awarding winning TYPO3 agency) and Pioneer of T3Planet (first-ever TYPO3 Store).
A true TYPO3 fanatic since 2010. I bring strong TYPO3 experience in building customer-business…
More From Author