Определение задачи сборки (build job)
Сначала мы очистим наш существующий рабочий процесс (workflow), чтобы осталось сфокусированное задание build. Мы упростим стратегию матрицы из предыдущей лабораторной работы для большей ясности, вернувшись к одной версии, чтобы сосредоточиться на зависимостях заданий.
- На странице вашего репозитория GitHub для
github-actions-demo нажмите зеленую кнопку Code.
- Убедитесь, что выбрана вкладка HTTPS, и скопируйте URL. Он должен выглядеть как
https://github.com/your-username/github-actions-demo.git.
- Откройте терминал в среде LabEx. Путь по умолчанию —
~/project.
- Используйте команду
git clone для загрузки репозитория. Замените your-username на ваш фактический логин на GitHub.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
Пример вывода:
Cloning into 'github-actions-demo'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/X), done.
remote: Total X (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (X/X), done.
- Перейдите в клонированный репозиторий:
cd ~/project/github-actions-demo
-
Создайте новый файл рабочего процесса .github/workflows/job-dependencies.yml с помощью редактора WebIDE. Вы можете найти этот файл в проводнике файлов слева, в разделе project/github-actions-demo/.github/workflows/.
-
Начните с создания базовой структуры рабочего процесса. Добавьте имя рабочего процесса и триггер:
name: Job Dependencies
on: [push]
- Добавьте секцию заданий (
jobs) и определите задание сборки (build) с указанием раннера:
jobs:
build:
runs-on: ubuntu-latest
- Добавьте секцию шагов (
steps). Сначала добавьте шаг checkout для получения кода репозитория:
steps:
- uses: actions/checkout@v4
- Добавьте шаг настройки Node.js:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- Добавьте шаг для установки зависимостей:
- name: Install dependencies
run: npm install
- Добавьте шаг для запуска тестов:
- name: Run tests
run: npm test
- Добавьте шаг сборки, который создает директорию артефакта и файл:
- name: Build project
run: |
mkdir dist
echo "Build artifact created at $(date)" > dist/build.txt
- Наконец, добавьте шаг загрузки артефакта (
Upload artifact). Этот шаг имеет решающее значение, поскольку он сохраняет результат сборки, чтобы следующее задание могло его использовать:
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: dist-files
path: dist
Ваш полный файл теперь должен выглядеть следующим образом:
name: Job Dependencies
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
- name: Build project
run: |
mkdir dist
echo "Build artifact created at $(date)" > dist/build.txt
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: dist-files
path: dist
Объяснение
- Мы удалили стратегию
matrix для упрощения.
- Мы сохранили шаг
Upload build artifact. Это критически важно, так как эти файлы понадобятся следующему заданию!
Сохраните файл (Ctrl+S или Cmd+S) после внесения изменений.