Akeebalize Your Extensions
-
Upload
alan-hartless -
Category
Technology
-
view
97 -
download
0
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