dev.yml 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. name: Attu dev release
  2. on:
  3. pull_request_target:
  4. branches: [main]
  5. types: [closed]
  6. jobs:
  7. build:
  8. runs-on: ubuntu-latest
  9. if: github.event.pull_request.merged == true
  10. steps:
  11. - uses: actions/checkout@v2
  12. - name: Setup Node.js
  13. uses: actions/setup-node@v1
  14. with:
  15. node-version: 14
  16. - name: Run server tests
  17. run: |
  18. cd server
  19. yarn install
  20. yarn test:cov
  21. - name: Upload coverage to Codecov
  22. uses: codecov/codecov-action@v2
  23. with:
  24. # public repo needn't pass token
  25. # token: ${{ secrets.CODECOV_TOKEN }}
  26. # only upload server test coverage
  27. flags: server
  28. - name: Login to DockerHub
  29. uses: docker/login-action@v1
  30. with:
  31. username: ${{ secrets.DOCKER_USERNAME }}
  32. password: ${{ secrets.DOCKER_PWD }}
  33. - name: Docker Build
  34. run: docker build -t zilliz/attu:dev --build-arg VERSION=dev .
  35. - name: Docker Push Dev
  36. run: docker push zilliz/attu:dev
  37. k8s:
  38. runs-on: ubuntu-latest
  39. needs: build
  40. steps:
  41. - uses: actions/checkout@v2
  42. - name: Setup Node.js
  43. uses: actions/setup-node@v1
  44. with:
  45. node-version: 12
  46. - name: Install OpenVPN and kubectl
  47. run: |
  48. sudo apt-get update
  49. sudo apt-get install openvpn -y
  50. sudo apt-get install -y apt-transport-https ca-certificates curl
  51. sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
  52. echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
  53. sudo apt-get update
  54. sudo apt-get install kubectl -y
  55. - name: Connect VPN
  56. uses: golfzaptw/action-connect-ovpn@master
  57. id: connect_vpn
  58. with:
  59. FILE_OVPN: ".github/workflows/client.ovpn"
  60. env:
  61. CA_CRT: ${{ secrets.VPN_CA}}
  62. USER_CRT: ${{ secrets.VPN_CRT }}
  63. USER_KEY: ${{ secrets.VPN_KEY }}
  64. - name: Deploy to cluster
  65. run: |
  66. echo ${{ secrets.kubeconfig }} > config64
  67. base64 -d config64 > kubeconfig
  68. kubectl delete pods -n ued -l app=attu --kubeconfig=kubeconfig
  69. sleep 60
  70. check:
  71. runs-on: ubuntu-latest
  72. needs: [build, k8s]
  73. steps:
  74. - uses: actions/checkout@v2
  75. - name: Setup Node.js
  76. uses: actions/setup-node@v1
  77. with:
  78. node-version: 12
  79. - name: Check insight status
  80. env:
  81. INSIGHT_URL: ${{ secrets.INSIGHT_URL }}
  82. run: |
  83. yarn add axios
  84. yarn add @actions/core
  85. node checkInsight.js