Appvoyer encrypt files

Note

View on appvoyer: Link

1. Encrypting file on development machine

  • Download secure-file utility by running the following command on development machine:
# on windows
iex ((New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/appveyor/secure-file/master/install.ps1'))

# on linux
curl -sflL 'https://raw.githubusercontent.com/appveyor/secure-file/master/install.sh' | bash -e -
  • To encrypt a file:
# on windows
appveyor-tools\secure-file -encrypt C:\path-to\filename-to-encrypt.ext -secret MYSECRET1234

# on linux
./appveyor-tools/secure-file -encrypt /path-to/filename-to-encrypt.ext -secret MYSECRET1234

Encrypted file will be saved in the same directory as the input file, but with the .enc extension added. You can optionally specify output file name with the -out parameter.

2. Decrypting files during an AppVeyor build

  • Put the “secret” value to the project environment variables on the Environment tab of the project settings or in the appveyor.yml as a secure variable:
environment:
  my_secret:
    secure: BSNfEghh/l4KAC3jAcwAjgTibl6UHcZ08ppSFBieQ8E=
  • To decrypt the file, add these lines to the install section of your project config:
install:
  - ps: iex ((New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/appveyor/secure-file/master/install.ps1'))
  - cmd: appveyor-tools\secure-file -decrypt path-to\encrypted-filename.ext.enc -secret %my_secret%
  - sh: ./appveyor-tools/secure-file -decrypt path-to/encrypted-filename.ext.enc -secret $my_secret

The line starting with cmd: will run on Windows-based images only and the line starting with sh: on Linux.

Note

Note that file won’t be decrypted on Pull Request builds as secure variables are not set during PR build.

Last Updated: 1/6/2020, 1:58:20 PM