A Buildkite plugin that will push an IPA to S3 and output both a link and a QR code as an annotation for easy download/install.
In order to push to S3, you will need to ensure that permissions are in place to perform PUT
actions on buckets. The use of an additional plugin, such as AWS assume-role-with-web-identity is recommended.
This plugin requires the presence of the qrencode
CLI tool, it can be installed for your instance using:
apt install qrencode -y
dnf install qrencode -y
pacman -S qrencode --noconfirm
brew install qrencode
βΉοΈ Using this plugin is still possible without the installation of qrencode
, but you will need to set generate-qr-code
to false
in the pipeline.yaml
(see opting out of qr generation)
These are all the options available to configure this plugin's behaviour.
The title
is the title/name of the application IPA being pushed.
The bundle-id
is the ID for the IPA bundle.
The plist-path
is the path for the IPA properties list, in the format "app.plist".
The s3-bucket
is the name of the bucket that the IPA should be pushed to. It is assumed that an authentication method has been used already and the required permissions are available.
steps:
- label: "π Push "
plugins:
- ipa-to-s3#v1.0.0:
title: cool-app
bundle-id: jdc.io.cool-app
plist-path: app.plist
s3-bucket: bucket-for-cool-app
In the above example, the ipa-path
will default to cool-app.ipa
.
The ipa-path
is the location, including extension, of the IPA in the form app-name.ipa
.
Default: [title].ipa
Whether or not a QR code should be posted as a build annotation. If set to false
then no QR code will be posted as a build annotation.
Whether set to true
or false
, a link to download the app will still be posted as a build annotation. Setting to false
removes the requirement for having qrencode
available on the machine.
Default: true
steps:
- label: "π Push "
plugins:
- ipa-to-s3#v1.0.0:
title: cool-app
bundle-id: jdc.io.cool-app
plist-path: app.plist
s3-bucket: bucket-for-cool-app
generate-qr-code: false
In the above example, no QR code will be generated/posted as a build annotation.
steps:
- label: "π Push "
plugins:
- ipa-to-s3#v1.0.0:
title: cool-app
bundle-id: jdc.io.cool-app
plist-path: app.plist
ipa-path: not-a-cool-app.ipa
s3-bucket: bucket-for-cool-app
Where the ipa-path
doesn't use the title
it can be set separately.
You can use the bk cli to run the pipeline locally:
bk local run
Your policy on how to contribute to the plugin!
The package is available as open source under the terms of the MIT License.