Skip to content

CI and environment variables

In CI there is no browser to log in with. Give the login with environment variables instead.

When TWINFIELD_REFRESH_TOKEN is set, Credentials::default() uses it instead of the credentials file. It also needs the client the refresh token belongs to:

  • TWINFIELD_CONNECT_CLIENT_ID and TWINFIELD_CONNECT_CLIENT_SECRET for a login through Twinfield Connect, or
  • TWINFIELD_CLIENT_ID and TWINFIELD_CLIENT_SECRET for your own Twinfield client.

You find these values in credentials.json after a twf login on your own machine. Store them as secrets in your CI.

Tokens from environment variables are not written back to a file.

Variable Use
TWINFIELD_REFRESH_TOKEN The refresh token.
TWINFIELD_CONNECT_CLIENT_ID, TWINFIELD_CONNECT_CLIENT_SECRET The Twinfield Connect client, see credentials.json.
TWINFIELD_CLIENT_ID, TWINFIELD_CLIENT_SECRET Or your own Twinfield client.
TWINFIELD_CONNECT_URL Only for a Twinfield Connect you run yourself.
TWINFIELD_REDIRECT_URI Only when your client does not use http://localhost:8765/callback.
TWINFIELD_PROFILE The profile to use instead of default.
TWINFIELD_CONFIG_DIR The directory of credentials.json.
- run: composer phpunit
env:
TWINFIELD_REFRESH_TOKEN: ${{ secrets.TWINFIELD_REFRESH_TOKEN }}
TWINFIELD_CONNECT_CLIENT_ID: ${{ secrets.TWINFIELD_CONNECT_CLIENT_ID }}
TWINFIELD_CONNECT_CLIENT_SECRET: ${{ secrets.TWINFIELD_CONNECT_CLIENT_SECRET }}
Made by SolveBeam

Twinfield and Wolters Kluwer are trademarks of Wolters Kluwer. Their names and logos are used only to refer to their products.