diff --git a/.github/workflows/block-merge-eol.yml b/.github/workflows/block-merge-eol.yml new file mode 100644 index 00000000..8c7653ea --- /dev/null +++ b/.github/workflows/block-merge-eol.yml @@ -0,0 +1,37 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization + +name: Block merges for EOL + +on: pull_request + +permissions: + contents: read + +concurrency: + group: block-merge-eol-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + block-merges-eol: + name: Block merges for EOL branches + + # Only run on stableXX branches + if: startsWith( github.base_ref, 'stable') + runs-on: ubuntu-latest + + steps: + - name: Download updater config + run: curl https://raw.githubusercontent.com/nextcloud/updater_server/production/config/config.php --output config.php + + - name: Set server major version environment + run: | + # retrieve version number from branch reference + server_major=$(echo "${{ github.base_ref }}" | sed -En 's/stable//p') + echo "server_major=$server_major" >> $GITHUB_ENV + + - name: Checking if ${{ env.server_major }} is EOL + run: | + php -r 'echo json_encode(require_once "config.php");' | jq --arg version "${{ env.server_major }}" '.stable[$version]["100"].eol // .beta[$version]["100"].eol' | grep --silent -i 'false' diff --git a/.github/workflows/block-merge-freeze.yml b/.github/workflows/block-merge-freeze.yml new file mode 100644 index 00000000..cd29a4a1 --- /dev/null +++ b/.github/workflows/block-merge-freeze.yml @@ -0,0 +1,36 @@ +# This workflow is provided via the organization template repository +# +# https://github.com/nextcloud/.github +# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization + +name: Block merges during freezes + +on: + pull_request: + types: [opened, ready_for_review, reopened, synchronize] + +permissions: + contents: read + +concurrency: + group: block-merge-freeze-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + block-merges-during-freeze: + name: Block merges during freezes + + if: github.event.pull_request.draft == false + + runs-on: ubuntu-latest + + steps: + - name: Register server reference to fallback to master branch + run: | + server_ref="$(if [ "${{ github.base_ref }}" = "main" ]; then echo -n "master"; else echo -n "${{ github.base_ref }}"; fi)" + echo "server_ref=$server_ref" >> $GITHUB_ENV + - name: Download version.php from ${{ env.server_ref }} + run: curl https://raw.githubusercontent.com/nextcloud/server/${{ env.server_ref }}/version.php --output version.php + + - name: Run check + run: cat version.php | grep 'OC_VersionString' | grep -i -v 'RC'