Skip to content

Inzhenerka/PumpRoom-Publish

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PumpRoom Publish

GitHub Action для загрузки заданий в LMS PumpRoom

Этот экшен упаковывает репозиторий с заданиями в ZIP-архив и загружает его на платформу PumpRoom.

Возможности

  • Создает ZIP-архив указанного каталога
  • Автоматически исключает каталоги .git и .github
  • Позволяет указать дополнительные файлы/каталоги для исключения
  • Проверяет репозиторий на типовые ошибки
  • Загружает архив в PumpRoom LMS
  • Предоставляет подробные сообщения об ошибках в случае неудачной загрузки

Использование

ID школы (realm) и API-ключ для публикации заданий вы найдете в разделе Интеграция (GitHub) из панели администратора PumpRoom Admin.

Чтобы использовать это действие в вашем рабочем процессе, добавьте следующий шаг:

steps:
  - name: Checkout
    uses: actions/checkout@v4

  - name: Upload to PumpRoom
    uses: inzhenerka/pumproom-publish@v1
    with:
      # Обязательно: ID школы из админки
      realm: 'your-realm-name'
      # Обязательно: Имя репозитория
      repo_name: ${{ github.event.repository.name }}
      # Обязательно: API-ключ для публикации из админки
      api_key: ${{ secrets.api_key }}
      # Каталог для архивации и загрузки (по умолчанию корень репозитория)
      root_dir: ''
      # Файлы и каталоги для исключения (разделенные запятыми)
      ignore: '.idea,.vscode'

Входные параметры

Параметр Описание Обязательный По умолчанию
realm ID школы из админки Да
repo_name Имя репозитория (без организации GitHub) Да
api_key API-ключ для публикации из админки Да
root_dir Каталог для архивации и загрузки Нет '' (корень репозитория)
ignore Файлы и каталоги для исключения (через запятую) Нет ''

Пример workflow

name: Upload to PumpRoom

on:
  push:
    branches: [main]

jobs:
  upload:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Upload to PumpRoom
        uses: inzhenerka/pumproom-publish@v1
        with:
          realm: 'inzh'
          repo_name: ${{ github.event.repository.name }}
          api_key: ${{ secrets.api_key }}
          ignore: '.idea,.vscode'

Примечание: Убедитесь, что вы сохранили свой API-ключ как секрет API_KEY в настройках вашего репозитория.

Настройка заданий

Файлы каждого задания должны располагаться в отдельной папке. Имя папки становится названием задания.

Каждое задание настраивается в едином корневом файле .inzhenerka.yml. Вот его простейший пример:

# yaml-language-server: $schema=https://pumproom-api.inzhenerka-cloud.com/inzhenerka_schema
pump_room:
  backend: judge0
  language: auto
  visible_name: Демо

  tasks:
    - name: code_task1

    - name: code_task2
      framework: python_multi

    - name: agent_task1
      backend: agent
      framework: helper

При работе с файлом IDE автоматически предложит описание полей и автоподстановку. Более подробная техническая документация предоставляется по запросу.

Разработка Action

Требуется NodeJS версии 20 и выше.

  1. Установка зависимостей
bun install
  1. Компиляция JavaScript для распространения
bun bundle
  1. Запуск автотестов
bun run test

Автоматическая публикация

Для автоматической публикации новой версии действия используйте следующие команды:

# Для выпуска новой минорной версии (1.0.0 -> 1.1.0)
bun publish:minor

# Для выпуска новой патч-версии (1.0.0 -> 1.0.1)
bun publish:patch

Скрипт публикации выполнит следующие действия:

  1. Убедится, что выбрана ветка main
  2. Проверит наличие незакоммиченных изменений (выдаст ошибку, если они есть)
  3. Выполнит сборку проекта с помощью bun all или npm run all
  4. Обновит версию в package.json и создаст тег
  5. Закоммитит результат сборки
  6. Отправит изменения и теги в удаленный репозиторий
  7. Объединит ветку main в v1 и отправит изменения

About

GitHub Action to upload tasks to PumpRoom LMS

Resources

Stars

Watchers

Forks

Packages

No packages published