diff --git a/.github/workflows/clean-up.yml b/.github/workflows/clean-up.yml deleted file mode 100644 index b7587746cc..0000000000 --- a/.github/workflows/clean-up.yml +++ /dev/null @@ -1,69 +0,0 @@ -# Workflow that cleans up outdated and old workflows to prevent out of disk issues -name: Delete old workflow runs - -# This workflow is currently only triggered manually -on: - workflow_dispatch: - inputs: - days: - description: 'Days-worth of runs to keep for each workflow' - required: true - default: '30' - minimum_runs: - description: 'Minimum runs to keep for each workflow' - required: true - default: '10' - delete_workflow_pattern: - description: 'Name or filename of the workflow (if not set, all workflows are targeted)' - required: false - delete_workflow_by_state_pattern: - description: 'Filter workflows by state: active, deleted, disabled_fork, disabled_inactivity, disabled_manually' - required: true - default: "ALL" - type: choice - options: - - "ALL" - - active - - deleted - - disabled_inactivity - - disabled_manually - delete_run_by_conclusion_pattern: - description: 'Remove runs based on conclusion: action_required, cancelled, failure, skipped, success' - required: true - default: 'ALL' - type: choice - options: - - 'ALL' - - 'Unsuccessful: action_required,cancelled,failure,skipped' - - action_required - - cancelled - - failure - - skipped - - success - dry_run: - description: 'Logs simulated changes, no deletions are performed' - required: false - -jobs: - del_runs: - runs-on: blacksmith-4vcpu-ubuntu-2204 - permissions: - actions: write - contents: read - steps: - - name: Delete workflow runs - uses: Mattraks/delete-workflow-runs@v2 - with: - token: ${{ github.token }} - repository: ${{ github.repository }} - retain_days: ${{ github.event.inputs.days }} - keep_minimum_runs: ${{ github.event.inputs.minimum_runs }} - delete_workflow_pattern: ${{ github.event.inputs.delete_workflow_pattern }} - delete_workflow_by_state_pattern: ${{ github.event.inputs.delete_workflow_by_state_pattern }} - delete_run_by_conclusion_pattern: >- - ${{ - startsWith(github.event.inputs.delete_run_by_conclusion_pattern, 'Unsuccessful:') - && 'action_required,cancelled,failure,skipped' - || github.event.inputs.delete_run_by_conclusion_pattern - }} - dry_run: ${{ github.event.inputs.dry_run }} diff --git a/.github/workflows/dispatch-to-docs.yml b/.github/workflows/dispatch-to-docs.yml deleted file mode 100644 index 301cab5fa5..0000000000 --- a/.github/workflows/dispatch-to-docs.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Dispatch to docs repo - -on: - push: - branches: [main] - paths: - - 'docs/**' - workflow_dispatch: - -jobs: - dispatch: - runs-on: ubuntu-latest - strategy: - matrix: - repo: ["OpenHands/docs"] - steps: - - name: Push to docs repo - uses: peter-evans/repository-dispatch@v3 - with: - token: ${{ secrets.ALLHANDS_BOT_GITHUB_PAT }} - repository: ${{ matrix.repo }} - event-type: update - client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "module": "openhands", "branch": "main"}' diff --git a/.github/workflows/mdx-lint.yml b/.github/workflows/mdx-lint.yml deleted file mode 100644 index 34cd0b6a18..0000000000 --- a/.github/workflows/mdx-lint.yml +++ /dev/null @@ -1,70 +0,0 @@ -# Workflow that checks MDX format in docs/ folder -name: MDX Lint - -# Run on pushes to main and on pull requests that modify docs/ files -on: - push: - branches: - - main - paths: - - 'docs/**/*.mdx' - pull_request: - paths: - - 'docs/**/*.mdx' - -# If triggered by a PR, it will be in the same group. However, each commit on main will be in its own unique group -concurrency: - group: ${{ github.workflow }}-${{ (github.head_ref && github.ref) || github.run_id }} - cancel-in-progress: true - -jobs: - mdx-lint: - name: Lint MDX files - runs-on: blacksmith-4vcpu-ubuntu-2204 - steps: - - uses: actions/checkout@v4 - - - name: Install Node.js 22 - uses: useblacksmith/setup-node@v5 - with: - node-version: 22 - - - name: Install MDX dependencies - run: | - npm install @mdx-js/mdx@3 glob@10 - - - name: Validate MDX files - run: | - node -e " - const {compile} = require('@mdx-js/mdx'); - const fs = require('fs'); - const path = require('path'); - const glob = require('glob'); - - async function validateMDXFiles() { - const files = glob.sync('docs/**/*.mdx'); - console.log('Found', files.length, 'MDX files to validate'); - - let hasErrors = false; - - for (const file of files) { - try { - const content = fs.readFileSync(file, 'utf8'); - await compile(content); - console.log('āœ… MDX parsing successful for', file); - } catch (err) { - console.error('āŒ MDX parsing failed for', file, ':', err.message); - hasErrors = true; - } - } - - if (hasErrors) { - console.error('\\nāŒ Some MDX files have parsing errors. Please fix them before merging.'); - process.exit(1); - } else { - console.log('\\nāœ… All MDX files are valid!'); - } - } - - validateMDXFiles(); - " diff --git a/.github/workflows/run-eval.yml b/.github/workflows/run-eval.yml deleted file mode 100644 index d586a0b0a6..0000000000 --- a/.github/workflows/run-eval.yml +++ /dev/null @@ -1,135 +0,0 @@ -# Run evaluation on a PR, after releases, or manually -name: Run Eval - -# Runs when a PR is labeled with one of the "run-eval-" labels, after releases, or manually triggered -on: - pull_request: - types: [labeled] - release: - types: [published] - workflow_dispatch: - inputs: - branch: - description: 'Branch to evaluate' - required: true - default: 'main' - eval_instances: - description: 'Number of evaluation instances' - required: true - default: '50' - type: choice - options: - - '1' - - '2' - - '50' - - '100' - reason: - description: 'Reason for manual trigger' - required: false - default: '' - -env: - # Environment variable for the master GitHub issue number where all evaluation results will be commented - # This should be set to the issue number where you want all evaluation results to be posted - MASTER_EVAL_ISSUE_NUMBER: ${{ vars.MASTER_EVAL_ISSUE_NUMBER || '0' }} - -jobs: - trigger-job: - name: Trigger remote eval job - if: ${{ (github.event_name == 'pull_request' && (github.event.label.name == 'run-eval-1' || github.event.label.name == 'run-eval-2' || github.event.label.name == 'run-eval-50' || github.event.label.name == 'run-eval-100')) || github.event_name == 'release' || github.event_name == 'workflow_dispatch' }} - runs-on: blacksmith-4vcpu-ubuntu-2204 - - steps: - - name: Checkout branch - uses: actions/checkout@v4 - with: - ref: ${{ github.event_name == 'pull_request' && github.head_ref || (github.event_name == 'workflow_dispatch' && github.event.inputs.branch) || github.ref }} - - - name: Set evaluation parameters - id: eval_params - run: | - REPO_URL="https://github.com/${{ github.repository }}" - echo "Repository URL: $REPO_URL" - - # Determine branch based on trigger type - if [[ "${{ github.event_name }}" == "pull_request" ]]; then - EVAL_BRANCH="${{ github.head_ref }}" - echo "PR Branch: $EVAL_BRANCH" - elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then - EVAL_BRANCH="${{ github.event.inputs.branch }}" - echo "Manual Branch: $EVAL_BRANCH" - else - # For release events, use the tag name or main branch - EVAL_BRANCH="${{ github.ref_name }}" - echo "Release Branch/Tag: $EVAL_BRANCH" - fi - - # Determine evaluation instances based on trigger type - if [[ "${{ github.event_name }}" == "pull_request" ]]; then - if [[ "${{ github.event.label.name }}" == "run-eval-1" ]]; then - EVAL_INSTANCES="1" - elif [[ "${{ github.event.label.name }}" == "run-eval-2" ]]; then - EVAL_INSTANCES="2" - elif [[ "${{ github.event.label.name }}" == "run-eval-50" ]]; then - EVAL_INSTANCES="50" - elif [[ "${{ github.event.label.name }}" == "run-eval-100" ]]; then - EVAL_INSTANCES="100" - fi - elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then - EVAL_INSTANCES="${{ github.event.inputs.eval_instances }}" - else - # For release events, default to 50 instances - EVAL_INSTANCES="50" - fi - - echo "Evaluation instances: $EVAL_INSTANCES" - echo "repo_url=$REPO_URL" >> $GITHUB_OUTPUT - echo "eval_branch=$EVAL_BRANCH" >> $GITHUB_OUTPUT - echo "eval_instances=$EVAL_INSTANCES" >> $GITHUB_OUTPUT - - - name: Trigger remote job - run: | - # Determine PR number for the remote evaluation system - if [[ "${{ github.event_name }}" == "pull_request" ]]; then - PR_NUMBER="${{ github.event.pull_request.number }}" - else - # For non-PR triggers, use the master issue number as PR number - PR_NUMBER="${{ env.MASTER_EVAL_ISSUE_NUMBER }}" - fi - - curl -X POST \ - -H "Authorization: Bearer ${{ secrets.PAT_TOKEN }}" \ - -H "Accept: application/vnd.github+json" \ - -d "{\"ref\": \"main\", \"inputs\": {\"github-repo\": \"${{ steps.eval_params.outputs.repo_url }}\", \"github-branch\": \"${{ steps.eval_params.outputs.eval_branch }}\", \"pr-number\": \"${PR_NUMBER}\", \"eval-instances\": \"${{ steps.eval_params.outputs.eval_instances }}\"}}" \ - https://api.github.com/repos/OpenHands/evaluation/actions/workflows/create-branch.yml/dispatches - - # Send Slack message - if [[ "${{ github.event_name }}" == "pull_request" ]]; then - TRIGGER_URL="https://github.com/${{ github.repository }}/pull/${{ github.event.pull_request.number }}" - slack_text="PR $TRIGGER_URL has triggered evaluation on ${{ steps.eval_params.outputs.eval_instances }} instances..." - elif [[ "${{ github.event_name }}" == "release" ]]; then - TRIGGER_URL="https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}" - slack_text="Release $TRIGGER_URL has triggered evaluation on ${{ steps.eval_params.outputs.eval_instances }} instances..." - else - TRIGGER_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" - slack_text="Manual trigger (${{ github.event.inputs.reason || 'No reason provided' }}) has triggered evaluation on ${{ steps.eval_params.outputs.eval_instances }} instances for branch ${{ steps.eval_params.outputs.eval_branch }}..." - fi - - curl -X POST -H 'Content-type: application/json' --data '{"text":"'"$slack_text"'"}' \ - https://hooks.slack.com/services/${{ secrets.SLACK_TOKEN }} - - - name: Comment on issue/PR - uses: KeisukeYamashita/create-comment@v1 - with: - # For PR triggers, comment on the PR. For other triggers, comment on the master issue - number: ${{ github.event_name == 'pull_request' && github.event.pull_request.number || env.MASTER_EVAL_ISSUE_NUMBER }} - unique: false - comment: | - **Evaluation Triggered** - - **Trigger:** ${{ github.event_name == 'pull_request' && format('Pull Request #{0}', github.event.pull_request.number) || (github.event_name == 'release' && 'Release') || format('Manual Trigger: {0}', github.event.inputs.reason || 'No reason provided') }} - **Branch:** ${{ steps.eval_params.outputs.eval_branch }} - **Instances:** ${{ steps.eval_params.outputs.eval_instances }} - **Commit:** ${{ github.sha }} - - Running evaluation on the specified branch. Once eval is done, the results will be posted here.