The assemblyline chrome extension is built to enable a workflow where applications built using Assemblyline can be deployed from within the github web interface.
This is enabled by adding 2 missing features to the github web interface.
Where a commit has passing commit statuses, and url for a docker image
is available in the target_url field of a commit status with
the assemblyline/build context, UI is provided to request a deployment
via the deployments api
This UI shows the url of the docker image, and allows the user to choose
the environment (i.e. kubernetes namespace to deploy the application to)
and a description of the deployment (defaulted to the current commit message)
As this UI is only coupled to the github deployments API, it is possible
to experiment with different tools that will actually make the deployment
happen. A deployment tool that will be configured using Assemblyfile
is in development.
The extension also provides an overview (and detailed info) about the status of
active and historical deployments to each environment. This allows deployment
tools to provide feedback to the user via the
deployments api.
The environment_url and log_url fields are also exposed to the user, in
order that a deployment tool can where appropriate provide a link to the
deployed application as well as a link to an interface where log and
diagnostic information could be provided.
The extension can be installed from the chrome web store.
Once installed you will need to create a github
personal access token so that the
extension is able to connect to the github api. Currently the extension only
needs access to the repo:status and repo_deployment scopes, it is good
practice to only give the extension access to these scopes.
Once you have created your access token, visit the chrome extensions settings page and click on the options link in the Assemblyline extension. There you will be able to configure the token used by the extension.
The extension is built with webpack. Dependencies are managed with yarn.
To build a zip file ready to upload to the chrome webstore do this:
yarn install
yarn run build
If you want to hack on the code:
yarn install
yarn run watch
Then visit chrome extensions settings page and click on
"Load unpacked extension..." and navigate to the build directory.
Webpack will rebuild whenever you change a file, but you must reload the
extension in the chrome extensions settings page before
your changes will take effect in the browser.
- Testing
- More modular and decoupled code
- Look into using React
- Add any features that are required once the deployment tool is completed
This code is licensed under an MIT licence. If causes you any difficulty in using the code, let us know as we are happy to add any (reasonable) licence as required.
- Contributions are very welcome, and we will do everything we can to help you do so.
- This project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
- Here are things you can do to help:
- Open An Issue.
- Add a feature.
- Make the code better.