How to Auto-Release TYPO3 Extension with Github?

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!

Post Comment

Your email address will not be published. Required fields are marked *

×

Name is required!

Enter valid name

Valid email is required!

Enter valid email address

Comment is required!

Google Captcha Is Required!

Comments :

  • Matthias Conradi March 8, 2021 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.
  • Lidia Rühaak March 8, 2021 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!
  • Alex Kellner February 23, 2021 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 :)
    • Sanjay March 8, 2021 At 7:11 am
      Thanks for the suggestion! We've included it in the blog post :)
How To Clear TYPO3 Cache [With Useful Plugins]

How To Clear TYPO3 Cache? [With Useful Plugins]

When it comes to web performance, the TYPO3 cache is just one of those things that every site owner has to deal with at one point…

Comprehensive Guide to TYPO3 Solr Search : Series 3

Comprehensive Guide to TYPO3 Solr Search : Series 3

Welcome to Search Series 3! Are you looking for an Apache TYPO3 Solr extension? This blog will help you from Beginner to Advanced…

Enrich Your Website With Multipurpose TYPO3 Sliders

Enrich Your Website With Multipurpose TYPO3 Sliders

Setting up a slider image on your TYPO3 website can be your game changer. A slider to your website can improve User Experience to…

Stay up to date with our recent TYPO3 Blogs, news, & updates