Merge pull request #426 from wallarm/NODE-5400 #62
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish Helm | |
on: | |
push: | |
tags: | |
- '[0-9]+.[0-9]+.[0-9]+\+upstream*' | |
- '[0-9]+.[0-9]+.[0-9]+-rc*' | |
permissions: | |
contents: read | |
jobs: | |
release: | |
runs-on: self-hosted-amd64-1cpu | |
outputs: | |
chart_version: ${{ steps.check_release.outputs.tag }} | |
release_type: ${{ steps.check_release.outputs.type }} | |
steps: | |
- name: Import secrets | |
uses: hashicorp/vault-action@d1720f055e0635fd932a1d2a48f87a666a57906c # v3.0.0 | |
id: secrets | |
with: | |
exportEnv: false | |
url: ${{ secrets.VAULT_URL }} | |
role: ${{ secrets.VAULT_ROLE }} | |
method: kubernetes | |
path: kubernetes-ci | |
secrets: | | |
kv-gitlab-ci/data/github/shared/github_token token ; | |
- name: Checkout | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 | |
- name: Check release type | |
id: check_release | |
run: | | |
TYPE="production" | |
TAG=$(echo ${GITHUB_REF#refs/*/} | sed 's/[+-].*$//g') | |
if [[ ${GITHUB_REF#refs/*/} =~ "rc" ]]; then | |
TYPE="release-candidate" | |
TAG=${GITHUB_REF#refs/*/} | |
fi | |
echo -e "Type: ${TYPE} \nTag: ${TAG}" | |
echo "type=${TYPE}" >> $GITHUB_OUTPUT | |
echo "tag=${TAG}" >> $GITHUB_OUTPUT | |
- name: Publish Helm chart | |
uses: stefanprodan/helm-gh-pages@0ad2bb377311d61ac04ad9eb6f252fb68e207260 | |
with: | |
token: ${{ steps.secrets.outputs.token }} | |
charts_dir: ./charts | |
charts_url: https://charts.wallarm.com | |
linting: off | |
repository: helm-charts | |
branch: main | |
target_dir: wallarm-ingress | |
index_dir: . | |
chart_version: ${{ steps.check_release.outputs.tag }} | |
update_version: | |
name: Update package version | |
if: needs.release.outputs.release_type == 'production' | |
runs-on: self-hosted-amd64-1cpu | |
needs: release | |
steps: | |
- name: Import secrets | |
uses: hashicorp/vault-action@d1720f055e0635fd932a1d2a48f87a666a57906c | |
id: secrets | |
with: | |
exportEnv: true | |
url: ${{ secrets.VAULT_URL }} | |
role: ${{ secrets.VAULT_ROLE }} | |
method: kubernetes | |
path: kubernetes-ci | |
secrets: | | |
kv-gitlab-ci/data/github/shared/versions-repo-creds token_secret | GITLAB_TOKEN ; | |
kv-gitlab-ci/data/github/shared/versions-repo-creds token_secret | GITLAB_TOKEN_NAME ; | |
kv-gitlab-ci/data/github/shared/versions-repo-creds host | GITLAB_HOST ; | |
kv-gitlab-ci/data/github/shared/versions-repo-creds repo | GITLAB_REPO ; | |
- name: Update package version | |
env: | |
COMPONENT_NAME: wallarm-ingress-controller | |
COMPONENT_VERSION: ${{ needs.release.outputs.chart_version }} | |
run: | | |
PR_BRANCH="update/${COMPONENT_NAME}/${COMPONENT_VERSION}" | |
COMMIT_MESSAGE="Bump ${COMPONENT_NAME} version to ${COMPONENT_VERSION}" | |
GITLAB_REPO_URL="https://${GITLAB_TOKEN_NAME}:${GITLAB_TOKEN}@${GITLAB_HOST}/${GITLAB_REPO}" | |
git clone ${GITLAB_REPO_URL} | |
cd packages_versions | |
git checkout -b ${PR_BRANCH} | |
git config --local user.name 'project_808_bot' | |
git config --local user.email 'project808_bot@noreply.${GITLAB_HOST}' | |
cd packages_versions | |
cat latest.json | jq -r '.body."'"$COMPONENT_NAME"'" += ["'"$COMPONENT_VERSION"'"]' > latest.new.json | |
mv latest.new.json latest.json | |
git add latest.json | |
git commit -m "${COMMIT_MESSAGE}" | |
git push ${GITLAB_REPO_URL} ${PR_BRANCH} | |
glab auth login --hostname ${GITLAB_HOST} --token ${GITLAB_TOKEN} | |
echo "Creating merge request ..." | |
glab mr create \ | |
--fill \ | |
--yes \ | |
--label ${COMPONENT_NAME} \ | |
--source-branch ${PR_BRANCH} \ | |
--repo https://${GITLAB_HOST}/${GITLAB_REPO} | |
echo "Approving merge request ..." | |
glab mr approve \ | |
${PR_BRANCH} \ | |
--repo https://${GITLAB_HOST}/${GITLAB_REPO} | |
# Sometimes merging is failed without delay | |
echo "Sleep ..." | |
sleep 20 | |
echo "Merging ..." | |
glab mr merge \ | |
${PR_BRANCH} \ | |
--yes \ | |
--remove-source-branch \ | |
--when-pipeline-succeeds=false \ | |
--repo https://${GITLAB_HOST}/${GITLAB_REPO} |