Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 100 additions & 0 deletions .claude/skills/release-info/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
---
name: release-info
description: |
Display the current state of an Eclipse Che release across all phases.
Shows workflow status, artifact publication, branch creation, and PR status
for each component in the release process.
Triggers: "release info", "release status", "show release status",
"what's the status of release", "release-info 7.120.0"
version: 1.0.0
tools:
- Read
- Bash
---

# Eclipse Che Release Status

This skill displays comprehensive release status for all Eclipse Che components across all release phases.

## Usage

The user should provide a version number in the format `X.Y.Z` (e.g., 7.120.0).

**Examples**:
- `release-info 7.120.0`
- "Show release status for 7.120.0"
- "What's the status of release 7.75.0?"

## Execution

### Step 1: Extract and Validate Version

Extract the version from the user's input:
- Expected format: `MAJOR.MINOR.BUGFIX` (e.g., 7.120.0)
- Pattern: `\d+\.\d+\.\d+`
- If no version provided or invalid format, ask the user to provide one

### Step 2: Check Environment

Verify required environment variables are set:
- `CHE_BOT_GITHUB_TOKEN` - required
- `CHE_INCUBATOR_BOT_GITHUB_TOKEN` - optional (falls back to CHE_BOT_GITHUB_TOKEN)

If `CHE_BOT_GITHUB_TOKEN` is not set, check if `GITHUB_TOKEN` is available and use that:

```bash
if [[ -z "${CHE_BOT_GITHUB_TOKEN:-}" ]]; then
if [[ -n "${GITHUB_TOKEN:-}" ]]; then
export CHE_BOT_GITHUB_TOKEN="$GITHUB_TOKEN"
else
echo "Error: No GitHub token available."
echo "Set CHE_BOT_GITHUB_TOKEN or GITHUB_TOKEN environment variable."
fi
fi
```

### Step 3: Run release-info.sh

Execute the main script from the repository root:

```bash
cd /home/mkuznets/projects/claude/che-release
./scripts/release-info.sh <VERSION>
```

For debug output:
```bash
./scripts/release-info.sh <VERSION> --debug
```

### Step 4: Present Results

Display the script output directly to the user. The script produces formatted output with:
- Per-phase grouping with descriptions
- Per-project status (DONE / IN PROGRESS / FAILED / NOT STARTED)
- Detailed item status for workflows (currently disabled), branches, artifacts, and PRs
- Summary with counts and blocking issues

**Note**: Workflow status checking is currently disabled. The script will show workflows as "(checking disabled)" and determine project status based only on artifacts, branches, and PRs.

## Error Handling

- If the script is not found, report that the release-info scripts need to be set up
- If tokens are missing, guide the user on how to set them
- If the script fails, show the error output and suggest running with `--debug`

## Configuration

All project and phase configuration is in `che-release.yaml` at the repository root.
To add or modify projects, edit the `release-config` section in `che-release.yaml`.

The configuration defines:
- **Phases**: Release phases with descriptions and dependencies
- **Projects**: For each project - name, repo, workflow ID, artifacts, branches, and PRs
- **Artifacts**: Images (Quay.io), NPM packages, GitHub releases, websites, and website version verification
- `image`: Quay.io container image (checks if tag exists)
- `npmjs`: NPM package (checks if version is published)
- `github-release`: GitHub release (checks if tag exists)
- `website`: Website URL (checks if accessible via HTTP 200)
- `website-version`: Website with version verification (checks if HTML element with class "version-menu-toggle" contains the release version or branch format)
- **Pull Requests**: Expected PRs with title patterns, target branches, and completion requirements
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Global Owners
* @mkuznyetsov @SDawley
* @mkuznyetsov @SDawley @svor
16 changes: 16 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: CI

on: [push, pull_request]

jobs:
check:
runs-on: ubuntu-24.04
steps:
- name: Clone source code
uses: actions/checkout@v6
with:
fetch-depth: 1
persist-credentials: false
- name: Run ShellCheck
run: |
find . -type f -name "*.sh" | xargs shellcheck --external-sources
45 changes: 0 additions & 45 deletions .github/workflows/release-announce.yml

This file was deleted.

43 changes: 5 additions & 38 deletions .github/workflows/release-orchestrate-overall.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,14 @@ on:
description: 'The version that is going to be released. Should be in format 7.y.z'
required: true
default: ''
releaseParent:
description: 'If true, will also release Che Parent.'
required: false
default: 'false'
versionParent:
description: 'The version of Che Parent'
required: false
default: '7.15.0'
phases:
description: '
# Comma-separated phases to perform (see README.md).
# Default: 1,2,3
# Default: 1,2,3,4
# Omit phases that have successfully run.
'
required: true
default: '1,2,3'
default: '1,2,3,4'
jobs:
pre_job:
runs-on: ubuntu-22.04
Expand All @@ -44,15 +36,9 @@ jobs:
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Login to docker.io
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
registry: docker.io
credentials: false
- name: Login to quay.io
uses: docker/login-action@v2
with:
Expand All @@ -63,12 +49,6 @@ jobs:
uses: actions/setup-python@v3
with:
python-version: 3.9
- uses: actions/setup-java@v3
with:
java-version: '11'
java-package: jdk
architecture: x64
distribution: adopt
- name: Set up environment
run: |
python -m pip install --upgrade pip
Expand All @@ -81,34 +61,21 @@ jobs:
sudo apt-get update -y || true
# install more dependencies
sudo apt-get -y -q install wget curl bash git hub
java -version

# want git >=2.24, hub >=2
hub --version # hub reports git version too

# want >=5
bash --version

# do we need any of these?
# docker-ce x86_64 3:19.03.14-3.el7 docker-ce-stable 24 M
# gcc-c++ x86_64 4.8.5-44.el7 base 7.2 M
# nodejs x86_64 2:10.23.0-1nodesource nodesource 20 M
# yarn noarch 1.22.5-1 yarn 1.2 M
- name: Release
run: |
CHE_VERSION="${{ github.event.inputs.version }}"
echo "CHE_VERSION=${CHE_VERSION}"
PHASES="${{ github.event.inputs.phases }}"
PARENT_VERSION="${{ github.event.inputs.versionParent }}"
PARENT_RELEASE="${{ github.event.inputs.releaseParent }}"
export CHE_GITHUB_SSH_KEY=${{ secrets.CHE_GITHUB_SSH_KEY }}

export QUAY_ECLIPSE_CHE_USERNAME=${{ secrets.QUAY_USERNAME }}
export QUAY_ECLIPSE_CHE_PASSWORD=${{ secrets.QUAY_PASSWORD }}
git config --global user.name "Mykhailo Kuznietsov"
git config --global user.email "mkuznets@redhat.com"
export GITHUB_TOKEN=${{ secrets.CHE_BOT_GITHUB_TOKEN }}
export CHE_BOT_GITHUB_TOKEN=${{ secrets.CHE_BOT_GITHUB_TOKEN }}
export CHE_INCUBATOR_BOT_GITHUB_TOKEN=${{ secrets.CHE_INCUBATOR_BOT_GITHUB_TOKEN }}
set -e
./make-release.sh -v ${CHE_VERSION} -p ${PHASES} --parent-version ${PARENT_VERSION}
./scripts/make-release.sh -v ${CHE_VERSION} -p ${PHASES} --parent-version ${PARENT_VERSION}
Loading