.drone.jsonnet 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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. "node -v",
  10. "uname -r",
  11. "npm install",
  12. "npm test"
  13. ]
  14. },
  15. ],
  16. services: [
  17. {
  18. name: "mongodb",
  19. image: "mongo:3.4",
  20. environment: {
  21. AUTH: "no"
  22. },
  23. },
  24. {
  25. name: "redis",
  26. image: "redis:5",
  27. },
  28. {
  29. name: "mysql",
  30. image: "mysql:5",
  31. environment: {
  32. MYSQL_DATABASE: "test",
  33. MYSQL_ROOT_PASSWORD: "password"
  34. },
  35. },
  36. {
  37. name: "postgres",
  38. image: "postgres:11",
  39. environment: {
  40. POSTGRES_DB: "test",
  41. POSTGRES_PASSWORD: "password"
  42. },
  43. },
  44. ],
  45. trigger: {
  46. event: ["push", "pull_request"]
  47. },
  48. };
  49. [
  50. pipeline("8"),
  51. pipeline("10"),
  52. pipeline("12"),
  53. pipeline("13"),
  54. pipeline("14"),
  55. {
  56. kind: "pipeline",
  57. name: "build & publish",
  58. trigger: {
  59. event: "tag"
  60. },
  61. steps: [
  62. {
  63. name: "build",
  64. image: "node:8",
  65. commands: [
  66. "export PATH=$PATH:./node_modules/.bin/",
  67. "yarn 2> /dev/null",
  68. "mkdir build",
  69. "yarn run build",
  70. ],
  71. },
  72. {
  73. name: "publish",
  74. image: "plugins/npm",
  75. settings: {
  76. username: {
  77. from_secret: "npm_username"
  78. },
  79. password: {
  80. from_secret: "npm_password"
  81. },
  82. email: {
  83. from_secret: "npm_email"
  84. },
  85. },
  86. },
  87. ],
  88. },
  89. {
  90. kind: "secret",
  91. name: "npm_username",
  92. get: {
  93. path: "secret/drone/npm",
  94. name: "username",
  95. },
  96. },
  97. {
  98. kind: "secret",
  99. name: "npm_email",
  100. get: {
  101. path: "secret/drone/npm",
  102. name: "email",
  103. },
  104. },
  105. {
  106. kind: "secret",
  107. name: "npm_password",
  108. get: {
  109. path: "secret/drone/npm",
  110. name: "password",
  111. },
  112. }
  113. ]