Skip to content
This repository has been archived by the owner on Feb 22, 2024. It is now read-only.

Financial-Times/fastly-tools

Repository files navigation

Warning

This package is deprecated as of 2024-02-21. The Fastly monorepo is currently hosting the config for each service. The FT.com CDN config has been migrated to Terraform and it's managed by their own separate repo. Consumers of this package should migrate their config to the monorepo.

fastly-tools CircleCI

This library is a command line tool for interacting with the FT.com CDN, Fastly.

Requirements

  • Node version defined by engines.node in package.json. Run command nvm use to switch your local Node version to the one specified in .nvmrc.

Installation

git clone git@github.com:Financial-Times/fastly-tools.git
cd fastly-tools
make install

Development

Testing

In order to run the tests locally you'll need to run:

make test

Install from NPM

npm install --save-dev @financial-times/fastly-tools

Usage

Usage: fastly [options] [command]

Options:
  -h, --help                      output usage information

Commands:
  deploy [options] [folder]       Deploys VCL in [folder] to the specified fastly service. Requires FASTLY_APIKEY env var which can be found in the repo's corresponding Vault directory.

Deploy

Usage: deploy [options] [folder]

Deploys VCL in [folder] to the specified fastly service. Requires FASTLY_APIKEY env var which can be found in the repo\'s corresponding Vault directory.

Options:
  -m, --main <main>               Set the name of the main vcl file (the entry point).  Defaults to "main.vcl"
  -v, --vars <vars>               A way of injecting environment vars into the VCL.  So if you pass --vars AUTH_KEY,FOO the values {$AUTH_KEY} and ${FOO} in the vcl will be replaced with the values of the environment variable.  If you include SERVICEID it will be populated with the current --service option
  -e, --env                       Load environment variables from local .env file (use when deploying from a local machine
  -s, --service <service>         REQUIRED.  The ID of the fastly service to deploy to.
  -V --verbose                    Verbose log output
  -b --backends <backends>        Upload the backends specified in <backends> via the api
  -k --api-keys <keys>            list of alternate api keys to try should the key stored in process.env.FASTLY_API_KEY hit its rate limit
  --skip-conditions <conditions>  list of conditions to skip deleting
  -h, --help                      output usage information

Example

For example to deploy to a given environment, you would use the following command:

	fastly-tools deploy -V --vars SERVICEID --main main.vcl --service ${FASTLY_STAGING_SERVICE_ID} --api-keys ${FASTLY_STAGING_APIKEY} --backends backends.js ./vcl/