diff --git a/examples/activate.js b/examples/activate.js new file mode 100644 index 0000000..6b2d7ce --- /dev/null +++ b/examples/activate.js @@ -0,0 +1,30 @@ +// This can be run after examples/deploy.js you just need the service Sid. +// Run this example with: +// node deploy/activate.js SERVICE_SID + +const { TwilioServerlessApiClient } = require('../dist'); +const serviceSid = process.argv[2]; +async function run() { + const config = { + accountSid: process.env.TWILIO_ACCOUNT_SID, + authToken: process.env.TWILIO_AUTH_TOKEN, + }; + + const client = new TwilioServerlessApiClient(config); + console.log('Activating'); + const result = await client.activateBuild({ + ...config, + env: { + HELLO: 'hello', + WORLD: 'world', + }, + serviceSid, + sourceEnvironment: 'test', + targetEnvironment: 'stage', + createEnvironment: true, + }); + console.log('Done Activating'); + console.dir(result); +} + +run().catch(console.error); diff --git a/src/client.ts b/src/client.ts index 1f73349..b3035c8 100644 --- a/src/client.ts +++ b/src/client.ts @@ -318,6 +318,7 @@ export class TwilioServerlessApiClient extends events.EventEmitter { targetEnvironment, serviceSid, sourceEnvironment, + env, } = activateConfig; if (!buildSid && !sourceEnvironment) { @@ -372,6 +373,12 @@ export class TwilioServerlessApiClient extends events.EventEmitter { throw new Error('Could not determine build SID'); } + this.emit('status-update', { + status: DeployStatus.SETTING_VARIABLES, + message: 'Setting environment variables', + }); + await setEnvironmentVariables(env, targetEnvironment, serviceSid, this); + const { domain_name } = await getEnvironment( targetEnvironment, serviceSid, diff --git a/src/types/activate.ts b/src/types/activate.ts index 1e3f256..854abf1 100644 --- a/src/types/activate.ts +++ b/src/types/activate.ts @@ -2,6 +2,7 @@ import { ClientConfig } from './client'; import { Sid } from './serverless-api'; +import { EnvironmentVariables } from './generic'; export type ActivateConfig = ClientConfig & { force?: boolean; @@ -10,6 +11,7 @@ export type ActivateConfig = ClientConfig & { buildSid?: Sid; targetEnvironment: string | Sid; sourceEnvironment?: string | Sid; + env: EnvironmentVariables; }; export type ActivateResult = {