release.yaml 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. name: Upload release assets
  2. on:
  3. release:
  4. types:
  5. - published
  6. jobs:
  7. upload:
  8. runs-on: ubuntu-20.04
  9. strategy:
  10. fail-fast: false
  11. steps:
  12. - uses: aws-actions/configure-aws-credentials@v1-node16
  13. with:
  14. aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
  15. aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  16. aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
  17. - name: Get packages
  18. run: |
  19. REF=${{ github.ref_name }}
  20. case "$REF" in
  21. v*)
  22. s3dir='emqx-ce'
  23. ;;
  24. e*)
  25. s3dir='emqx-ee'
  26. ;;
  27. *)
  28. echo "tag $REF is not supported"
  29. exit 1
  30. ;;
  31. esac
  32. aws s3 cp --recursive s3://${{ secrets.AWS_S3_BUCKET }}/$s3dir/${{ github.ref_name }} packages
  33. cd packages
  34. DEFAULT_BEAM_PLATFORM='otp24.2.1-1'
  35. # all packages including full-name and default-name are uploaded to s3
  36. # but we only upload default-name packages (and elixir) as github artifacts
  37. # so we rename (overwrite) non-default packages before uploading
  38. while read -r fname; do
  39. default_fname=$(echo "$fname" | sed "s/-${DEFAULT_BEAM_PLATFORM}//g")
  40. echo "$fname -> $default_fname"
  41. mv -f "$fname" "$default_fname"
  42. done < <(find . -maxdepth 1 -type f | grep -E "emqx(-enterprise)?-5\.[0-9]+\.[0-9]+.*-${DEFAULT_BEAM_PLATFORM}" | grep -v elixir)
  43. - uses: alexellis/upload-assets@0.2.2
  44. env:
  45. GITHUB_TOKEN: ${{ github.token }}
  46. with:
  47. asset_paths: '["packages/*"]'
  48. - name: update to emqx.io
  49. if: github.event_name == 'release'
  50. run: |
  51. set -e -x -u
  52. curl -w %{http_code} \
  53. --insecure \
  54. -H "Content-Type: application/json" \
  55. -H "token: ${{ secrets.EMQX_IO_TOKEN }}" \
  56. -X POST \
  57. -d "{\"repo\":\"emqx/emqx\", \"tag\": \"${{ github.ref_name }}\" }" \
  58. ${{ secrets.EMQX_IO_RELEASE_API }}
  59. - uses: emqx/push-helm-action@v1
  60. if: github.event_name == 'release' && startsWith(github.ref_name, 'v')
  61. with:
  62. charts_dir: "${{ github.workspace }}/deploy/charts/emqx"
  63. version: ${{ github.ref_name }}
  64. aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
  65. aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  66. aws_region: "us-west-2"
  67. aws_bucket_name: "repos-emqx-io"
  68. - uses: emqx/push-helm-action@v1
  69. if: github.event_name == 'release' && startsWith(github.ref_name, 'e')
  70. with:
  71. charts_dir: "${{ github.workspace }}/deploy/charts/emqx-enterprise"
  72. version: ${{ github.ref_name }}
  73. aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
  74. aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  75. aws_region: "us-west-2"
  76. aws_bucket_name: "repos-emqx-io"
  77. - name: update homebrew packages
  78. if: github.event_name == 'release'
  79. run: |
  80. REF=${{ github.ref_name }}
  81. case "$REF" in
  82. v*)
  83. BOOL_FLAG_NAME="emqx_ce"
  84. ;;
  85. e*)
  86. echo "Not updating homebrew for enterprise eidition"
  87. exit 0
  88. ;;
  89. esac
  90. if [ -z $(echo $version | grep -oE "(alpha|beta|rc)\.[0-9]") ]; then
  91. curl --silent --show-error \
  92. -H "Authorization: token ${{ secrets.CI_GIT_TOKEN }}" \
  93. -H "Accept: application/vnd.github.v3+json" \
  94. -X POST \
  95. -d "{\"ref\":\"v1.0.4\",\"inputs\":{\"version\": \"${{ github.ref_name }}\"}}" \
  96. "https://api.github.com/repos/emqx/emqx-ci-helper/actions/workflows/update_emqx_homebrew.yaml/dispatches"
  97. fi