dropbox-deployment
Deploy your CI artifacts to Dropbox
Setup
Install the gem:
gem install dropbox-deployment
This may vary in where this should go depending on your CI setup. If you are using GitHub Actions, it would look something like:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: '4.0'
- name: Install dropbox-deployment
run: gem install dropbox-deploymentUsage
Similar to the dropbox_api, you need to have an environment variable called DROPBOX_OAUTH_BEARER
You can create a OAUTH token here: https://www.dropbox.com/developers/apps/create
Deployment looks for a dropbox-deployment.yml file in order to configure where the artifacts are and where they should go.
For example:
deploy:
dropbox_path: /Builds # The path to the folder on Dropbox where the files will go
artifacts_path: artifacts # can be a single file, or a path
debug: true # if you want to see more logsAfter creating this configuration, all you need to do is run:
dropbox-deploymentThis place where this goes also can vary depending on the CI setup. If you are using GitHub Actions, you would want this as a step that runs after your build, with the token wired in via secrets:
- name: Deploy to Dropbox
env:
DROPBOX_OAUTH_BEARER: ${{ secrets.DROPBOX_OAUTH_BEARER }}
run: dropbox-deploymentAdd DROPBOX_OAUTH_BEARER to your repository's secrets under Settings → Secrets and variables → Actions.
Limitations
Since we rely on a certain function of the Ruby Dropbox API client, we are limited to 150 MB per file size. See more here
Test Locally
Just run ruby test/test.rb. Set up your dropbox-deployment.yml as desired, as well as your .env file for your OAUTH token.
Deployment
- Adjust the version in the gemspec
gem build dropbox-deployment.gemspecgem push dropbox-deployment-version.number.here.gem- Tag release in git
Thanks
Thanks to the following for being a great reference on how to create a command line Ruby Gem:
License
dropbox-deployment is available under the MIT license. See the LICENSE file for more info.