Няма описание

helm-release.yml 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. name: Helm Release
  2. on:
  3. release:
  4. types: [published]
  5. branches:
  6. - main
  7. - nightly
  8. push:
  9. branches:
  10. - nightly
  11. - main
  12. paths:
  13. - "functions/kubernetes/charts/**"
  14. workflow_dispatch:
  15. permissions:
  16. contents: read
  17. packages: write
  18. jobs:
  19. main:
  20. runs-on: ubuntu-latest
  21. steps:
  22. - name: Checkout
  23. uses: actions/checkout@v4
  24. - name: Setup Helm
  25. uses: azure/setup-helm@v4
  26. with:
  27. version: v3.18.4 # I run it locally so I know it works :b
  28. - name: Verify Helm
  29. run: helm version
  30. - name: Set versions
  31. run: |
  32. if [[ ${{ github.event_name }} == 'release' ]]; then
  33. TAG_NAME="${{ github.event.release.tag_name }}"
  34. # Remove the v prefix
  35. VERSION=${TAG_NAME#v}
  36. APP_VERSION="${VERSION}"
  37. CHART_VERSION="${VERSION}"
  38. else
  39. APP_VERSION="latest"
  40. CHART_VERSION="2.2.0"
  41. fi
  42. echo "APP_VERSION set to ${APP_VERSION}"
  43. echo "CHART_VERSION set to ${CHART_VERSION}. Validating..."
  44. # https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
  45. SEMVER_REGEX="^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$"
  46. if echo "${CHART_VERSION}" | grep -Pq "${SEMVER_REGEX}"; then
  47. echo "${CHART_VERSION} is a valid SemVer string";
  48. else
  49. echo "${CHART_VERSION} is an invalid SemVer string";
  50. exit 1;
  51. fi
  52. echo "CHART_VERSION=${CHART_VERSION}" >> "$GITHUB_ENV"
  53. echo "APP_VERSION=${APP_VERSION}" >> "$GITHUB_ENV"
  54. - name: Update helm dependencies
  55. run: helm dependency update ./functions/kubernetes/charts/shuffle
  56. - name: Package Helm chart
  57. run: helm package ./functions/kubernetes/charts/shuffle --version "${CHART_VERSION}" --app-version="${APP_VERSION}" --destination ./functions/kubernetes/charts
  58. - name: Login to OCI registry (ghcr.io)
  59. run: helm registry login ghcr.io --username ${{ github.actor }} --password ${{ secrets.GITHUB_TOKEN }}
  60. - name: Push helm chart
  61. run: helm push ./functions/kubernetes/charts/shuffle-*.tgz oci://ghcr.io/shuffle/charts