Akeebalize Your Extensions

Post on 11-Jul-2015

97 views 0 download

Tags:

Transcript of Akeebalize Your Extensions

Akeebalize Your Extensionshow to quickly deploy releases

Why this Topic?one developer’s approach to streamline a tedious process

Tools

• Akeeba Subscriptions (Optional) - http://akeebabackup.com

• Akeeba Release System

• Akeeba Release Maker

https://github.com/akeeba/releasemaker

• Git - http://github.com

• Custom shell script

https://github.com/devkardia/jdayhou13

Not a Plug…okay so maybe it is a plug

Prerequisites

• Developer background

• Basic understanding of Git

• PHP 5.3+ Joomla! site (Akeeba minimum requirement)

• Basic understanding of Akeeba Subscriptions, Akeeba Release System, and Akeeba Release Maker

• *nix based OS

• Any batch experts are welcome to convert the shell script! May be able to use Cygwin for Windows (http://cygwin.com); but likely to be a bit of work to get all setup.

Nuts and Boltslet’s get started

Directory Structurepreparing the directory structure for the bash script

where does XYZ come from

Releases

Category config.json -> common.category

where does XYZ come from

Releases

Category config.json -> common.category

Description DESCRIPTION.html

where does XYZ come from

Releases

Category config.json -> common.category

Description DESCRIPTION.html

Notes RELEASENOTES.html + CHANGELOG (parsed)

where does XYZ come from

Releases

Category config.json -> common.category

Description DESCRIPTION.html

Notes RELEASENOTES.html + CHANGELOG (parsed)

Alias config.json -> common.version

where does XYZ come from

Releases

Category config.json -> common.category

Description DESCRIPTION.html

Notes RELEASENOTES.html + CHANGELOG (parsed)

Alias config.json -> common.version

MaturityLast part of configured version: a = alpha, b = beta, rc = release candidate, otherwise stable. 1.0.0a

where does XYZ come from

Releases

where does XYZ come from

Items

where does XYZ come from

Items

Category, Name, Description, Environments

Automatic item descriptions

where does XYZ come from

Items

Category, Name, Description, Environments

Automatic item descriptions

Akeeba Subscription Groups

config.json -> $prefix.groups (separated by commas)

where does XYZ come from

Items

Category, Name, Description, Environments

Automatic item descriptions

Akeeba Subscription Groups

config.json -> $prefix.groups (separated by commas)

Access config.json -> $prefix.access (separated by commas)

Setting up Akeeba Subscriptionslive demonstration

Key Point Summary

• Take note of the subscription’s ID as this is used in ARM’s config.json file.

Setting up Akeeba Release Systemlive demonstration

Key Point Summary

• Automatic item descriptions

• Package name pattern must match the format of the filename in order for the elements to be applied.

• Use a wildcard ( * ) to accomodate filename differences.

Akeeba Release Makerhttps://github.com/akeeba/releasemaker

ARM Configuration

• Copy the config.json file from within your ARM directory into the root of the extension’s tools directory.

Config.json Common Variables

common.version Release version (set by shell script)common.arsapiurl URL to Joomla sitecommon.username User with admin privileges to ARScommon.password User with admin privileges to ARScommon.category ARS Category IDcommon.releasedir Full file path to packagescommon.repodir Full file path to extension’s rootcommon.update.method ftp or s3common.update.ftp* FTP settingscommon.update.s3.* S3 settings

Config.json Pro/Core Variables

*.pattern Package file pattern (use asterisks wildcard)

*.groups Akeeba Subscription levels separated by a comma

*.access Joomla access level (ID of Guest, Public, Registered, Special, etc.)

*.update.* Update stream to be captured and created in another location.

*.method Means to create offsite update stream file

*.ftp.* FTP settings for creating offsite update stream file

*.s3.* S3 settings for creating offsite update stream file

Config.json PDF Variables

pdf.where core or pro; sets which prefix should PDF documents be associated with

pdf.files

Full file path to the extension’s PDFs. ARM will zip them and upload them as a new item under the new release.

releasemaker.shthe script that glues it all together

Script Usage./releasemaker.sh command

Command Options: packit package type Package Type Options:

developer - Creates a package with a version based on repository revision; if the package already exists, a WORKING package will be created so as to not overwrite your dev packages. Multiple files stored in tools/packages/developer

release version - Creates a package ready for release. Single file stored in /tools/packages/release. Only one zip is created since ARM will upload all zip files it finds.

Version Options 1.0.0.a/b/rc - a = alpha; b = beta; rc = release candidate and anything else = stable

releaseit - Invokes ARM to create new release on your site

https://github.com/devkardia/jdayhou13

https://github.com/devkardia/jdayhou13

https://github.com/devkardia/jdayhou13

https://github.com/devkardia/jdayhou13

https://github.com/devkardia/jdayhou13

Script Demonstration