digitalocean/functions-deployer
TypeScript
Captured source
source ↗digitalocean/functions-deployer
Language: TypeScript
License: Apache-2.0
Stars: 5
Forks: 6
Open issues: 4
Created: 2022-09-19T14:18:50Z
Pushed: 2025-12-15T06:34:13Z
Default branch: main
Fork: no
Archived: no
README:
DigitalOcean Functions deployer library (Node.js)
This repository contains an internal TypeScript library for deploying functions in DigitalOcean. It is used by the doctl serverless deployer plugin and in remote builds.
The contents were jumpstarted by migrating the original Nimbella deployer from nimbella/nimbella-deployer. The commit history (and version history) was preserved. Thus, the first version sourced from this repo is a new major version, 5.0.0.
There are three artifacts that are derived from this source:
1. A nodejs library for incorporation into other node-based tools. Currently, this is uploaded to a DigitalOcean space object store for later incorporation but it should eventually be published to npm. 2. The doctl serverless deployer-plugin. Currently, this is built from (1) in the separate repo digitalocean/doctl-sandbox-plugin. 3. An install image for installing the deployer into container images (currently just runtime containers) with an outer shell called dosls. We do not install a complete doctlinto those images unless it is needed for another purpose.
Artifacts (1) and (3) are built by the script internalRelease.sh with no arguments. That script is driven by a GitHub action on every push to the main branch. It only builds the artifacts if the current version (in package.json) is not yet uploaded to the tools Space. After building the artifacts, it uploads them as well. So, new versions are "published" only on pushes to main with a new version number.
The internalRelease.sh script can also be run with a --test flag, in which case is builds the artifacts unconditionally but does not upload them.
Testing changes locally
To test changes locally. make sure to add --ignore-scripts flag during install.
npm install --ignore-scripts npm run build
after which the deployer shell can be run as /path/to/repo/bin/run. It is often convenient to make a symbolic link in your path pointing to that location (e.g. as dosls). Then, you can test with
dosls deploy dosls get-metadata dosls watch