From 8b1af9666947bc54f4c812458c9f1c09ec9a8265 Mon Sep 17 00:00:00 2001 From: martinRenou Date: Wed, 3 Jan 2024 11:25:32 +0100 Subject: [PATCH] Setup releaser --- .github/workflows/enforce-labels.yml | 11 +++++ .github/workflows/prep-release.yml | 43 ++++++++++++++++++++ .github/workflows/publish-release.yml | 58 +++++++++++++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 .github/workflows/enforce-labels.yml create mode 100644 .github/workflows/prep-release.yml create mode 100644 .github/workflows/publish-release.yml diff --git a/.github/workflows/enforce-labels.yml b/.github/workflows/enforce-labels.yml new file mode 100644 index 0000000..354a046 --- /dev/null +++ b/.github/workflows/enforce-labels.yml @@ -0,0 +1,11 @@ +name: Enforce PR label + +on: + pull_request: + types: [labeled, unlabeled, opened, edited, synchronize] +jobs: + enforce-label: + runs-on: ubuntu-latest + steps: + - name: enforce-triage-label + uses: jupyterlab/maintainer-tools/.github/actions/enforce-label@v1 diff --git a/.github/workflows/prep-release.yml b/.github/workflows/prep-release.yml new file mode 100644 index 0000000..45e77dc --- /dev/null +++ b/.github/workflows/prep-release.yml @@ -0,0 +1,43 @@ +name: 'Step 1: Prep Release' +on: + workflow_dispatch: + inputs: + version_spec: + description: 'New Version Specifier' + default: 'next' + required: false + branch: + description: 'The branch to target' + default: 'main' + required: false + post_version_spec: + description: 'Post Version Specifier' + required: false + since: + description: 'Use PRs with activity since this date or git reference' + required: false + since_last_stable: + description: 'Use PRs with activity since the last stable git tag' + required: false + type: boolean +jobs: + prep_release: + runs-on: ubuntu-latest + steps: + - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + + - name: Prep Release + id: prep-release + uses: jupyter-server/jupyter_releaser/.github/actions/prep-release@v2 + with: + token: ${{ secrets.ADMIN_GITHUB_TOKEN }} + version_spec: ${{ github.event.inputs.version_spec }} + post_version_spec: ${{ github.event.inputs.post_version_spec }} + target: ${{ github.event.inputs.target }} + branch: ${{ github.event.inputs.branch }} + since: ${{ github.event.inputs.since }} + since_last_stable: ${{ github.event.inputs.since_last_stable }} + + - name: '** Next Step **' + run: | + echo "Optional): Review Draft Release: ${{ steps.prep-release.outputs.release_url }}" diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 0000000..16417c8 --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,58 @@ +name: 'Step 2: Publish Release' +on: + workflow_dispatch: + inputs: + branch: + description: 'The target branch' + default: 'main' + required: false + release_url: + description: 'The URL of the draft GitHub release' + required: false + steps_to_skip: + description: 'Comma separated list of steps to skip' + required: false + +jobs: + publish_release: + runs-on: ubuntu-latest + steps: + - name: Install Conda environment with Micromamba + uses: mamba-org/provision-with-micromamba@main + with: + environment-name: ci-env + environment-file: ci_env.yml + channels: conda-forge + + - name: Populate Release + id: populate-release + uses: jupyter-server/jupyter_releaser/.github/actions/populate-release@v2 + with: + token: ${{ secrets.ADMIN_GITHUB_TOKEN }} + target: ${{ github.event.inputs.target }} + branch: ${{ github.event.inputs.branch }} + release_url: ${{ github.event.inputs.release_url }} + steps_to_skip: ${{ github.event.inputs.steps_to_skip }} + + - name: Finalize Release + id: finalize-release + env: + PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} + TWINE_USERNAME: __token__ + uses: jupyter-server/jupyter-releaser/.github/actions/finalize-release@v2 + with: + token: ${{ secrets.ADMIN_GITHUB_TOKEN }} + target: ${{ github.event.inputs.target }} + release_url: ${{ steps.populate-release.outputs.release_url }} + + - name: '** Next Step **' + if: ${{ success() }} + run: | + echo "Verify the final release" + echo ${{ steps.finalize-release.outputs.release_url }} + + - name: '** Failure Message **' + if: ${{ failure() }} + run: | + echo "Failed to Publish the Draft Release Url:" + echo ${{ steps.populate-release.outputs.release_url }}