How to Auto-Release TYPO3 Extension with Github?

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.

How to Auto-Release TYPO3 Extension with Github?

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: Travis CI

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).

  1. Edit your repository's settings
  2. Locate the "Webhooks & Services" tab
  3. Click "Add webhook"
  4. Enter in "URL": release.namelesscoder.net/my_extension.
  5. my_extension is the lowercase underscored extension key to release.
  6. Username: password is your credentials with permission to upload the extension.
  7. Enter in "Secret": typo3rocks
  8. 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!

Get Enhanced Features with Our Custom TYPO3 Extensions Services

  • Developed 150+ Custom TYPO3 Extensions
  • Build 45+ TER Extensions for TYPO3 Marketplace
  • 90+ Customization of TYPO3 Extensions
  • 230+ Customization req of TYPO3 Extensions
Customize Now

Post a Comment

×
Captcha Code Can't read the image? Click here to refresh
  • user
    Matthias Conradi 2021-03-08 at 7:14 am
    Thanks for figuring this out for us! I've auto-publishing at GIT to be a tricky thing -- lots of separate parts to address.
  • user
    Lidia Rühaak 2021-03-08 at 7:13 am
    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!
  • user
    Alex Kellner 2021-02-23 at 8:59 am
    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 :)
    • user
      Sanjay 2021-03-08 at 7:11 am
      Thanks for the suggestion! We've included it in the blog post :)