diff --git a/.github/workflows/backport-5-0.yml b/.github/workflows/backport-5-0.yml deleted file mode 100644 index 3dffc7647..000000000 --- a/.github/workflows/backport-5-0.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Backport changes to version 5.0 -on: - push: - branches: - - main -jobs: - backport: - strategy: - matrix: - branch: ['v/5.0'] - runs-on: ubuntu-latest - steps: - - - name: checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up git config - run: | - git config user.name "GitHub Actions Bot" - git config user.email "<>" - - - name: Check PR for backport label - id: check_pr_labels - uses: shioyang/check-pr-labels-on-push-action@v1.0.12 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - labels: '["backport to 5.0"]' - - - name: See result - run: echo "${{ steps.check_pr_labels.outputs.result }}" - - - name: Checkout maintenance branch and cherry-pick - if: ${{ steps.check_pr_labels.outputs.result == 'true' }} - run: | - git fetch - git checkout ${{ matrix.branch }} - git cherry-pick -x --strategy=recursive -X theirs $GITHUB_SHA - git push diff --git a/.github/workflows/backport-5-1.yml b/.github/workflows/backport-5-1.yml deleted file mode 100644 index 5964dfc32..000000000 --- a/.github/workflows/backport-5-1.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Backport changes to latest maintenance branch -on: - push: - branches: - - main -jobs: - backport: - strategy: - matrix: - branch: ['v/5.1'] - runs-on: ubuntu-latest - steps: - - - name: checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up git config - run: | - git config user.name "GitHub Actions Bot" - git config user.email "<>" - - - name: Check PR for backport label - id: check_pr_labels - uses: shioyang/check-pr-labels-on-push-action@v1.0.12 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - labels: '["backport to 5.1"]' - - - name: See result - run: echo "${{ steps.check_pr_labels.outputs.result }}" - - - name: Checkout maintenance branch and cherry-pick - if: ${{ steps.check_pr_labels.outputs.result == 'true' }} - run: | - git fetch - git checkout ${{ matrix.branch }} - git cherry-pick -x --strategy=recursive -X theirs $GITHUB_SHA - git push diff --git a/.github/workflows/backport-5-2.yml b/.github/workflows/backport-5-2.yml deleted file mode 100644 index 47f5aed75..000000000 --- a/.github/workflows/backport-5-2.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Backport changes to the latest maintenance branch (v/5.2) -on: - push: - branches: - - main -jobs: - backport: - strategy: - matrix: - branch: ['v/5.2'] - runs-on: ubuntu-latest - steps: - - - name: checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up git config - run: | - git config user.name "GitHub Actions Bot" - git config user.email "<>" - - - name: Check PR for backport label - id: check_pr_labels - uses: shioyang/check-pr-labels-on-push-action@v1.0.12 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - labels: '["backport to 5.2"]' - - - name: See result - run: echo "${{ steps.check_pr_labels.outputs.result }}" - - - name: Checkout maintenance branch and cherry-pick - if: ${{ steps.check_pr_labels.outputs.result == 'true' }} - run: | - git fetch - git checkout ${{ matrix.branch }} - git cherry-pick -x --strategy=recursive -X theirs $GITHUB_SHA - git push diff --git a/.github/workflows/backport-5-3.yml b/.github/workflows/backport-5-3.yml deleted file mode 100644 index 8c281af0a..000000000 --- a/.github/workflows/backport-5-3.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Backport changes to the latest maintenance branch (v/5.3) -on: - push: - branches: - - main -jobs: - backport: - strategy: - matrix: - branch: ['v/5.3'] - runs-on: ubuntu-latest - steps: - - - name: checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up git config - run: | - git config user.name "GitHub Actions Bot" - git config user.email "<>" - - - name: Check PR for backport label - id: check_pr_labels - uses: shioyang/check-pr-labels-on-push-action@v1.0.12 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - labels: '["backport to 5.3"]' - - - name: See result - run: echo "${{ steps.check_pr_labels.outputs.result }}" - - - name: Checkout maintenance branch and cherry-pick - if: ${{ steps.check_pr_labels.outputs.result == 'true' }} - run: | - git fetch - git checkout ${{ matrix.branch }} - git cherry-pick -x --strategy=recursive -X theirs $GITHUB_SHA - git push diff --git a/.github/workflows/backport-5-4.yml b/.github/workflows/backport-5-4.yml deleted file mode 100644 index c6ff5061a..000000000 --- a/.github/workflows/backport-5-4.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Backport changes to the 5.4.0 branch -on: - push: - branches: - - main -jobs: - backport: - strategy: - matrix: - branch: ['v/5.4'] - runs-on: ubuntu-latest - steps: - - - name: checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up git config - run: | - git config user.name "GitHub Actions Bot" - git config user.email "<>" - - - name: Check PR for backport label - id: check_pr_labels - uses: shioyang/check-pr-labels-on-push-action@v1.0.12 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - labels: '["backport to 5.4"]' - - - name: See result - run: echo "${{ steps.check_pr_labels.outputs.result }}" - - - name: Checkout maintenance branch and cherry-pick - if: ${{ steps.check_pr_labels.outputs.result == 'true' }} - run: | - git fetch - git checkout ${{ matrix.branch }} - git cherry-pick -x --strategy=recursive -X theirs $GITHUB_SHA - git push diff --git a/.github/workflows/backport-5-5.yml b/.github/workflows/backport-5-5.yml deleted file mode 100644 index d3daef370..000000000 --- a/.github/workflows/backport-5-5.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Backport changes to the 5.5.0 branch -on: - push: - branches: - - main -jobs: - backport: - strategy: - matrix: - branch: ['v/5.5'] - runs-on: ubuntu-latest - steps: - - - name: checkout - uses: actions/checkout@v4.1.4 - with: - fetch-depth: 0 - - - name: Set up git config - run: | - git config user.name "GitHub Actions Bot" - git config user.email "<>" - - - name: Check PR for backport label - id: check_pr_labels - uses: shioyang/check-pr-labels-on-push-action@v1.0.12 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - labels: '["backport to 5.5"]' - - - name: See result - run: echo "${{ steps.check_pr_labels.outputs.result }}" - - - name: Checkout maintenance branch and cherry-pick - if: ${{ steps.check_pr_labels.outputs.result == 'true' }} - run: | - git fetch - git checkout ${{ matrix.branch }} - git cherry-pick -x --strategy=recursive -X theirs $GITHUB_SHA - git push diff --git a/.github/workflows/backport-workflow.yml b/.github/workflows/backport-workflow.yml new file mode 100644 index 000000000..737e494e9 --- /dev/null +++ b/.github/workflows/backport-workflow.yml @@ -0,0 +1,42 @@ +name: Backport changes + +on: + workflow_call: + inputs: + label-to-check-for: + required: true + type: string + target-branch: + required: true + type: string + +jobs: + backport: + runs-on: ubuntu-latest + + steps: + - name: Check PR for backport label + id: check_pr_labels + uses: shioyang/check-pr-labels-on-push-action@v1.0.12 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + labels: ${{ inputs.label-to-check-for }} + + - name: See result + if: runner.debug == '1' + run: echo "${{ steps.check_pr_labels.outputs.result }}" + + - name: Checkout repository + if: ${{ steps.check_pr_labels.outputs.result == 'true' }} + uses: actions/checkout@v4 + with: + # ensure the backport target branch is checked out, too + fetch-depth: 0 + + - if: ${{ steps.check_pr_labels.outputs.result == 'true' }} + uses: hazelcast/backport/.github/actions/backport@master + with: + GITHUB_TOKEN: ${{ github.token }} + TARGET_BRANCH: ${{ inputs.target-branch }} + REF_TO_BACKPORT: ${{ github.sha }} + BACKPORT_OPTIONS: --omit-labels diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 2ad888348..e23e0bdd1 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -1,40 +1,36 @@ -name: Backport changes to all maintenance branches +name: Backport changes to maintenance branches on: push: branches: - main jobs: - backport: - strategy: - matrix: - branch: ['v/5.0', 'v/5.1', 'v/5.2', 'v/5.3', 'v/5.4', 'v/5.5'] + get-maintenance-branches: runs-on: ubuntu-latest + outputs: + branches: "['5.3', '5.4', '5.5']" steps: - - - name: checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 + - run: exit 0 - - name: Set up git config - run: | - git config user.name "GitHub Actions Bot" - git config user.email "<>" - - - name: Check PR for backport label - id: check_pr_labels - uses: shioyang/check-pr-labels-on-push-action@v1.0.12 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - labels: '["backport to all versions"]' - - - name: See result - run: echo "${{ steps.check_pr_labels.outputs.result }}" + backport-to-all-branch: + needs: get-maintenance-branches + strategy: + fail-fast: false + matrix: + branch: ${{ fromJSON(needs.get-maintenance-branches.outputs.branches) }} + uses: ./.github/workflows/backport-workflow.yml + with: + label-to-check-for: '["backport to all versions"]' + target-branch: v/${{ matrix.branch }} + secrets: inherit - - name: Checkout maintenance branch and cherry-pick - if: ${{ steps.check_pr_labels.outputs.result == 'true' }} - run: | - git fetch - git checkout ${{ matrix.branch }} - git cherry-pick -x --strategy=recursive -X theirs $GITHUB_SHA - git push + backport-to-specified-branch: + needs: get-maintenance-branches + strategy: + fail-fast: false + matrix: + branch: ${{ fromJSON(needs.get-maintenance-branches.outputs.branches) }} + uses: ./.github/workflows/backport-workflow.yml + with: + label-to-check-for: '["backport to ${{ matrix.branch }}"]' + target-branch: v/${{ matrix.branch }} + secrets: inherit diff --git a/.github/workflows/forwardport.yml b/.github/workflows/forwardport.yml index 48f007ddc..619e0ae2f 100644 --- a/.github/workflows/forwardport.yml +++ b/.github/workflows/forwardport.yml @@ -5,36 +5,8 @@ on: - v/* jobs: forwardport: - strategy: - matrix: - branch: ['main'] - runs-on: ubuntu-latest - steps: - - - name: checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up git config - run: | - git config user.name "GitHub Actions Bot" - git config user.email "<>" - - - name: Check PR for forwardport label - id: check_pr_labels - uses: shioyang/check-pr-labels-on-push-action@v1.0.12 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - labels: '["forwardport to snapshot"]' - - - name: See result - run: echo "${{ steps.check_pr_labels.outputs.result }}" - - - name: Checkout branch and cherry-pick - if: ${{ steps.check_pr_labels.outputs.result == 'true' }} - run: | - git fetch - git checkout ${{ matrix.branch }} - git cherry-pick -x --strategy=recursive -X theirs $GITHUB_SHA - git push + uses: ./.github/workflows/backport-workflow.yml + with: + label: '["forwardport to snapshot"]' + target-branch: main + secrets: inherit