diff --git a/.github/workflows/renovate-bump.yaml b/.github/workflows/renovate-bump.yaml new file mode 100644 index 00000000000..40483e0e4d8 --- /dev/null +++ b/.github/workflows/renovate-bump.yaml @@ -0,0 +1,84 @@ +name: "Renovate: Bump on Push" + +on: + push: + branches: + - 'renovate/**' + tags-ignore: + - '**' + +jobs: + renovate-bump: + name: Get changed Apps + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + name: Checkout + with: + fetch-depth: 0 + token: ${{ secrets.BOT_TOKEN }} + - uses: actions/checkout@v2 + name: Checkout + with: + fetch-depth: 0 + ref: master + path: master + - name: Set up Python + uses: actions/setup-python@v2 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pybump + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - uses: dorny/paths-filter@v2 + id: filter + with: + list-files: json + filters: | + changed: + - 'charts/stable/**' + - 'charts/incubator/**' + - 'charts/library/**' + - name: Filter filter-output + run: echo '${{ toJson(steps.filter.outputs) }}' > changes.json + - name: Bump + run: | + APPS=$(jq --raw-output '.changed_files | fromjson | .[] |= sub("(?(?(?[\/]?)[^\/]+\/)(?(?[\/]?)[^\/]+\/)(?(?[\/]?)[^\/]+)(?.+))"; "\(.third_directory)") | unique' changes.json | jq -r '.[]') + echo "changed apps: ${APPS[*]}" + for chart in ${APPS[*]} + do + if [[ "${chart}" == '.gitkee' ]]; then + echo "Skipping..." + return + elif test -f "./charts/stable/${chart}/Chart.yaml"; then + train="stable" + elif test -f "./charts/incubator/${chart}/Chart.yaml"; then + train="incubator" + elif test -f "./charts/library/${chart}/Chart.yaml"; then + train="library" + else + train="incubator" + fi + echo "Comparing versions for ${train}/${chart}" + master=$(pybump get --file ./master/charts/${train}/${chart}/Chart.yaml) + current=$(pybump get --file ./charts/${train}/${chart}/Chart.yaml) + echo "master version: ${master}" + echo "current version: ${current}" + if [[ "${master}" != "${current}" ]]; then + echo "Version does not have to be bumped" + else + echo "Bumping patch version for ${train}/${chart}" + pybump bump --file ./charts/${train}/${chart}/Chart.yaml --level patch + fi + done + - name: Cleanup + run: | + rm -rf changes.json + rm -rf master + - name: Commit and Push new version + run: | + git config user.name "TrueCharts-Bot" + git config user.email "bot@truecharts.org" + git add --all + git commit -sm "Commit bumped App Version" || exit 0 + git push