.drone.jsonnet 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. local pipeline(version) = {
  2. kind: "pipeline",
  3. name: "node-v" + version,
  4. steps: [
  5. {
  6. name: "tests",
  7. image: "node:" + version,
  8. commands: [
  9. "npm install",
  10. "npm run test",
  11. ],
  12. environment: {
  13. NODE_ENV: "test",
  14. KEYMETRICS_TOKEN: {
  15. from_secret: "keymetrics_token",
  16. },
  17. },
  18. },
  19. ],
  20. trigger: {
  21. event: ["push", "tag"]
  22. },
  23. };
  24. [
  25. pipeline("10"),
  26. pipeline("12"),
  27. pipeline("14"),
  28. {
  29. kind: "pipeline",
  30. name: "build & publish",
  31. trigger: {
  32. event: "tag"
  33. },
  34. depends_on: [
  35. "node-v10",
  36. "node-v12",
  37. "node-v14"
  38. ],
  39. steps: [
  40. {
  41. name: "build",
  42. image: "node:12",
  43. commands: [
  44. "npm install 2> /dev/null",
  45. "mkdir -p dist",
  46. "npm run build",
  47. "npm run dist",
  48. ],
  49. },
  50. {
  51. name: "publish",
  52. image: "plugins/npm",
  53. settings: {
  54. username: {
  55. from_secret: "npm_username"
  56. },
  57. password: {
  58. from_secret: "npm_password"
  59. },
  60. email: {
  61. from_secret: "npm_email"
  62. },
  63. },
  64. },
  65. ],
  66. },
  67. {
  68. kind: "secret",
  69. name: "npm_username",
  70. get: {
  71. path: "secret/drone/npm",
  72. name: "username",
  73. },
  74. },
  75. {
  76. kind: "secret",
  77. name: "npm_email",
  78. get: {
  79. path: "secret/drone/npm",
  80. name: "email",
  81. },
  82. },
  83. {
  84. kind: "secret",
  85. name: "npm_password",
  86. get: {
  87. path: "secret/drone/npm",
  88. name: "password",
  89. },
  90. },
  91. {
  92. kind: "secret",
  93. name: "keymetrics_token",
  94. get: {
  95. path: "secret/drone/keymetrics",
  96. name: "token",
  97. },
  98. },
  99. ]