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
Github: namelesscoder/typo3-repository-client
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
Github: helhum/ter-client
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
Github: fnagel/typo3-ter-release-github-action
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.
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.
TYPO3 Tailor
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.
Closure!
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 Chauhan
CTO - T3Planet & NITSANSanjay Chauhan, Mitbegründer von NITSAN (Preisgekrönte TYPO3 Agentur) und Pionier von T3Planet, dem ersten TYPO3 Shop weltweit.
Ein wahrer TYPO3-Fanatiker seit 2010.
Mit meinem umfangreichen technischen Wissen und…
More From Author
Sanjay Chauhan
CTO at T3Planet & NITSANSanjay Chauhan, Co-Founder of NITSAN (Award winning TYPO3 agency) and Pioneer of T3Planet (first-ever TYPO3 Shop).
A true TYPO3 fanatic since 2010. I bring strong TYPO3 experience in building customer-business…
More From Author