Содержание

Картинки в HTML

Раздел: Сайтостроение / HTML /

Вёрстка сайта с нуля 2.0

Как научиться верстать сайты любой сложности и под любые устройства, даже если сейчас Вы не знаете, что такое HTML? Есть несколько способов, но самый доступный — это видеокурс. Подробнее…

Как всегда напоминаю, что есть замечательный видеокурс о вёрстке сайтов, в котором рассказывается в том числе о HTML и CSS:

>>> Вёрстка сайта с нуля 2.0 >>>

Ранее я рассказывал о том, как вставить картинку в HTML-страницу. Если кто пропустил, то см. эту статью здесь.

Сегодня продолжу рассказывать о картинках — рассмотрим ещё некоторые полезные атрибуты тега <img>, а также “фишки” использования рисунков.

Обтекание рисунка текстом в HTML

Если большие картинки обычно вставляются между абзацами, то маленькие чаще вставляются в текст, то есть текст обтекает картинку. Однако если в HTML не принять дополнительных мер, то картинка будет вставлена в текст просто как “буква”, и текст будет продолжаться после картинки одной строкой. Соответственно, если рисунок имеет размер более одной строки, то между строками получится большое пустое пространство, что не очень красиво:

Для выравнивания картинки в тексте в теге <img> можно применить атрибут align. Выравнивание как раз и позволяет добиться обтекания картинки текстом.

Стандарты HTML определяют пять значений для атрибута align:

  • left — выравнивание по левому краю
  • right — выравнивание по правому краю
  • top — выравнивание по верхнему краю
  • bottom — выравнивание по нижнему краю (это значение по умолчанию)
  • middle — выравнивание по середине

Если вы не используете атрибут

align, то выполняется выравнивание картинки по нижнему краю (как на рисунке выше).

Некоторые браузеры могут поддерживать и другие значения, но мы о них говорить не будем, поскольку это уже за рамками стандарта.

Итак, если вы хотите, чтобы текст обтекал картинку справа, то значение атрибута align должно быть равно left. Это немного странно, если думать о выравнивании текста. Но мы то выравниваем не текст, а картинку. Поэтому всё правильно — картинка будет слева, а текст — справа.

Пример выравнивания картинки по левому краю (обтекание текстом справа):

<img src="images-in-html.jpg" align="left">

А вот так примерно это будет выглядеть в браузере:

Рамка вокруг рисунка в HTML

Вообще этим пользуются редко, но иногда всё-же необходимо сделать рамку вокруг рисунка. Для этого можно использовать атрибут border. Делается это примерно так:

<img border="5" src="warning.

png">

Здесь мы обводим рисунок рамкой шириной 5 пикселей. По умолчанию цвет рамки будет чёрным. К сожалению, я не знаю простых способов изменить цвет рамки только средствами HTML, а в CSS и прочие прелести я погружаться не буду, так как мой рассказ про HTML.

Некоторые браузеры могут обводить рисунок рамкой по умолчанию, если атрибут border не указан. Поэтому, чтобы быть уверенным в том, что рамки вокруг рисунка не будет, лучше всегда использовать атрибут border с нулевым значением.

Атрибуты hspace и vspace

Итак, выравнивание рисунка в HTML теперь для вас сложности не представляет. Однако есть один неприятный вопрос — текст слишком близко прижат к картинке. Это не очень красиво смотрится.

Как же сделать отступы между текстом и картинкой? Для этого есть атрибуты hspace и vspace, которые задают отступы от горизонтального (справа и слева) и вертикального (сверху и снизу) края картинки соответственно. Пример:


<img src="images-in-html.jpg" align="left" 
          hspace="50" vspace="10">

В этом примере мы задаём отступы слева и справа по 50 пикселей, а сверху и снизу — по 10 пикселей. А в браузере это будет выглядеть примерно так:

Картинка в заголовке HTML

Иногда требуется вставить картинку в заголовок. Сделать это несложно. Например:

<h3><img src="warning.png" alt="!!!"> Очень важно</h3>

А выглядеть это будет примерно так:

И вообще картинки можно вставлять куда угодно — в таблицы, в списки и т.п.

О картинках много ещё чего можно рассказать. И я как-нибудь вернусь к этому вопросу. Но на сегодня всё.

А если хотите знать больше и прямо сейчас, то изучите курс о вёрстке сайтов.


Как создать свой сайт

Очень небольшая книга, которую можно прочитать буквально за 15 минут. Но эти 15 минут дадут вам представление о том, как создаются современные сайты… Подробнее…

Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python; C# и др. Разработка (доработка) ПО ПЛК (предпочтение — ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее…

Как вставить картинку напротив текста в ворде

Содержание

  • Способы вставить текст в картинку в Word
  • Текстовое поле
  • Объект WordArt
  • Разметка изображения
  • Заполняем пробелы – расширяем горизонты!
  • Как скопировать картинку из Интернета
  • Вставка картинки в текст в Ворде
  • Картинка вставлена в вордовский текст некрасиво
  • Отделение картинки от текста в Ворде
  • Изменение размера картинки в Ворде
  • Обтекание картинки текстом в Ворде

  • Как вставить картинку сбоку от текста
  • Как вставить картинку в текст html
  • Как вставить один рисунок в другой

Если надо вставить картинку в html-документ, то задать обтекание ее текстом можно, например, с помощью атрибута align тега img. С минимально достаточным для нормального отображения картинки набором атрибутов этот тег можно записать так:

Здесь в единственном атрибуте src указано название файла, содержащего нужное изображение (image.png). Чтобы задать обтекание изображения текстом справа, добавьте атрибут align со значением left:

Если нужно, чтобы текст обтекал картинку слева, то значение left замените на right.

На ваш выбор есть 3 основных способа вставить текст в картинку в ворде. Самый простой – это использование объекта WordArt. Он позволяет быстро создать “плавающий” текстовый блок, который можно переместить в любое место документа MS Word.

Второй способ – через создание текстового поля. По умолчанию оно будет иметь рамку и белый фон, которые можно изменить или удалить.

Третий – это использовать параметры обтекания для картинки таким образом, чтобы изображение оказалось за текстом. Таким образом текст будет на картинке, а сама картинка станет фоном.

Способы вставить текст в картинку в Word

Текстовое поле

Тут мы поместим текстовый блок прямо на картинку, которую заранее вставили в документ MS Word. Для этого переходим: Вставка -> Текстовое поле -> Простая надпись .

Появится текстовый блок, который нужно настроить. Сначала изменим его позицию, чтобы текст оказался на картинке, а затем поменяем фон, цвет и размер.

1 Нажимаем на иконку параметров разметки и выбираем обтекание Перед текстом .

2 Теперь мы можем наш текстовый блок передвинуть на картинку. Наведите курсор на рамку для появления перекрестия, затем удерживая левую клавишу мыши переместите блок в нужное место.

Передвигать нужно за линию рамки, а не за кружки, т.к. они отвечают за размер, а не за перемещение.

4 Для изменения цвета фона и рамки – ставим курсор на текстовом блоке и переходим: Формат -> Заливка фигуры и Контур фигуры . Если хотите вовсе убрать фон текста и рамку, то при выборе цвета укажите Нет заливки и Нет контура .

5 Теперь выделяем наш текст, и в появившемся меню настраиваем размер, цвет и т.д. Если текст не помещается, то просто увеличьте размер блока, потянув за кружки.

6 Еще можно поиграться с текстовыми эффектами (тенями, формой и т.д.) в меню: Формат -> Текстовые эффекты . Сам текст нужно предварительно выделить.

В итоге у меня получился такой вариант.

Объект WordArt

Если вам быстро нужно вставить текст в картинку без рамки и фона, то этот способ вам подойдет больше.

1 Создаем объект: Вставка -> Добавить объект WordArt .

2 Здесь нужно выбрать готовый стиль.

3 Размещаем текст на картинке. При необходимости корректируем оформление текста.

Разметка изображения

В предыдущих 2-х вариантах мы помещали именно текст на картинку, а сейчас будем перемещать само изображение. Картинка и текст уже должны присутствовать в документе Word.

1 Кликаем по изображению, чтобы появилось меню разметки.

2 В меню выбираем обтекание За текстом .

3 Теперь перетаскиваем картинку за текст, и меняем цвет шрифта, чтобы он был контрастным для фона изображения.

Заполняем пробелы – расширяем горизонты!
    CompGramotnost.ru » Текстовый редактор Word » Обтекание картинки в Ворде: как ее вставить в текст, изменить размер и расположить рядом с текстом

Современные тексты практически немыслимы без картинок. И если писать текст с помощью редактора Ворд (Word от Microsoft), то часто можно столкнуться с проблемой вставки в текст картинок. Иногда еще бывает нужно сделать обтекание картинки в Ворде, когда текст находится рядом с картинкой или расположен вокруг нее так, как будто обтекает ее.

Предположим, надо описать текстом (словами) картину известного художника Шишкина Ивана Ивановича «Утро в сосновом лесу», которую в просторечии называют «Три медведя». Как это сделать в Ворде?

Допустим, мы уже сделали описание картины в редакторе Microsoft Word, и теперь хотим в текст нашего описания поместить саму картину, то есть перенести картинку в текст. Начнем вставлять картину (рисунок) сразу после заголовка описания – это место для вставки рисунка мы выделяем с помощью мышки, то есть ставим туда курсор мышки (1 на рис. 1):

Рис. 1 (кликните по рисунку для увеличения). Выделяем в тексте место под заголовком статьи для вставки туда картинки (рисунка) из файла

Как скопировать картинку из Интернета

В редакторе Word предусмотрена возможность вставлять рисунки из готовых файлов. Предположим, что вставляемый рисунок – картина Шишкина И.И. «Утро в сосновом лесу» находится на компьютере, на рабочем столе в папке «Картина Шишкина». Как там эта картина, этот рисунок оказались? Ну, например, мы нашли эту картину, этот рисунок в Интернете и сохранили его себе на компьютер, на рабочий стол.

Чтобы сохранить картинку из интернета на свой компьютер (свое устройство):

  • Можно по картинке, найденной в интернете, кликнуть левой кнопкой мыши, чтобы она открылась в полном размере. Ничего страшного, если при этом картинка не меняет размер.
  • Теперь, оставив курсор мышки на рисунке, надо нажать на ПКМ (правую кнопку мыши).
  • Появится меню, в котором надо кликнуть опцию «Сохранить изображение как» или «Сохранить картинку как».
  • Откроется окно «Сохранить как», в котором выбираем место, где хотим поместить картинку.
  • Остается нажать кнопку «Сохранить».

Вставляемые рисунки в текст могут быть самые разные:

  • рисунки (картинки) из Интернета,
  • либо рисунки, нарисованные нами с помощью различных редакторов и сохраненные на компьютере,
  • присланные картинки (рисунки) по электронной почте
  • и т.п.

Главное, чтобы перед вставкой рисунка в текст, этот рисунок был сохранен на компьютере в виде файла. И тогда мы сможем его вставить в текст.

Вставка картинки в текст в Ворде

Теперь, когда мы выделили в тексте то место, куда должен быть вставлена картинка (рисунок), переходим к процедуре вставки. Вставка рисунка в текст делается следующим образом:

  • мы должны перейти в меню «Вставка» (1 на рис. 2) и
  • кликнуть по иконке «Рисунок» (2 на рис. 2).

Рис. 2 (кликните по рисунку для увеличения). Переход к меню «Вставка» и клик по иконке «Рисунок»

Откроется окно «Вставка рисунка», в котором мы должны найти на компьютере рисунок, который нужно поместить в Ворд. В рассматриваемом примере рисунок хранится на Рабочем столе в папке «Картина Шишкина».

1 на рис. 3 – Находим эту папку,
2 – кликаем по ней левой кнопкой мышки для выделения,
3 на рис. 3 – после чего нажимаем на кнопку «Вставить».

Рис. 3 (кликните по рис. для увеличения). Поиск вставляемого рисунка (картинки) на компьютере в окне «Вставка рисунка»

Картинка вставлена в вордовский текст некрасиво

После всех манипуляций, описанных выше, мы видим, что рисунок (он же «картинка») вставлен в текст сразу после заголовка и прямо перед первым абзацем (рис. 4).

Скорее всего, нам не понравится то, что мы видим в получившемся тексте с картинкой. Текст первого абзаца начинается сразу после рисунка, причем этот текст идет от правого нижнего угла картинки, и буквально сцеплен с рисунком.

Почему так произошло? Потому что картинка в редакторе Word вставляется вместо одного символа текста, на место одного символа текста. И для Ворда этот рисунок является всего лишь одним единственным символом текста – так «воспринимает» Word картинку, что называется по умолчанию.

Если дальше ничего не предпринимать, а лишь пытаться редактировать текст, не трогая вставленную картинку, мы сможем немного облагородить полученный текст с рисунком.

Например, мы можем поставить курсор перед заглавной буквой «У», и затем раз 5-6 нажать на клавишу «Пробел». Между вставленной картинкой и началом абзаца появится некий промежуток, который выделен синим цветом для наглядности (1 на рис. 5).

Рис. 5 (кликните по рис. для увеличения). Отделение вставленной картинки от текста пробелами

Так, конечно, текст читается лучше, и рисунок вроде как отделяется от остального текста. Но все равно, ведь мы обычно видим в журналах, в книгах, в газетах картинки в тексте не в таком виде.

Нам обычно представляют рисунок отдельно от текста, либо текст как бы «обтекает» картинку, заполняя собой все свободное от картинки пространство на листе. А на свободном поле листа справа от рисунка мы видим только первую строку абзаца. Выше, на рисунках 4 и 5, справа от картинки мы видим пустоту. Так не делают…

Отделение картинки от текста в Ворде

Давайте попробуем для начала отделить рисунок от текста вообще. Для этого убираем все пробелы между картинкой буквой «У» в начале абзаца (то есть возвращаемся к виду, как показано на рис. 4).

Затем ставим курсор перед буквой «У» и нажимаем на клавишу «Enter» – текст абзаца начнется с новой строки, а рисунок останется на своем месте (рис. 6).

Рис. 6 (кликните по рис. для увеличения). Отделение вставленного рисунка от текста с помощью клавиши «Enter»

Что же, неплохо получилось, уже смотрится и читается значительно лучше. Правда, картинка расположена по-прежнему в левой части страницы, а справа от нее «зияющая пустота»!

Что делать? Можно оставить и так. А можно, например, поместить рисунок в центр страницы. Как это сделать? Нужно:

  • выделить строку, в которой находится картинка, как мы обычно выделяем текст в Ворде – мы увидим, как рисунок «посинел», как обычно синеет выделяемые в редакторе Word текст (1 на рис. 7),
  • а затем нажать на кнопку форматирования текста по центру (2 на рис. 7).

Рис. 7 (кликните по рис. для увеличения). Выделение строки с вставленной картинкой и последующее ее перемещение на середину строки (по центру)

И вот, случилось то, что мы хотели! Рисунок теперь размещен по центру страницы (рис. 8).

Рис. 8 (кликните по рис. для увеличения). Вставленная картинка размещена посредине страницы

Получается, что со вставленной картинкой можно (и даже нужно!) работать как с обычным текстом. И тогда рисунок будет «подчиняться» нашим желаниям, становясь на то место, куда мы его хотим «определить»! В данном случае картинка расположится посредине строки над первым абзацем текста.

То есть, обладая умением форматировать текст, мы можем применить наши знания и опыт для такого же форматирования рисунков. Уже неплохо, правда, же?! Например, можно выделить картинку, как мы обычно выделяем текст, зацепить картинку левой кнопкой мышки и перетащить картинку в любое место нашего текста.

Скриншот данного действия (выделить рисунок, зацепить и переместить в любое другое место текста) я не делаю. Можете попробовать это сделать самостоятельно, чтобы ощутить «свою власть» над картинкой. Не такой он страшный, этот вставленный рисунок, как его малюют! С картинкой в тексте можно делать все (или почти все), что мы умеем делать с текстом, с отдельными словами текста и даже с отдельными буквами и символами текста!

Изменение размера картинки в Ворде

На рис. 8 видно, что рисунок вставлен в текст как-то «не к месту», что ли. Возможно, это ощущение создается из-за маленького размера картинки. А что если рисунок увеличить в размере?

Как увеличить или уменьшить размер вставленной в текст картинки? Для этого нужно:

  • как обычно сначала выделить рисунок однократным кликом по ней левой кнопкой мышки – вокруг рисунка появится рамка с кружочками в углах и посредине каждой стороны, за которые можно рисунок «цеплять» и изменять его размеры,
  • зацепить вставленный в текст рисунок за любой его угол и потянуть наружу для увеличения размера картинки или внутрь для уменьшения размера картинки.

По мере изменения размера рисунка он будет как бы «наползать» на текст (рис. 9), но это не страшно, поскольку это лишь процесс растягивания или сжатия картинки, а не окончательный результат.

Рис. 9 (кликните по рис. для увеличения). Растягивание (увеличение размера) или сжатие (уменьшение размера) картинки, вставленной в текст

После того, как мы отпустим левую кнопку мышки, рисунок станет того размера, каким мы его сделали. Остальной текст будет отодвинут от увеличившейся картинки или придвинут к уменьшившейся картинке. И так можно многократно менять размер рисунка, пока он не станет таким, каким мы его хотим видеть. Например, на рис. 10 рисунок расположен на всю ширину текста на странице.

Рис. 10 (кликните по рис. для увеличения). Увеличение размера вставленной картинки (рисунка) в редакторе Microsoft Word

Обтекание картинки текстом в Ворде

Вышеперечисленные манипуляции с текстом и картинкой, вставленной в текст, не позволили нам заполнить текстом правую часть листа, то есть, справа от вставленного рисунка. Мы лишь смогли отделить текст от картинки, а картинку увеличили в размере, чтобы заполнить «пустоту».

Но далеко не всегда подобное форматирование делает текст с рисунками привлекательным, читабельным. Давайте посмотрим, как все-таки можно «соединить» картинку и текст воедино так, чтобы было и красиво, и лист был бы равномерно заполнен.

Предлагаю вернуться к состоянию, показанному на рис. 4, когда у нас был вставленный рисунок, и сразу после него начинался первый абзац текста. Затем нужно:

  • выделить рисунок кликом левой кнопки мышки по нему,
  • после чего, не сдвигая курсор мышки с картинки, кликнуть уже правой кнопкой мышки,
  • появится контекстное меню, которое показывает, что мы можем сделать с этим рисунком (а сделать мы можем много чего!)
  • выбираем из меню опцию «Обтекание текстом» (1 на рис. 11),
  • далее из появившегося меню вариантов обтекания картинки текстом выбираем «По контуру» (2 на рис. 11).

Рис. 11 (кликните по рис. для увеличения). Варианты обтекания текста вокруг картинки

Именно такой вариант обтекания текста («по контуру») обеспечит нам расположение текста на свободном поле листа справа от рисунка (рис. 12). Что и требовалось сделать!

Рис. 12 (кликните по рис. для увеличения). Обтекание картинки в Ворде – расположение текста на свободном поле листа справа от вставленного рисунка (картинки)

Однако, в меню вариантов обтекания текстом рисунка (рис. 11) мы видим и другие варианты. Можете попробовать их самостоятельно, чтобы наглядно посмотреть, что получается с текстом и картинкой.

Например, вариант обтекания «Перед текстом» позволят «закрыть» рисунком часть текста. Текст будет размещен как бы под картинкой, его не будет видно. А вариант обтекания «За текстом», наоборот, размещает текста поверх рисунка. Текст будет, как бы, написан поверх картинки. Ну, и так далее, для разных случаев жизни, для разных вариантов совместного форматирования текста и рисунков, для форматирования текстов с картинками.

Остается только писать тексты и сопровождать их рисунками. Остальное сделает за нас текстовый редактор Microsoft Word, или как его иногда называют «текстовый процессор». Не совсем «текстовый», раз может работать и с картинками, не правда ли?!

Как вставить картинку в html в шапку сайта

Шапка страницы

Основная сложность с резиновым макетом это обеспечить корректное отображение на разных разрешениях, от высокого до низкого. Поскольку мы ограничили ширину контента 760 пикселами, картинку в шапке стоит разместить так, чтобы более важная часть изображения вписывалась в этот размер. На рис. 6.3 показано, как это сделать. Тёмным цветом выделена центральная часть шириной 760px, буквой А обозначены одинаковые по ширине оставшиеся фрагменты.

Рис. 6.3. Ширина шапки

Само добавление картинки в шапке делается через фоновый рисунок, который необходимо выровнять по центру элемента <header> .

В идеале рисунок должен иметь большую ширину от 2000 пикселов, тогда практически при любом разрешении монитора рисунок будет показывать центральную часть, обрезая всё, что не помещается в окно. Но беда в том, что изначально картинка не настолько широкая, а рисовать бесконечно тянущиеся по бокам чёрные полоски не хочется. Один из вариантов решения это включить повторение фона по горизонтали. Те, у кого разрешение 1280 пикселов по ширине и меньше, увидят единственную картинку, а владельцы широких мониторов смогут полюбоваться сразу несколькими животными и одновременно заходящими солнцами. Здесь важно подредактировать рисунок так, чтобы он без стыков совмещался сам с собой по горизонтали (рис. 6.4). Градиент для наглядности спрятан.

Рис. 6.4. Совмещение изображения по горизонтали

На данном рисунке место стыка обозначено стрелкой и промежутком, чтобы стык можно было заметить. Если правильно отредактировать правую и левую часть фоновой картинки, то она будет повторяться по горизонтали без видимых стыков, как один сплошной рисунок. Остаётся слегка подправить стиль, заменив значение no-repeat (без повторения) на repeat-x (повторение по горизонтали).

На этом можно считать, что фоновый рисунок в шапке готов (рис. 6.5).

Рис. 6.5. Фоновая картинка для шапки

В формате PNG-24 файл с фоном размером 1325х405 пикселов занимает около 32 Кб, а в PNG-8 с 256-цветовой палитрой, где качество градиента несколько хуже — около 15 Кб. Можно разбить фон на две составные части — градиент и картинку и сохранить каждое изображение в своём формате, что должно привести к повышению качества отображения градиента. Впрочем, 32 Кб для столь большого изображения это немного и дополнительную оптимизацию кто-то посчитает «экономией на спичках». Тем не менее, альтернативный подход к созданию шапки сайта кому-то окажется полезным, а при желании вы можете его пропустить.

Оптимизация шапки

Поскольку градиент в шапке повторяется по горизонтали, его можно вырезать из макета и установить как фоновую картинку. На рис. 6.6 показан градиент высотой 405 пикселов, подготовленный для этой цели. Формат PNG-24 не вносит искажения в изображение, а градиенты хорошо сжимает (итоговый объем 402 байта), так что в этом случае однозначно следует использовать именно его. Рамка вокруг рисунка добавлена для наглядности.

Рис. 6.6. Градиентный рисунок (header-gradient.png)

Картинка с силуэтными животными делается на прозрачном фоне и высотой 198 пикселов, нет смысла делать её на всю высоту шапки, поскольку она занимает лишь часть. Фрагмент изображения показан на рис. 6.7. Шахматное поле означает прозрачность.

Рис. 6.7. Фоновая картинка с прозрачностью (header-animal.png)

Поскольку сохранение этой картинки идет в формате PNG-8, у которого только один уровень прозрачности, в отличие от 256 уровней формата PNG-24, важно обеспечить корректное наложение на градиентный фон. Для этого при сохранении в Photoshop-е надо указать цвет краёв (Matte) близкий к средней части градиента, где идёт наложение силуэта. Примерно это цвет #9de1f0. В этом случае не возникнет грязных контуров вокруг деревьев и животных, а картинка при наложении на градиент будет восприниматься как единое целое.

Два рисунка для фона шапки подготовлены, пишем код HTML.

И стиль для элемента <header> и слоя header-bg .

В итоге объем файлов оказался 12,5 Кб, что даже меньше ожидаемого.

Название сайта

Название написано на облаке с растушёванными краями, что должно создать трудности при наложении на градиент. Есть два способа, как их обойти.

  1. Использовать формат PNG-24 при сохранении прозрачности.
  2. Сохранить рисунок в формате GIF или PNG-8 с фрагментом градиента, а затем наложить рисунок на градиент так, чтобы совпадение было с точностью до пиксела.

Очевидно, что второй способ имеет ряд недостатков — изображение нельзя сдвинуть даже на пару пикселов, оно привязано к градиенту, и если его градиент изменить, придётся менять и картинку. Так что сохраняем заголовок в формате PNG-24. Код HTML останется прежним, а стили расширятся.

Выравнивание по центру делается через свойство text-align , добавляемое к родителю тега <img> , а сдвиг вниз через свойство top . Чтобы это свойство сработало, необходимо для картинки задать относительное позиционирование с помощью свойства position со значением relative .

На главной странице сайта картинка с названием выводится как обычно, на остальных страницах она служит ссылкой на главную страницу. Для этого достаточно слегка изменить код:

Значение / у атрибута href указывает на главную страницу и работает только на веб-сервере, но никак не локально.

Как добавить изображение в строку заголовка

Многие веб-страницы добавляют логотип иконки или изображения в строку заголовка. Логотип иконки также называется favicon.

Favicon (иконка быстрого доступа, иконка веб-страницы, URL иконка) — это файл, содержащий одну или несколько маленьких иконок, которые указывают определенную веб-страницу.

Favicon используется в верхнем левом углу страницы. Favicons привлекают внимание и могут стать отличным способом для активности пользователей.

Favicon стандартизирован в HTML 4.01. Стандартная разработка использует элемент link с атрибутом rel в разделе документа <head>, который указывает формат, название и расположение файла. Файл может находится в любом каталоге веб-сайта и иметь любой формат файла изображения (ico, png, jpeg, gif).

Картинки в HTML – шпаргалка для новичков

Прежде, чем ответить на вопрос « как вставить картинку в HTML? », следует отметить, что перегружать веб-страницы огромным количеством графического материала не стоит, поскольку это не только улучшит визуальное восприятие ресурса пользователем, но и увеличит время загрузки страницы.

При создании веб-сайтов чаще всего используют графические форматы PNG , GIF и JPEG , а для дизайнерских работ с изображениями — графический редактор Adobe Photoshop , обладающий богатыми возможностями для сжатия и изменения размера изображений без потери качества, что является невероятно важным для веб-разработки.

Как вставить изображение в HTML?

Для того чтобы вставить изображение на HTML-страницу, используется одиночный простой тег:

где xxx — адрес изображения. В том случае, если картинка находится в одной директории со страницей, тег будет выглядеть как:

Однако скоростной и стабильный интернет добрался ещё не во все уголки земного шара, и бывает так, что изображение на веб-сайте попросту не загружается. Для таких случаев существует понятие альтернативного текста.

Он показывается на месте картинки в момент его недоступности, загрузки или в режиме работы браузера « без картинок ». Добавляется он с помощью атрибута alt тега <img>.

Пример добавления альтернативного текста к графическому файлу:

Назначение размеров картинки в HTML

Для того чтобы изменить размеры отображения графического файла, используют теги height и width , где height — высота, а width — ширина, измеряемые в пикселях.

При использовании данных атрибутов браузер сначала выделяет место для графического контента, подготавливает общий макет страницы, отображает текст, после чего загружает саму картинку.

Рисунок помещается в прямоугольник с заданными размерами, а в том случае, если параметры меньше или больше исходных, картинка растягивается или сжимается.

Если атрибуты height и width не используются, браузер загружает изображение сразу, задерживая отображение текста и прочих элементов страницы.

Данные параметры можно указать как в пикселях (размер картинки постоянен и не зависит от разрешения экрана пользователя), так и в процентах (размер картинки зависит от разрешения экрана).

Следует помнить, что в тот момент, когда вы изменяете исходный размер изображения, необходимо сохранять его пропорции.

Для этого достаточно указать значение только одного из параметров ( ширины или высоты ), а значение второго браузер вычислит в автоматическом режиме.

Расположение картинки в HTML

Как и ко многим тегам HTML, к применим атрибут align , который выполняет выравнивание изображения:

Как правильно вставить картинку в письмо для email-рассылки

Инструкции

Чтобы письмо выглядело идеально.

Читайте наc в Telegram

Разбираемся, что происходит в мире рассылок и digital-маркетинга. Публикуем анонсы статей, обзоры, подборки, мнения экспертов.

Смотреть канал

Станьте email-рокером 🤘

Пройдите бесплатный курс и запустите свою первую рассылку

Подробнее

Они привлекают внимание. Задают внешний вид письма. Без них не показать товар лицом, не сделать инфографику, не удивить и не повеселить подписчиков новым мемом.

Поговорим о картинках в письмах. Кажется, здесь всё просто, но надо знать некоторые тонкости.

О чём поговорим в статье:

Общие требования к изображениям

Как вставить картинку в блочном редакторе UniSender

Как настроить картинки в блочном редакторе

Бывает, что я работаю на ноутбуке через мобильный интернет. Тогда я отключаю отображение картинок в почте, чтобы ускорить загрузку писем и тратить меньше трафика.

Сообщения на почте с отключенными картинками выглядят так:

Без фотографий смысл письма не понятен. Включаю картинки и вижу:

Прочитал это письмо и купил несколько игр со скидкой. Вывод: картинки рулят.

Но PlayStation могли продать и без картинок, если бы прописали атрибут alt. В статье я расскажу об этом и других основах работы с изображениями в редакторе UniSender.

Общие требования к изображениям

Размеры картинки для email-рассылки

Вставляйте картинку в том размере, в котором она должна отобразиться в письме. Да, ширину и длину можно менять через атрибуты HTML и стили CSS. Но если старенький Outlook пользователя их не поддерживает, картинки отобразятся в исконном виде. Фото размером 1500 на 1500 пикселей, которое уменьшили до размеров 100 на 100, займёт всю область просмотра.

Вывод: готовить изображение к вставке нужно заранее. Изменить ширину и длину можно в любом графическом редакторе. Я делаю это в простом Paint 3D.

Объём изображения и формат

Размер и расширения файлов. В редактор UniSender можно загрузить изображения до 500 Кбайт. Съедобные форматы: jpg, png и gif. С gif-анимациями нужно быть осторожным: их отображают не все почтовые сервисы. Например, старенький Outlook покажет только первый кадр анимации. Рекомендуем запустить тестовую рассылку на разные почтовики, чтобы проверить, как они отображают gif.

Создавайте красивые письма в UniSender

Удобный блочный редактор и 100+ адаптивных шаблонов. Бесплатно до 1500 писем в месяц.

Попробовать

Название. Только латиницей, без пробелов. Для разделения слов можно использовать нижнее подчеркивание, точку или заглавные буквы.

Название изображения будет добавлено ссылкой в HTML-код страницы. Кириллица и пробелы не поддерживаются кодировкой языка – браузер не поймёт, как отобразить такой элемент вёрстки.

Да:

EmailChief.png

Email_Chief.png

Нет:

Email шеф.png

Email Chief.png

Alt-текст и title

Alt – текст, который появится вместо незагруженной картинки. Title – текст, который увидит пользователь, если наведёт курсор на картинку.

Alt появляется, если отключить картинки в письме:

Title появляется, если навести курсором на картинку:

PlayStation в своей рассылке забыли прописать атрибут alt. Если бы прописали — письмо выглядело бы так:

Не ленитесь прописывать точные и понятные атрибуты alt. Учтите, что подписчики будут ориентироваться по ним, если в письме не отобразятся картинки.

Как вставить картинку в письмо в редакторе UniSender

Создать письмо можно в блочном редакторе или редакторе шаблонов. В первом вы делаете макет «с нуля», во втором — изменяете уже готовый дизайн.

Предположим, нам нужно сделать рассылку для проекта под названием «Email-шеф». Начинаем с выбора шаблона:

Чтобы поместить картинку в тело письма, выберите область изображения и нажмите «Настройки».

Перейдите во вкладку «Параметры» и выберите изображение.

Добавьте картинку со своего компьютера или дайте ссылку на неё из интернета. Изображение сохранится в менеджере загрузки. Чтобы не увеличивать вес письма, UniSender ссылается на картинку, которая загружена на сервер, а не вставляет её в сообщение.

Вот что получилось:

Если нужно добавить новую картинку, то перенесите блок «Изображение» или «Картинка с текстом» в макет.

Поколдуем над другими элементами письма и получим:

Настройки изображений

В меню «Настройки» можно не только загрузить новую картинку, но и изменить ее стиль.

Во вкладке «Параметры» можно вставить новую картинку, прописать альтернативный текст (атрибут alt), привязать к картинке ссылку и задать общую высоту блока.

Заключение

4 совета о том, как использовать картинки в письмах:

  1. Всегда прописывайте alt-текст. Если изображения не отобразятся, пользователь все равно поймет смысл письма. Для некоторых alt-текст станет маячком о том, что нужно включить отображение картинок.
  2. Не злоупотребляйте картинками. Если все они не отобразятся, то alt-текст не спасет. А письма, которые состоят только из картинок, могут не пройти через спам-фильтры почтовых служб.
  3. Не делайте текст картинкой. К такому приёму прибегают в исключительных случаях. Например, когда Gmail обрезает письма.
  4. Не начинайте письмо с картинки, которая займёт весь экран. Если она не отобразится, то пользователь скорее всего закроет письмо.

Картинки важны, но некоторые пользователи их специально отключают, чтобы экономить трафик. Тестируйте письма – оценивайте, как они отображаются без изображений. Если смысл сообщения понятен без картинок — все ОК, рассылку можно отправлять.

Обновлено 16 июня 2020

Другие материалы по теме

Поделиться

СВЕЖИЕ СТАТЬИ

Другие материалы из этой рубрики

Не пропускайте новые статьи

Подписывайтесь на соцсети

Делимся новостями и свежими статьями, рассказываем о новинках сервиса

Статьи почтой

Раз в неделю присылаем подборку свежих статей и новостей из блога. Пытаемся шутить, но получается не всегда

Оставляя свой email, я принимаю Политику конфиденциальности

Наш юрист будет ругаться, если вы не примете 🙁

Спасибо, ждите письмо.

Проверяйте почту — письмо придет в течение 5 минут (обычно мгновенно).

Как запустить email-маркетинг с нуля?

В бесплатном курсе «Rock-email» мы за 15 писем расскажем, как настроить email-маркетинг в компании. В конце каждого письма даем отбитые татуировки об email ⚡️

*Вместе с курсом вы будете получать рассылку блога Unisender

Оставляя свой email, я принимаю Политику конфиденциальности

Наш юрист будет ругаться, если вы не примете 🙁

Как вставить изображение в HTML.

Мы продолжаем изучение HTML, и в этом уроке пойдет речь о том, как вставить изображение в HTML документ. Для этого существует специальный тег, который называется <img>. Тег <img> это сокращение от английского image, что обозначает изображение. У этого тега НЕТ парного закрывающегося тега, тег <img> является одинарным тегом.

При создании любого сайта, для изображений создается отдельная папка, из которой потом картинка и выводятся. Поэтому давайте создадим эту папку. Заходим в ранее созданную общую папку HTML, в ней уже находится файл index.html, рядом создаем папку с название images. И так папку создали, теперь в нее скопируйте какую-то картинку, не большого размера формата jpg или png.

Если Вы проделали все что написано выше то тогда идем дальше. Возвращаемся к нашему редактору как выбрать редактор можно узнать тут, а в коде создадим заголовок потом создадим параграф, а между ними вставим ту самую картинку, что лежит в паке images.

HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www. w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Первая HTML страница</title>
</head>
<body>
    
    
    

Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст

</body> </html>

Одного тега <img> для результата мало, поэтому должен быть указан самый главный, основной атрибут src, сокращение от английского — source, что переводится как – источник. С помощью этого атрибута мы указываем адрес, где расположено наше изображение. В нашем же случае это images/Название картинки.jpg. Не которые зададут вопрос: почему путь к картинки задается с папки images, а не, например с HTML? – Путь к изображению записывается относительно нашего документа index.html, т.е. относительно главной страницы сайта или, как еще говорят, корня сайта.

Так же, в нашем теге <img> нужно указать высоту и ширину картинки, чтобы браузер точно знал какие размеры отводить под данное изображение. Если же не указывать, то браузер все отобразит правильно, но у него на это уйдет больше времени, так как браузер сначала загрузит картинку, а потом только определит ее размеры. Прежде чем указать размеры изображения нам их надо узнать самим. Как это делается? Нажимаем правый клик мыши на картинке и выбираем пункт свойства, в открывшемся окне выбираем вкладку Подробно. У Вас должен получиться результат, как показан ниже.

И так, размеры узнали теперь приступим к нашим атрибутам и что бы указать ширину используется атрибут width=»», для высоты атрибут height=»».

Также, является обязательным атрибут alt =»», так как: первое — без него Ваш код не пройдет валидацию по коду, а второе — если у кого-то в браузере картинки отключены или по какой-то причине картинка не загрузилась, то в место нее выведется альтернативный текст который и указывается в внутри атрибута alt =»», в примере выше это слово images.

Вот мы и рассмотрели основные четыре атрибута которые желательно всегда указывать для каждой картинки это источник картинки, ширина картинки, высота картинки и альтернативный текст.

Ниже кратко расскажу о других существующих атрибутах, они уже устарели и в HTML не используются, но нужно знать, что такое есть.

И первый такой атрибут это align=»». Если мы посмотрим на результат работы кода выше, то увидим, что картинка расположилась слева, а справа осталось пустое место. Иногда нужно чтобы там не было пустого места, а текст заполнил его. Для этого и используется атрибут выравнивания. Можно выровнять по левому краю — left и правому краю — right. Если атрибут указан align=«left», то картинка будет находиться с лева, а текст ее будет обтекать с правой стороны и наоборот, если указать align=«right».

Ели мы посмотрим на результат, то текст очень близко прилегает к изображению. Эти отступы увеличивается с помощью атрибутов, они, повторюсь, уже устарели и все это сейчас делается через CSS. Это атрибуты hspace=»» — отступ по горизонтали и vspace=»» — отступ по вертикали. В результате наш тег <img> с атрибутами получил такой вид:

HTML

Все значения, что отмечены в атрибутах считаются в пикселах — px. Вот так, с помощью HTML вставляется изображения в документ, рекомендую поиграться со значениями в атрибутах, чтобы лучше понять, как оно работает, а на этом все, жду в следующем уроке.

<<< Предыдущий материал

Следующий материал >>>


Просмотреть демо: Демо

Скачать исходник: Скачать

сложных изображений | Инициатива веб-доступности (WAI)

в учебнике по изображениям

Обзор

Сложные изображения содержат существенную информацию — больше, чем можно передать в короткой фразе или предложении. Обычно это:

  • графики и диаграммы, включая блок-схемы и организационные схемы;
  • диаграмм и иллюстраций, где текст страницы зависит от способности пользователя понять изображение;
  • карты, показывающие местоположения или другую информацию, такую ​​как погодные системы.

В этих случаях требуется альтернативный текст, состоящий из двух частей. Первая часть представляет собой краткое описание, позволяющее идентифицировать изображение и, при необходимости, указывать местонахождение подробного описания. Вторая часть — это подробное описание — текстовое представление основной информации, передаваемой изображением. В следующих примерах показаны различные подходы, которые можно использовать для предоставления таких кратких и длинных описаний.

Длинные описания

Бывают ситуации, когда композиция изображения важна и должна быть указана в подробном описании. Например, последовательность используемых цветов и относительная высота столбцов в гистограмме могут быть важной информацией о структуре диаграммы в дополнение к фактическим значениям и тенденциям, которые она отображает.

Сложные изображения могут быть трудны для понимания многими людьми, особенно людьми со слабым зрением, ограниченными способностями к обучению и ограниченным опытом в предметной области. Сделайте длинные описания доступными для всех, чтобы охватить более широкую аудиторию своим контентом. Например, покажите описание как часть основного контента. Также возможно уменьшить ненужную сложность ваших изображений и сделать их более понятными для всех.

Также рекомендуется ссылаться на более сложные изображения и обобщать их в сопроводительном тексте. Например, такая ссылка, как «Следующий график показывает, что количество посетителей было потеряно в первом квартале, но количество посетителей восстановилось во втором квартале», помогает указать на важную информацию, которую предназначено представить изображение.

Пример 1: Описание, содержащее структурированную информацию

В этом примере столбчатая диаграмма статистики посетителей веб-сайта имеет краткое описание «Гистограмма, показывающая ежемесячное и общее количество посетителей за первый квартал 2014 года для сайтов с 1 по 3», предоставленное через атрибут alt изображения. Подробное описание содержит подробную информацию, включая масштабы, значения, взаимосвязи и тенденции, представленные визуально. Например, в длинном описании могут указываться снижающиеся значения для сайта 1, постоянные значения для сайта 2 и возрастающие значения для сайта 3, которые закодированы в гистограмме. Подход longdesc, используемый в следующем примере, описан далее в этом разделе.

Пример

Описание изображения

Примечание

См. пример подробного описания, связанного с этим изображением.

Среди приведенных ниже подходов первый и четвертый делают информацию доступной для других программ, таких как веб-браузеры и поисковые системы.

Подход 1: Текстовая ссылка на длинное описание рядом с изображением

Этот подход предоставляет текстовую ссылку рядом с изображением, которая указывает на отдельную веб-страницу или раздел той же веб-страницы, содержащий подробное описание. Текст ссылки должен уточнять назначение и связывать его с изображением.

Код
 

<изображение источник = "диаграмма.png" alt="Гистограмма, показывающая ежемесячное и общее количество посетителей за первый квартал 2014 г. для сайтов с 1 по 3">
Посетители сайта Example.com с января по март 2014 г. текстовое описание гистограммы

Этот подход поддерживается всеми веб-браузерами и вспомогательными технологиями и делает длинные описания доступными для всех. Однако ссылка не связана с изображением семантическим образом.

Элементы HTML5

и
можно использовать для группировки изображений и семантических ссылок. Добавление role="group" к фигуре обеспечивает обратную совместимость с веб-браузерами, которые не поддерживают родную семантику элемента
.

Код
 
<изображение источник = "диаграмма.png" alt="Гистограмма, показывающая ежемесячное и общее количество посетителей за первый квартал 2014 г. для сайтов с 1 по 3">
Посетители сайта Example.com с января по март 2014 г. текстовое описание гистограммы

Подход 2: Описание расположения подробного описания в атрибуте alt

Если на той же веб-странице, что и изображение, размещено подробное описание, его местоположение можно описать с помощью атрибута alt изображения. Информация о местоположении должна быть четкой и точной, чтобы помочь пользователям найти контент.

Код
 

<изображение источник = "диаграмма.png" alt="Гистограмма, показывающая ежемесячное и общее количество посетителей за первый квартал 2014 г. для сайтов с 1 по 3. Описано в разделе "Посетители сайта, полный текст.">

[…]
Посетители сайта, полный текст
[…]

Подход 3: Структурное связывание изображения и прилегающего к нему длинного описания (HTML5)

Элемент HTML5

может использоваться для включения как изображения, так и его подробного описания. Подробное описание (представленное в виде заголовков, текста и таблицы) заключено в элемент
. Он явно связан с изображением с использованием role="group" в содержащем элементе
в веб-браузерах, которые не передают семантику <рисунок> элемент.

Код
 
Гистограмма, показывающая ежемесячное и общее количество посетителей за первый квартал 2014 г. для сайтов с 1 по 3, подробно описанных ниже.

Обзор

На диаграмме показаны посещения веб-сайта за первый квартал 2014 года…

Значения

<таблица> Посетители сайта Example.com с января по март 2014 г. <тр>…

Подход 4: Предоставление ссылки на подробное описание через longdesc Поддержка специальных возможностей: Longdesc , веб-браузеры и вспомогательные технологии

В Firefox длинные описания, связанные с помощью longdesc , доступны через «Просмотреть описание» в контекстном меню изображения. Существует официальное расширение Chrome, которое аналогичным образом добавляет доступ к длинному описанию. Safari не поддерживает longdesc . В других веб-браузерах longdesc в настоящее время доступен только пользователям программ чтения с экрана. В настоящее время мобильные платформы не поддерживают longdesc .

Ни один браузер не указывает наличие атрибута longdesc визуально, кроме как через контекстные меню изображения, как указано выше.

Атрибут longdesc может содержать URI отдельной веб-страницы, предоставляющей подробное описание изображения, или идентификатор фрагмента, относящийся к элементу на той же странице, которая содержит подробное описание.

Когда атрибут longdesc содержит URI для ссылки на другую веб-страницу с подробным описанием, рекомендуется также применить подход 1 (текстовая ссылка на подробное описание рядом с изображением). Этот метод является обходным путем для веб-браузеров и вспомогательных технологий, которые не полностью поддерживают атрибут longdesc .

Код
 Гистограмма, показывающая ежемесячное и общее количество посетителей за первый квартал 2014 года для сайтов с 1 по 3
Подробное описание
 

Когда атрибут longdesc содержит идентификатор фрагмента ( # , за которым следует id элемента на той же веб-странице — «хеш-ссылка»), он относится к элементу на той же веб-странице, который предоставляет длинное описание. В нем рассматривается тот же вариант использования, что и в примере 2, подход 1, хотя поддержка веб-браузерами и вспомогательными технологиями может различаться. Дополнительная ссылка (путем применения Подхода 2) не нужна, когда длинное описание находится в непосредственной близости от изображения.

Код
 Гистограмма, показывающая ежемесячное и общее количество посетителей за первый квартал 2014 года для сайтов с 1 по 3
[…]
<дел>
  […]

Пример 2: Описание, содержащее текстовую информацию

Атрибут WAI-ARIA aria-describedby может использоваться для ссылки на описание изображения, которое предоставляется в любом месте на той же веб-странице, аналогично подходу longdesc. Значение атрибута равно id элемента, предоставляющего подробное описание.

Важно! Элемент, на который ссылается aria-описанный , рассматривается как один непрерывный абзац текста. Программы чтения с экрана и другие вспомогательные технологии не имеют доступа к структурной информации, такой как заголовки и таблицы. Они будут читать или предоставлять текст любых содержащихся элементов без указания их структурных отношений и без соответствующих механизмов навигации. В результате этот подход работает только для длинных текстовых описаний, не требующих структурной информации, как в предыдущем примере.

В этом примере голова павлина описывается с помощью абзаца текста на веб-странице.

Пример

У самца макушка металлического синего цвета, перья на голове короткие и завитые. Веерообразный гребень на голове состоит из перьев с голыми черными стержнями и заканчивается розовато-зеленой паутиной. Белая полоса над глазом и белое пятно в форме полумесяца под глазом образованы голой белой кожей. Бока головы имеют переливающиеся зеленовато-голубые перья. На спине чешуйчатые бронзово-зеленые перья с черными и медными отметинами.

Код
 Голова самца павлина
[…]
<р>
  У самца макушка металлического синего цвета, перья на голове короткие и завитые. Веерообразный гребень на голове состоит из перьев с голыми черными стержнями и заканчивается розовато-зеленой паутиной. Белая полоса над глазом и белое пятно в форме полумесяца под глазом образованы голой белой кожей. Бока головы имеют переливающиеся зеленовато-голубые перья. На спине чешуйчатые бронзово-зеленые перья с черными и медными отметинами.

Помогите улучшить эту страницу

Пожалуйста, поделитесь своими идеями, предложениями или комментариями по электронной почте в общедоступном списке [email protected] или через GitHub.

Электронная почта Fork & Edit на GitHubNew GitHub Issue

Back to Top

Знакомство с измерением в ImageJ

Знакомство с измерением в ImageJ

Перейти к основному содержаниюПерейти к навигации

На этой странице

Знакомство с измерением в ImageJ

  • Пространственные измерения
  • Измерение плотности
  • Пространственная калибровка (Шкала настройки)

Выберите то, что вы хотите измерить (набор измерений)
Определение масштаба изображения
Установка масштаба с использованием существующей масштабной линейки
Установка масштаба с использованием известного расстояния
Установка масштаба с использованием разрешения изображения
Добавление масштабной линейки
Исследуйте изображение Масштаб и измерение
Ресурсы
Фильмы на этой странице

  • Как скачать фильмы
  • Версии Flash-видео
  • Версии iPod

к началу страницы

Знакомство с измерением в

ImageJ

В разделе Введение в ImageJ вы узнали, что цифровое изображение представляет собой прямоугольный массив чисел, отображаемый в виде строки чисел. по справочной таблице. Вы также узнали о трех измерениях изображения: ширине, высоте и битовой глубине. Сила обработки изображений заключается в ее способности проводить измерения в следующих измерениях:

Пространственные измерения Измерения расстояния, площади и объема. К ним относятся первые два измерения изображения, его ширина и высота.

Измерения плотности Измерения, включающие третье измерение, значения пикселей . Пиксельные значения могут представлять температуру, высоту над уровнем моря, соленость, плотность населения или практически любое явление, которое вы можете измерить.

Прежде чем вы сможете проводить значимые измерения, вам необходимо откалибровать изображение то есть «сообщить» программному обеспечению, что пиксель представляет в реальном мире с точки зрения размера или расстояния ( пространственная калибровка ), с точки зрения того, что означают значения пикселей ( калибровка плотности ), или оба. В этом разделе вы узнаете, как выполнять пространственную калибровку цифровых изображений.

  • Запустите ImageJ , дважды щелкнув его значок на рабочем столе или щелкнув его значок в доке (Mac) или на панели запуска (Win).
  • Выберите File > Open… , перейдите в папку или каталог Week 2 и откройте изображение lake_mead_2004_color.jpg , которое вы загрузили в разделе Intro to ImageJ.

Это изображение представляет собой снимок озера Мид, штат Невада, сделанный спутником Landsat в мае 2004 года.

Пространственная калибровка расстояния и площади в единицах, отличных от пикселей, называется пространственно калиброванное изображение .

к началу страницы

Выберите, что вы хотите измерить

ImageJ может выполнить ряд измерений для вас. Прежде чем вы начнете устанавливать весы и проводить измерения, вам необходимо определиться с вариантами измерений.

  1. Выберите Анализ > Установить измерения… .
  2. Откроется окно Задать измерения. Проверьте Площадь и Периметр (длина), чтобы собрать эти измерения. Затем нажмите ОК.


к началу страницы

Найдите масштаб изображения

Если вы измеряете расстояния или площади на цифровом изображении, ваши результаты будут выражены в пикселях и квадратных пикселях . («Подождите, — говорите вы, — разве все пиксели не квадратные?» На самом деле, нет. Но это тема для другого раза…) Если вы хотите измерять характеристики изображения в таких единицах, как метры или квадратные мили, вам нужно конвертировать пиксели в их эквивалентные единицы «реального мира». Вы можете сделать это самостоятельно с помощью калькулятора, или у вас может быть ImageJ сделает всю работу за вас. («Yesssssss!») Предоставление ImageJ информации, необходимой для преобразования пикселей в другие единицы измерения, называется установкой масштаба .

Чтобы задать масштаб в ImageJ , нужно знать, что такое масштаб . Вот несколько способов узнать масштаб изображения:

  • Масштабная линейка печатается на изображении.
  • На изображении есть известное расстояние, например расстояние между двумя ориентирами.
  • Имеется письменное заявление о масштабе, обычно в документации к изображению. В этом случае масштаб может также называться изображением с разрешением . Например, если в документации к изображению указано, что разрешение составляет 30 метров, то масштаб будет «1 пиксель = 30 метров».
  • Скопируйте масштаб из другого изображения того же масштаба, на котором есть масштабная линейка или известное расстояние.

к началу страницы

Установка масштаба с использованием существующей масштабной линейки

Кто-то был настолько любезен, что поместил масштабную линейку на это изображение озера Мид, поэтому мы будем использовать ее для установки масштаба.

  1. Используйте инструмент выбора прямой линии чтобы провести линию через масштабную линейку. Выберите Analyze > Set Scale… Откроется окно Set Scale. Отобразится расстояние, измеренное вами в пикселях. Введите 45 в качестве известного расстояния и км или километры в качестве единицы длины. Чтобы переделать линию, нажмите на инструмент со стрелкой, затем еще раз нажмите на инструмент выбора линии. Это эффективно сбрасывает инструмент.
  • Использование инструмента выбора прямой линии , щелкните на одном конце линейки масштаба, перетащите на другой конец линейки масштаба и щелкните еще раз. (Совет: если удерживать нажатой клавишу Shift при выделении с помощью этого инструмента, выделение будет строго горизонтальным.)

  • Выберите Анализ > Задать масштаб… .

  • Откроется окно «Установить масштаб». Отобразится расстояние, измеренное вами в пикселях. В данном случае мы получили 261 пиксель. Ваш пробег, например пикселей , будет варьироваться, но он должен быть близок к этому. Введите 45 в качестве известного расстояния и км или километры в качестве единицы длины. Для справки масштаб (в данном случае 5,8 пикселя на километр) отображается внизу окна. Затем нажмите ОК.

  • Чтобы проверить установленный масштаб, используйте инструмент выбора прямой линии , чтобы снова провести линию через линейку масштаба. Выберите Анализ > Измерить . Вы должны получить что-то очень близкое к 45 км в окне результатов. Если нет, сбросьте весы.

Покажи мне, как

Скрыть

  • Использование инструмента выбора прямой линии , щелкните на одном конце линейки масштаба, перетащите на другой конец линейки масштаба и щелкните еще раз. (Совет: если вы удерживаете клавишу Shift при выделении с помощью этого инструмента, выделение будет строго горизонтальным или вертикальным. )

  • Выберите Анализ > Измерить .

  • Откроется окно результатов. Вы должны получить что-то очень близкое к 45 км. Если нет, сбросьте весы.


Покажите мне видео о настройке и проверке весов

Скрыть

Для просмотра этого видео включите JavaScript и рассмотрите возможность обновления веб-браузера до поддерживает HTML5 видео


  • Измерьте расстояние между двумя небольшими островами на озере Мид.

Покажи мне какие острова

Скрыть

Эти маленькие острова.


Покажите мне результат

Скрыть

Расстояние между островами примерно 25,46 км. Ваше расстояние может немного отличаться, в зависимости от того, как именно вы установили масштаб и где вы нажимали на острова. При необходимости используйте инструменты масштабирования и панорамирования, чтобы приблизиться к островам.


Покажите мне видео об измерении расстояния между ориентирами

Скрыть

Для просмотра этого видео включите JavaScript и рассмотрите возможность обновления веб-браузера до поддерживает HTML5 видео


  • Попрактикуйтесь в измерении расстояний и площадей с помощью различных инструментов выбора на панели инструментов ImageJ . Маленькие красные треугольники на некоторых кнопках инструментов указывают на то, что доступны дополнительные инструменты выделения. Щелкните правой кнопкой мыши (Win) или щелкните, удерживая клавишу Control (Mac), эти кнопки, чтобы получить доступ к этим «скрытым» инструментам.

Покажите мне пример

Скрыть

Инструмент «Линия от руки» позволяет провести вдоль береговой линии озера.

  • Закройте изображение lake_mead_2004_color.jpg , когда закончите.

начало страницы

Установка масштаба с использованием известного расстояния

Некоторые изображения не имеют масштабных полос. Однако, если вы знаете расстояние между двумя ориентирами, которые хорошо видны на обоих изображениях, вы можете использовать это расстояние для задания масштаба. Хорошие ориентиры должны быть четкими, относительно небольшими, максимально удаленными друг от друга и очевидными. Вы можете использовать любые ориентиры, какие хотите, но, поскольку мы уже знаем расстояние, мы будем использовать два небольших острова, которые мы измерили в предыдущем разделе.

  1. Загрузите изображение ниже, щелкнув ссылку правой кнопкой мыши (Win) или удерживая клавишу Control (Mac) и сохранив связанный файл в каталоге или папке Week 2.
    lake_mead_2004.tif (TIFF, 2,9 МБ, 27 января 10)
  2. Выберите File > Open , перейдите в папку Week 2 и откройте изображение lake_mead_2004. tif .
    Это спутниковое изображение является увеличенной версией того, с которым вы только что работали. Он имеет более высокое разрешение, что означает, что он содержит больше пикселей, что позволяет нам видеть больше деталей.
  3. Используйте инструмент выбора прямой линии чтобы выбрать расстояние от одного маленького острова до другого.
  4. Выберите Анализ > Задать масштаб… .
  5. Введите 25,4 в качестве известного расстояния и км в качестве единицы длины. Сравните масштаб в пикселях на километр с масштабом меньшего изображения.
  6. Теперь, когда у вас есть масштаб на этом изображении, увеличьте масштаб одного из маленьких островов и измерьте его. Возможность сделать это измерение демонстрирует ценность изображений с высоким разрешением.
  7. Закройте изображение lake_mead_2004.tif .

начало страницы

Установка масштаба с использованием разрешения изображения

 

Часто вам придется узнать больше об изображении, чтобы вы могли установить масштаб, непосредственно введя разрешение изображения. Вы можете найти разрешение в файле ReadMe или в метаданных изображения . (Метаданные в общих чертах определяются как данные о данных ). Разрешение может быть указано прямо в названии файла, или вы даже можете узнать его по телефону у человека, предоставившего вам изображение. (В крайнем случае, конечно!)

  1. Щелкните миниатюру справа, чтобы открыть полноразмерную версию изображения lake_mead_250m.jpg в новом окне. Затем щелкните правой кнопкой мыши (Win) или щелкните, удерживая клавишу Control (Mac), полноразмерное изображение и выберите «Файл» > «Сохранить изображение как… » и сохраните его в каталоге или папке Week 2. Закройте окно изображения после того, как вы скачали его файл.
  2. Выберите File > Open , перейдите в папку Week 2 и откройте файл lake_mead_250m.jpg изображение.
  3. Выберите Анализ > Задать масштаб… . Введите известное разрешение. В данном случае разрешение указано в названии файла изображения 250м на пиксель. Установите масштаб на 1 пиксель, равный 250 метрам. Введите 1,0 для расстояния в пикселях, 250 для известного расстояния и метры для единицы длины. Заявленный масштаб составляет 0,004 пикселя на метр, что соответствует 4 пикселям на километр.
  4. Затем измерьте расстояние между теми же двумя островами. Сравните свой результат с результатом на первом изображении с масштабной линейкой.
  5. Ваши результаты должны быть примерно такими же, как и предыдущие измерения, 25400 м (25,4 км). Однако, поскольку разрешение этого изображения ниже, чем у предыдущего, трудно точно сказать, где находятся маленькие острова.


начало страницы

Добавить масштабную линейку

С установленным масштабом ImageJ теперь может печатать линейку масштаба на изображениях для вас.

  1. Выберите Анализ > Инструменты > Масштабная линейка… и введите настройки масштабной линейки. Масштабная линейка на изображении обновляется автоматически, чтобы показать вам результаты ваших изменений.
  2. Выберите «Файл» > «Сохранить как » и сохраните файл с добавленным набором масштабов и масштабными линейками в папку «Неделя 2» в формате TIFF . Это важно, потому что другие форматы изображений не сохраняют информацию о масштабе вместе с изображением. Запомните имя файла — вам нужно будет открыть его в следующем упражнении.

TIFF (Tagged Image File Format) — единственный формат файла, используемый ImageJ , который поддерживает пространственно калиброванный изображения. Другими словами, если изображение пространственно откалибровано, формат TIFF сохраняет масштаб вместе с изображением, поэтому изображение уже откалибровано каждый раз, когда вы его открываете. (JPG, GIF, PNG и другие форматы, с которыми вы знакомы, не сохраняют эту информацию в файле.)

Что такое теги в файле изображения с тегами?

Покажи мне, что это такое

Скрыть

Теги представляют собой информационные поля в файле, в дополнение к самим данным изображения, которые используются для хранения размеров изображения, битовой глубины, информации о калибровке, таблицы поиска, информации об авторских правах, широты и долготы и т. д. Это делает TIFF очень гибким форматом и одним из самых безопасных для сохранения всего содержания научных изображений.


к началу страницы

Изучение масштаба изображения и измерения

Посетите один или несколько источников данных изображений, перечисленных ниже, и найдите интересное изображение, особенно такое, которое может подойти для вашей учебной программы. Ищите изображение, на котором напечатана масштабная линейка, объект или ориентиры с известным расстоянием, или описательная информация, указывающая на масштаб или размер изображения. Загрузите изображение в папку «Неделя 2» и используйте методы, которые вы изучили здесь, чтобы установить масштаб для изображения. Если на изображении еще нет масштабной линейки, добавьте ее. Сохраните изображение с добавленной масштабной линейкой, если ее изначально не было, в папку «Неделя 2».

Gateway to Astronaut Photography
Галерея изображений Landsat
Галерея изображений MODIS
Коллекция изображений Земной обсерватории НАСА (масштабные линейки представлены только на предварительных изображениях — не в полном разрешении)
[ссылка https://neo. gsfc.nasa. gov/ ‘Наблюдения за Землей НАСА (NEO)’ new]
Пары изображений из Обсерватории Земли
Обсерватория Земли: мир перемен
Изображения EarthKam для исследования

 

Разместите выбранное изображение с добавленной масштабной линейкой, если ее еще нет , в своей группе обсуждения в формате JPEG с объяснением того, почему вы выбрали это изображение и что ваши ученики должны сделать с ним или как вы бы использовали его в своем классе.

Ключевой момент: если изображение не было откалибровано в пространстве, то, зная пространственное разрешение или расстояние между двумя ориентирами на изображении, можно задать масштаб.

 
начало страницы

 

Ресурсы

  • Загрузите и изучите больше изображений с пространственной калибровкой. Галерея изображений MODIS
  • Узнайте больше о работе с неразрушающими наложениями в ImageJ.
  • Оттачивайте свои навыки, выполняя исследование из сборника инструментов исследования Земли «Аннотирование изменений на спутниковых снимках».
  • Закрепите свое понимание масштаба и измерений с помощью исследования «Измерение расстояния и площади на спутниковых изображениях» из справочника по исследованию Земли.

начало страницы

фильмов на этой странице

Как скачивать фильмы

  1. Щелкните ссылку, чтобы перейти к списку библиотеки мультимедиа SERC для фильма. Запись откроется в новом окне.
  2. На странице медиатеки SERC щелкните правой кнопкой мыши (Win) или щелкните, удерживая клавишу Control (Mac), ссылку (под фильмом на страницах Flash-версии), чтобы загрузить файл фильма на жесткий диск.

начало страницы

Версии Flash-видео

Загрузите эту версию, чтобы играть на своем компьютере. Для просмотра файла вам потребуется соответствующий проигрыватель фильмов, например Flash Player, Real Player (Mac/Win) или Adobe Media Player.

Установить малый масштаб

Измерить ориентиры

начало страницы

Версии iPod

Загрузите эту версию, чтобы играть на iPod или iPhone.

Установить малый масштаб

Измерить ориентиры

« Предыдущая страница      Следующая страница »

Документация по Raspberry Pi — Начало работы

Чтобы начать работу с компьютером Raspberry Pi, вам потребуются следующие аксессуары:

Компьютерный монитор или телевизор. Большинство из них должны работать как дисплей для Raspberry Pi, но для достижения наилучших результатов вам следует использовать дисплей с входом HDMI. Вам также понадобится соответствующий кабель дисплея для подключения монитора к Raspberry Pi.

Компьютерная клавиатура и мышь

  • Любая стандартная USB-клавиатура и мышь будут работать с Raspberry Pi.

  • Беспроводные клавиатуры и мыши будут работать, если они уже сопряжены.

  • Параметры конфигурации раскладки клавиатуры см. в raspi-config.

Блок питания хорошего качества.

Мы рекомендуем официальный блок питания Raspberry Pi, который был специально разработан для постоянного обеспечения +5,1 В, несмотря на быстрые колебания потребляемого тока. Эти колебания спроса часто случаются, когда вы используете периферийные устройства с Raspberry Pi, и то, с чем другие источники питания, предназначенные для обеспечения постоянного тока для зарядки мобильных телефонов, обычно не справляются. К нему также подключен кабель micro USB, что означает, что вы случайно не используете кабель низкого качества, что может быть проблемой.

Наконец, вам понадобится SD-карта; мы рекомендуем карту micro SD объемом не менее 8 ГБ и использовать Raspberry Pi Imager для установки на нее операционной системы.

Подключение дисплея

Если вы не настраиваете Raspberry Pi для работы без монитора, для обычного использования вам потребуется подключить Raspberry Pi к дисплею: ​​компьютерному монитору или телевизору.

Ваш Raspberry Pi имеет порт HDMI, который можно подключить напрямую к монитору или телевизору с помощью кабеля HDMI. Это самое простое решение; некоторые современные мониторы и телевизоры имеют порты HDMI, некоторые нет, но есть и другие варианты.

Примечание

Raspberry Pi 4 имеет два разъема micro HDMI, для которых требуется качественный кабель micro HDMI, особенно при использовании мониторов 4K или телевизора. Raspberry Pi продает подходящий кабель.

Если вы используете Raspberry Pi с монитором со встроенными динамиками и подключаетесь к нему с помощью кабеля HDMI, вы также можете использовать его для вывода звука. Для мониторов с портом DVI можно использовать кабель HDMI-DVI или кабель HDMI с адаптером DVI. Для старых мониторов, поддерживающих только VGA, можно использовать адаптер HDMI-VGA.

Примечание

В отличие от HDMI стандарты DVI и VGA не поддерживают звук.

Наконец, некоторые модели Raspberry Pi имеют композитный выходной порт для подключения к аналоговым устройствам, но тип разъема зависит от модели. Оригинальный Raspberry Pi использовал разъем RCA, и стандартный композитный видеовывод RCA будет работать. Другие модели (Raspberry Pi B+ и более поздние версии) объединяют аудиовыход и композитный выход с одним и тем же разъемом 3,5 мм. Для этого требуется провод определенного типа: звук слева на наконечнике, звук справа на кольце 1, заземление на кольце 2 и видео на гильзе. Это то же самое, что и лиды, используемые в Zune и на устройствах Apple.

Дополнительную информацию о подключении к монитору можно найти в учебных ресурсах Raspberry Pi Foundation.

SD-карты для Raspberry Pi

В компьютерах Raspberry Pi используются карты micro SD, за исключением самых ранних моделей, в которых используются полноразмерные SD-карты.

Предупреждение

Из-за аппаратных ограничений Raspberry Pi Zero, 1 и 2 загрузочный раздел на SD-карте должен быть не более 256 ГБ, иначе устройство не загрузится. Более поздние модели Raspberry Pi 2 — с SoC BCM2837 — наряду с Raspberry Pi 3, 4, Zero 2 W и Raspberry Pi 400 не имеют этого ограничения. Это не влияет на ОС Raspberry Pi, которая всегда использует небольшой загрузочный раздел.
Рекомендуемая емкость

Мы рекомендуем использовать SD-карту емкостью 8 ГБ или больше с ОС Raspberry Pi. Если вы используете облегченную версию ОС Raspberry Pi, вы можете использовать карту на 4 ГБ. У других операционных систем другие требования: например, LibreELEC может работать с карты меньшего размера. Пожалуйста, свяжитесь с поставщиком операционной системы, чтобы узнать, какую емкость карты они рекомендуют.

Дополнительные элементы

Сетевой кабель (Ethernet) для подключения Raspberry Pi к локальной сети и Интернету.

Если вы не используете монитор HDMI с динамиками, вам также может понадобиться звуковое оборудование. Звук можно воспроизводить через динамики или наушники, подключив их к разъему AV (недоступно на Raspberry Pi 400). Однако динамики должны иметь собственное усиление, поскольку выход Raspberry Pi недостаточно мощный, чтобы управлять ими напрямую.

Устранение неполадок

Если у вас проблемы с SD-картой:

  • Убедитесь, что вы используете подлинную SD-карту. Лучший способ избежать подделки SD-карт — всегда покупать их у надежного поставщика.

  • Убедитесь, что вы используете блок питания хорошего качества: мы рекомендуем использовать официальный блок питания Raspberry Pi.

  • Кабель от блока питания к Raspberry Pi также может вызывать проблемы. Обычно это происходит из-за сопротивления проводов в кабеле питания USB; чтобы сэкономить деньги, в USB-кабеле содержится как можно меньше меди, что вызывает падение напряжения на кабеле.

  • Убедитесь, что вы правильно закрыли операционную систему, прежде чем выключать Raspberry Pi.

Вы можете получить помощь по настройке Raspberry Pi на наших форумах.

Ссылка на ключевое слово `.gitlab-ci.yml` | GitLab

  • Ключевые слова
  • Глобальные ключевые слова
    • по умолчанию
    • включает в себя
      • , включающие в себя: Local
      • Включите: File
      • Включите: Remote
      • Включите: Template
    • Stage
  • . 0009 рабочий процесс
    • рабочий процесс:правила
    • рабочий процесс:правила:переменные
  • Ключевые слова работы
    • after_script
    • allow_failure
      • allow_failure:exit_codes
    • артефакты
      • артефакты:пути
      • артефакты:исключить
      • артефакты:expire_in
      • artifacts:expose_as
      • artifacts:name
      • artifacts:public
      • artifacts:reports
      • artifacts:untracked
      • artifacts:when
    • before_script
    • кэш
      • кэш: пути
      • кэш: ключ
        • кэш: ключ: файлы
        • кэш: ключ: префикс
      • cache:untracked
      • cache:when
      • cache:policy
    • coverage
    • dast_configuration
    • dependencies
    • среда
      • среда:имя
      • среда:url
      • среда:on_stop
      • среда:действие

        2
      • Среда: Auto_Stop_in
      • Среда: Kubernetes
      • Среда: развертывание_TIER
      • Динамические среды
    • Eventends
  • Eventends
  • Extends
  • . image
    • image:name
    • image:entrypoint
    • image:pull_policy
  • наследовать
    • наследовать: по умолчанию
    • наследование: переменные
  • прерываемый
  • нужен
    • Потребности: Артефакты
    • Потребности: Проект
    • Потребности: Трубопровод: Раведите
    • Потребности: Опциональный
    • Потребности: Pipeline
    • : Pipline
    • . Только / кроме
      • Только : ссылки / кроме: ссылки
      • Только : переменные / except:variables
      • only:changes / except:changes
      • only:kubernetes / except:kubernetes
    • pages
    • параллельный
      • параллельный:матричный
    • выпуск
      • выпуск:tag_name
      • выпуск:tag_message
      • выпуск:имя
      • Выпуск: Описание
      • Выпуск: Ref
      • Выпуск: Milestones
      • Выпуск. повторная попытка
        • повторная попытка: когда
      • правила
        • правила: если
        • правила:изменения
          • правила:изменения:пути
          • rules:changes:compare_to
        • rules:exists
        • rules:allow_failure
        • rules:variables
      • script
      • секреты
        • секреты: хранилище
        • секреты: файл
      • сервисы
        • сервис:pull_policy
      • этап
        • этап: .pre
        • этап: .post
      • теги
      • 1 тайм-аут

        2 триггер
        • Триггер: включает
        • Триггер: Проект
        • Триггер: Стратегия
        • Триггер: вперед
      • переменные
        • переменные:описание
      • когда
    • Умеренные ключевые слова
      • глобально определенные Изображение , Сервисы , Кэш , До_SCRICT , After_Script

    .

    • Для быстрого ознакомления с GitLab CI/CD следуйте краткому руководству.
    • Набор примеров см. в GitLab CI/CD Examples.
    • Чтобы просмотреть большой файл .gitlab-ci.yml , используемый на предприятии, см. файл .gitlab-ci.yml для gitlab .

    Когда вы редактируете файл .gitlab-ci.yml , вы можете проверить его с помощью Инструмент CI Lint.

    Если вы редактируете содержимое этой страницы, следуйте инструкциям по документированию ключевых слов.

    Ключевые слова

    Конфигурация конвейера GitLab CI/CD включает:

    • Глобальные ключевые слова, которые настраивают поведение конвейера:

      Ключевое слово Описание
      по умолчанию Пользовательские значения по умолчанию для ключевых слов задания.
      include Импорт конфигурации из других файлов YAML.
      этапы Названия и порядок этапов конвейера.
      переменные Определите переменные CI/CD для всех заданий в конвейере.
      рабочий процесс Управление типами конвейера.
    • Задания, сконфигурированные с ключевыми словами задания:

      Ключевое слово Описание
      after_script Переопределить набор команд, выполняемых после задания.
      allow_failure Разрешить сбой задания. Неудачное задание не приводит к сбою конвейера.
      артефакты Список файлов и каталогов для присоединения к заданию в случае успеха.
      before_script Переопределить набор команд, которые выполняются перед заданием.
      кэш Список файлов, которые следует кэшировать между последующими запусками.
      покрытие Параметры покрытия кода для данного задания.
      dast_configuration Использовать конфигурацию из профилей DAST на уровне задания.
      зависимости Ограничьте передачу артефактов конкретному заданию, предоставив список заданий, из которых будут извлекаться артефакты.
      среда Имя среды, в которой развертывается задание.
      кроме Контроль, когда задания не создаются.
      расширяет Записи конфигурации, от которых наследуется это задание.
      образ Используйте образы Docker.
      наследовать Выберите, какие глобальные значения по умолчанию наследуют все задания.
      прерываемый Определяет, может ли задание быть отменено, если оно становится избыточным при новом запуске.
      потребности Выполнение работ до стадии заказа.
      только Управление созданием заданий.
      страницы Загрузите результат задания для использования с GitLab Pages.
      параллельный Сколько экземпляров задания должно выполняться параллельно.
      выпуск Указывает бегуну создать объект выпуска.
      группа_ресурсов Ограничение одновременности заданий.
      повторная попытка Когда и сколько раз задание может быть автоматически повторено в случае сбоя.
      правила Список условий для оценки и определения выбранных атрибутов задания, а также того, создано оно или нет.
      сценарий Сценарий оболочки, который выполняется бегуном.
      секреты Секреты CI/CD необходимы для работы.
      services Используйте образы служб Docker.
      этап Определяет этап задания.
      теги Список тегов, которые используются для выбора бегуна.
      время ожидания Определите пользовательское время ожидания на уровне задания, которое имеет приоритет над настройкой всего проекта.
      триггер Определяет триггер нисходящего конвейера.
      переменные Определение переменных задания на уровне задания.
      когда Когда запускать задание.

    Глобальные ключевые слова

    Некоторые ключевые слова не определены в задании. Эти ключевые слова управляют поведением конвейера. или импортировать дополнительную конфигурацию конвейера.

    по умолчанию

    Для некоторых ключевых слов можно установить глобальные значения по умолчанию. Задания, не определяющие один или несколько перечисленных ключевых слов используют значение, определенное в раздел по умолчанию .

    Тип ключевого слова : Глобальное ключевое слово.

    Possible inputs : These keywords can have custom defaults:

    • after_script
    • artifacts
    • before_script
    • cache
    • image
    • interruptible
    • retry
    • услуги
    • теги
    • тайм-аут

    Пример по умолчанию :

     по умолчанию:
      изображение: рубин: 3.0
    rspec:
      скрипт: пакет exec rspec
    рспец 2. 7:
      изображение: рубин: 2,7
      скрипт: пакет exec rspec
     

    В этом примере ruby:3.0 — это значение по умолчанию image для всех заданий в конвейере. Задание rspec 2.7 не использует значение по умолчанию, поскольку оно переопределяет значение по умолчанию с помощью специальное задание изображение раздел:

    Дополнительные сведения :

    • При создании конвейера каждое значение по умолчанию копируется во все задания, не имеющие это ключевое слово определено.
    • Если для задания уже настроено одно из ключевых слов, конфигурация в задании имеет приоритет и не заменяется значением по умолчанию.
    • Управление наследованием ключевых слов по умолчанию в заданиях с помощью inherit:default .

    включает

    Перемещено в GitLab Free в версии 11.4.

    Используйте include для включения внешних файлов YAML в вашу конфигурацию CI/CD. Вы можете разделить один длинный файл .gitlab-ci.yml на несколько файлов, чтобы улучшить читаемость, или уменьшить дублирование одной и той же конфигурации в нескольких местах.

    Вы также можете хранить файлы шаблонов в центральном репозитории и включать их в проекты.

    включают файлы :

    • Объединены с файлами .gitlab-ci.yml .
    • Всегда сначала оценивается, а затем объединяется с содержимым файла .gitlab-ci.yml , независимо от позиции включить ключевое слово .

    Можно вложить до 100 включений. В GitLab 14.9 и более поздних версиях один и тот же файл может быть включен несколько раз во вложенные включения, но дубликаты игнорируются.

    В GitLab 12.4 и более поздних версиях ограничение по времени для разрешения всех файлов составляет 30 секунд.

    Тип ключевого слова : Глобальное ключевое слово.

    Возможные входы : включает в себя подказки:

    • включает в себя: Local
    • Включите: Файл
    • Включите: Remote
    • . Включает: Template
  • 0
  • . Включает: Template
  • 0
  • . для настройки и переопределения включенных конфигураций CI/CD с помощью локального
  • . Вы можете переопределить включенную конфигурацию, указав то же имя задания или глобальное ключевое слово. в файле .gitlab-ci.yml . Две конфигурации объединяются вместе, и конфигурация в Файл .gitlab-ci.yml имеет приоритет над включенной конфигурацией.
  • Если вы повторно запустите:
    • Задание, включить файлы не загружаются снова. Все задания в конвейере используют конфигурацию извлекается при создании конвейера. Любые изменения исходного кода включают файлы не влияют на повторные запуски заданий.
    • Конвейер, включает файла, которые снова загружаются. Если они изменились после последней запуск конвейера, новый конвейер использует измененную конфигурацию.
  • Похожие темы :

    • Используйте переменные с , включая .
    • Используйте правила с включите .
    включает: местный

    Используйте include:local , чтобы включить файл, который находится в том же репозитории, что и файл .gitlab-ci.yml . Используйте include:local вместо символических ссылок.

    Тип ключевого слова : Глобальное ключевое слово.

    Возможные входные данные :

    Полный путь относительно корневого каталога ( / ):

    • Файл YAML должен иметь расширение .yml или .yaml .
    • Вы можете использовать подстановочные знаки * и ** в пути к файлу.
    • Вы можете использовать определенные переменные CI/CD.

    Пример включает: местный :

     включает:
      - локальный: '/templates/.gitlab-ci-template.yml'
     

    Вы также можете использовать более короткий синтаксис для определения пути:

     include: '. gitlab-ci-production.yml'
     

    Дополнительные сведения :

    • Файл .gitlab-ci.yml и локальный файл должны находиться в одной ветке.
    • Вы не можете включать локальные файлы через пути подмодулей Git.
    • Все вложенные включения выполняются в рамках одного и того же проекта, поэтому вы можете использовать локальные, проектные, удаленные или шаблонные включения.
    включает: файл

    Включая несколько файлов из одного проекта, представленного в GitLab 13.6. Флаг функции удален в GitLab 13.8.

    Чтобы включить файлы из другого частного проекта в тот же экземпляр GitLab, используйте include:file . Вы можете использовать include:file в сочетании с include:project только.

    Тип ключевого слова : Глобальное ключевое слово.

    Возможные входные данные :

    Полный путь относительно корневого каталога ( / ):

    • Файл YAML должен иметь расширение . yml или .yaml .
    • Вы можете использовать определенные переменные CI/CD.

    Пример include:file :

     include:
      - проект: 'моя группа/мой проект'
        файл: '/templates/.gitlab-ci-template.yml'
     

    Вы также можете указать ref . Если вы не укажете значение, ссылка по умолчанию будет равна HEAD проекта:

     включает:
      - проект: 'моя группа/мой проект'
        ссылка: основной
        файл: '/templates/.gitlab-ci-template.yml'
      - проект: 'моя группа/мой проект'
        ссылка: v1.0.0 # Тег Git
        файл: '/templates/.gitlab-ci-template.yml'
      - проект: 'моя группа/мой проект'
        ссылка: 787123b47f14b552955ca2786bc9542ae66fee5b # Git SHA
        файл: '/templates/.gitlab-ci-template.yml'
     

    Вы можете включить несколько файлов из одного проекта:

     включает:
      - проект: 'моя группа/мой проект'
        ссылка: основной
        файл:
          - '/templates/.builds.yml'
          - '/templates/. tests.yml'
     

    Дополнительные сведения :

    • Все вложенные включения выполняются в рамках целевого проекта. Можно использовать локальный (относительно целевого проекта), проект , удаленный или шаблон включает.
    • При запуске конвейера оценивается конфигурация файла .gitlab-ci.yml , включенная всеми методами. Конфигурация представляет собой снимок во времени и сохраняется в базе данных. GitLab не отражает никаких изменений в указанную конфигурацию файла .gitlab-ci.yml до запуска следующего конвейера.
    • При включении файла YAML из другого частного проекта пользователь, запускающий конвейер должен быть участником обоих проектов и иметь соответствующие разрешения для запуска конвейеров. А не найден или доступ запрещен. Ошибка может отображаться, если у пользователя нет доступа ни к одному из включенных файлов.
    включает: удаленный

    Используйте include:remote с полным URL-адресом, чтобы включить файл из другого места.

    Тип ключевого слова : Глобальное ключевое слово.

    Возможные входные данные :

    Общедоступный URL-адрес, доступный по запросу HTTP/HTTPS GET :

    • Аутентификация с удаленным URL-адресом не поддерживается.
    • Файл YAML должен иметь расширение .yml или .yaml .
    • Вы можете использовать определенные переменные CI/CD.

    Пример включает: удаленный :

     включает:
      - удаленный: 'https://gitlab.com/example-project/-/raw/main/.gitlab-ci.yml'
     

    Дополнительные сведения :

    • Все вложенные включения выполняются без контекста в качестве общедоступного пользователя, поэтому вы можете включать только общедоступные проекты или шаблоны.
    • Будьте осторожны при включении удаленного файла конфигурации CI/CD. Никаких конвейеров или уведомлений срабатывает при изменении внешних файлов конфигурации CI/CD. С точки зрения безопасности, это похоже на получение сторонней зависимости.
    включает: шаблон

    Используйте include:template для включения шаблонов .gitlab-ci.yml .

    Тип ключевого слова : Глобальное ключевое слово.

    Возможные входы :

    Шаблон CI/CD:

    • Шаблоны хранятся в lib/gitlab/ci/templates . Не все шаблоны предназначены для использования с include:template , поэтому проверьте шаблон комментарии перед использованием.
    • Вы можете использовать определенные переменные CI/CD.

    Пример include:template :

     # Файл получен из коллекции шаблонов GitLab
    включают:
      - шаблон: Auto-DevOps.gitlab-ci.yml
     

    Несколько include:template файлы:

     включает:
      - шаблон: Android-Fastlane.gitlab-ci.yml
      - шаблон: Auto-DevOps.gitlab-ci. yml
     

    Дополнительные сведения :

    • Все вложенные включения выполняются только с разрешения пользователя, поэтому можно использовать проект , удаленный или шаблон .

    этап

    Используйте этапы для определения этапов, содержащих группы заданий. Используйте этап в задании, чтобы настроить выполнение задания на определенном этапе.

    Если Стадии не определены в файле .gitlab-ci.yml .

  • .post
  • Порядок элементов на этапах определяет порядок выполнения заданий:

    • Задания на одном этапе выполняются параллельно.
    • Задания следующего этапа запускаются после успешного завершения заданий предыдущего этапа.

    Если конвейер содержит только задания на этапах .pre или .post , он не запускается. На другом этапе должна быть хотя бы одна другая работа. .до и .после этапов может использоваться в требуемой конфигурации конвейера для определения заданий соответствия, которые должны выполняться до или после заданий конвейера проекта.

    Тип ключевого слова : Глобальное ключевое слово.

    Пример ступеней :

     ступеней:
      - строить
      - тест
      - развертывать
     

    В этом примере:

    1. Все задания в сборке выполняются параллельно.
    2. Если все задания в сборке выполнены успешно, задания test выполняются параллельно.
    3. Если все задания в test завершатся успешно, задания deploy будут выполняться параллельно.
    4. Если все задания в развертывании выполнены успешно, конвейер помечается как пройденный .

    В случае сбоя какого-либо задания конвейер помечается как сбой , а задания на более поздних этапах не выполняются. Начало. Задания на текущем этапе не останавливаются и продолжают выполняться.

    Дополнительные сведения :

    • Если в задании не указан этап , заданию назначается этап test .
    • Если этап определен, но ни одно задание не использует его, этап не отображается в конвейере, которые могут помочь конфигурациям конвейера соответствия:
      • Этапы можно определить в конфигурации соответствия, но они остаются скрытыми, если не используются.
      • Определенные этапы становятся видимыми, когда разработчики используют их в определениях заданий.

    Связанные темы :

    • Чтобы запустить задание раньше и игнорировать порядок этапов, используйте ключевое слово need .

    рабочий процесс

    Представлено в GitLab 12.5

    Используйте рабочий процесс для управления поведением конвейера.

    Связанные темы :

    • рабочий процесс: правила примеры
    • Переключение между ответвлениями конвейеров и конвейерами мерж-реквестов
    рабочий процесс:правила

    Ключевое слово rules в рабочем процессе аналогично правилам , определенным в заданиях, но контролирует, будет ли создан весь конвейер.

    Если ни одно из правил не оценивается как истинное, конвейер не запускается.

    Возможные входные данные : Вы можете использовать некоторые из тех же ключевых слов, что и правила уровня задания :

    • правила: если .
    • правила: изменения .
    • правила: существует .
    • вместо может быть только всегда или никогда при использовании с рабочим процессом .
    • переменных .

    Пример рабочего процесса : правила :

     рабочего процесса:
      правила:
        - если: $CI_COMMIT_TITLE =~ /-черновик$/
          когда: никогда
        - если: $CI_PIPELINE_SOURCE == "merge_request_event"
        - если: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
     

    В этом примере конвейеры запускаются, если заголовок фиксации (первая строка сообщения фиксации) не заканчивается на -проект и конвейер для:

    • Мерж-реквест
    • Ветка по умолчанию.

    Дополнительные сведения :

    • Если ваши правила соответствуют как конвейерам ответвлений (кроме ответвлений по умолчанию), так и конвейерам мерж-реквестов, могут возникать дублирующие конвейеры.

    Связанные темы :

    • Вы можете использовать шаблоны workflow:rules для импорта предварительно настроенный рабочий процесс : правила запись.
    • Общие пункты if для рабочего процесса : правила .
    • Используйте правила для запуска конвейеров мерж-реквестов.
    рабочий процесс: правила: переменные

    История версий

    • Представлено в GitLab 13.11.
    • Флаг функции удален в GitLab 14.1.

    Вы можете использовать переменные в рабочем процессе : правила для определения переменных для конкретные условия трубопровода.

    При совпадении условия переменная создается и может использоваться всеми заданиями в трубопроводе. Если переменная уже определена на глобальном уровне, рабочий процесс переменная имеет приоритет и переопределяет глобальную переменную.

    Тип ключевого слова : Глобальное ключевое слово.

    Возможные входные данные : Пары имени и значения переменной:

    • Имя может использовать только цифры, буквы и знаки подчеркивания ( _ ).
    • Значение должно быть строкой.

    Пример рабочий процесс:правила:переменные :

     переменные:
      DEPLOY_VARIABLE: «развертывание по умолчанию»
    рабочий процесс:
      правила:
        - если: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
          переменные:
            DEPLOY_VARIABLE: "deploy-production" # Переопределить глобально определенную DEPLOY_VARIABLE
        - если: $CI_COMMIT_REF_NAME =~ /feature/
          переменные:
            IS_A_FEATURE: "true" # Определить новую переменную. 
        - when: всегда # Запускать конвейер в остальных случаях
    задание1:
      переменные:
        DEPLOY_VARIABLE: "задание1-развертывание по умолчанию"
      правила:
        - если: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
          переменные: # Переопределить DEPLOY_VARIABLE определено
            DEPLOY_VARIABLE: "job1-deploy-production" # на уровне задания.
        - when: on_success # Запускать задание в остальных случаях
      сценарий:
        - echo "Запустить скрипт с $DEPLOY_VARIABLE в качестве аргумента"
        - echo "Запустить другой скрипт, если $IS_A_FEATURE существует"
    задание2:
      сценарий:
        - echo "Запустить скрипт с $DEPLOY_VARIABLE в качестве аргумента"
        - echo "Запустить другой скрипт, если $IS_A_FEATURE существует"
     

    Если ветвь является ветвью по умолчанию:

    • job1’s DEPLOY_VARIABLE равно job1-deploy-production .
    • job2 DEPLOY_VARIABLE равно deploy-production .

    Когда ветвь feature :

    • job1 DEPLOY_VARIABLE равно job1-default-deploy , а IS_A_FEATURE

      true .
    • job2 DEPLOY_VARIABLE равно default-deploy и IS_A_FEATURE равно true .

    Когда ветка является чем-то другим:

    • job1’s DEPLOY_VARIABLE равно job1-default-deploy .
    • job2 DEPLOY_VARIABLE равно default-deploy .

    Ключевые слова работы

    В следующих разделах объясняется, как использовать ключевые слова для настройки конвейеров CI/CD.

    после_скрипта

    Использовать after_script для определения массива команд, которые выполняются после каждого задания, включая невыполненные задания.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входные данные : Массив, включающий:

    • Однострочные команды.
    • Длинные команды разбиты на несколько строк.
    • Якоря YAML.

    Поддерживаются переменные CI/CD.

    Пример after_script :

     задание:
      сценарий:
        - echo "Пример раздела скрипта."
      после_скрипта:
        - echo "Выполните эту команду после завершения раздела `script`."
     

    Дополнительные сведения :

    Сценарии, которые вы указываете в after_script , выполняются в новой оболочке, отдельно от любой before_script или script команды. В результате они:

    • Возвращают текущий рабочий каталог к ​​значению по умолчанию (в соответствии с переменными, которые определяют, как бегун обрабатывает запросы Git).
    • У вас нет доступа к изменениям, выполненным командами, определенными в сценарии before_script или , включая:
      • Псевдонимы команд и переменные, экспортированные в сценарии .
      • Изменения вне рабочего дерева (в зависимости от исполнителя раннера), например программное обеспечение, установленное сценарием before_script или script .
    • Есть отдельный тайм-аут, жестко заданный на 5 минут.
    • Не влияйте на код выхода задания. Если script раздел успешно завершен, и after_script время ожидания или сбой, задание завершается с кодом 0 ( Задание выполнено успешно ).

    Если время ожидания задания истекло или оно было отменено, команды after_script не выполняются. Существует проблема с добавлением поддержки выполнения команд after_script для заданий с истекшим временем ожидания или отмененных.

    Похожие темы :

    • Использовать after_script с по умолчанию чтобы определить набор команд по умолчанию, которые должны выполняться после всех заданий.
    • Вы можете игнорировать ненулевые коды выхода.
    • Используйте цветовые коды с after_script для облегчения просмотра журналов заданий.
    • Создание настраиваемых складных разделов для упрощения вывода журнала заданий.

    разрешить_сбой

    Используйте allow_failure , чтобы определить, должен ли конвейер продолжать работу в случае сбоя задания.

    • Чтобы конвейер продолжал выполнять последующие задания, используйте allow_failure: правда .
    • Чтобы остановить выполнение конвейером последующих заданий, используйте allow_failure: false .

    Когда задания могут завершаться сбоем ( allow_failure: true ) оранжевое предупреждение () указывает, что задание не выполнено. Однако конвейер выполнен успешно, и соответствующая фиксация помечается как пройденный без предупреждений.

    Это же предупреждение отображается, когда:

    • Все остальные задания на этапе выполнены успешно.
    • Все остальные задания в конвейере выполнены успешно.

    Значение по умолчанию для allow_failure :

    • true для ручных работ.
    • false для заданий, использующих , когда: вручную внутри правил .
    • ложь во всех остальных случаях.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • истина или ложь .

    Пример allow_failure :

     job1:
      этап: тест
      сценарий:
        - выполнить_скрипт_1
    задание2:
      этап: тест
      сценарий:
        - выполнить_скрипт_2
      allow_failure: правда
    задание3:
      этап: развертывание
      сценарий:
        - развертывание_в_постановке
      среда: постановка
     

    В этом примере задание 1 и задание 2 выполняются параллельно:

    • В случае сбоя задания 1 задания на этапе развертывания не запускаются.
    • Если задание2 завершается сбоем, задания на этапе развертывания все еще могут запускаться.

    Дополнительные сведения :

    • Вы можете использовать allow_failure в качестве подраздела правил .
    • Вы можете использовать allow_failure: false с ручным заданием, чтобы создать блокирующее ручное задание. Заблокированный конвейер не запускает никаких заданий на более поздних этапах до тех пор, пока не будет выполнено ручное задание. запускается и успешно завершается.
    allow_failure:exit_codes

    История версий

    • Представлено в GitLab 13.8.
    • Флаг функции удален в GitLab 13.9.

    Используйте allow_failure:exit_codes , чтобы контролировать, когда задание должно быть позволено потерпеть неудачу. Задание allow_failure: true для любого из перечисленных кодов выхода, и allow_failure false для любого другого кода выхода.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • Один код выхода.
    • Массив кодов выхода.

    Пример allow_failure :

     test_job_1:
      сценарий:
        - echo "Запустите сценарий, который приведет к коду выхода 1. Это задание не выполнено."
        - выход 1
      разрешить_сбой:
        выход_коды: 137
    test_job_2:
      сценарий:
        - echo "Запустите сценарий, который приведет к коду выхода 137. Это задание может завершиться ошибкой."
        - выход 137
      разрешить_сбой:
        выход_коды:
          - 137
          - 255
     

    артефактов

    Используйте артефакты , чтобы указать, какие файлы следует сохранять в качестве артефактов задания. Артефакты задания — это список файлов и каталогов, которые привязан к заданию, когда оно успешно, неудачно или всегда.

    Артефакты отправляются в GitLab после завершения задания. Они есть доступен для загрузки в пользовательском интерфейсе GitLab, если размер меньше, чем максимальный размер артефакта.

    По умолчанию задания на более поздних этапах автоматически загружают все созданные артефакты по работам на более ранних стадиях. Вы можете управлять поведением загрузки артефактов в заданиях с помощью зависимости .

    При использовании ключевого слова требуется задания могут загружаться только артефакты из заданий, определенных в конфигурации , требуется конфигурация .

    Артефакты заданий по умолчанию собираются только для успешных заданий, и артефакты восстанавливаются после кешей.

    Подробнее об артефактах.

    артефакты:пути

    Пути относятся к каталогу проекта ( $CI_PROJECT_DIR ) и не могут напрямую ссылка вне его.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входные данные :

    • Массив путей к файлам относительно каталога проекта.
    • Вы можете использовать подстановочные знаки, которые используют glob узоры и:
      • В GitLab Runner 13. 0 и более поздних версиях двойная звезда.Глоб .
      • В GitLab Runner 12.10 и более ранних версиях путь к файлу. Соответствует .

    Пример артефактов: пути :

     задание:
      артефакты:
        пути:
          - двоичные файлы/
          - .конфиг
     

    В этом примере создается артефакт с .config и всеми файлами в каталоге двоичных файлов .

    Дополнительные сведения :

    • Если не используется с артефактами:имя , файл артефактов называется артефакты , который при загрузке становится артефактов.zip .

    Связанные темы :

    • Чтобы ограничить задания, из которых конкретное задание извлекает артефакты, см. зависимости .
    • Создание артефактов работы.
    Артефакты
    :исключить

    История версий

    • Представлено в GitLab 13. 1
    • Требуется GitLab Runner 13.1

    Используйте артефакты : исключайте , чтобы предотвратить добавление файлов в архив артефактов.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входные данные :

    • Массив путей к файлам относительно каталога проекта.
    • Вы можете использовать подстановочные знаки, которые используют glob или шаблонов doublestar.PathMatch .

    Пример артефактов: исключить :

     артефактов:
      пути:
        - двоичные файлы/
      исключать:
        - двоичные файлы /**/*.o
     

    В этом примере все файлы сохраняются в двоичных файлов/ , но не *.o файлов, расположенных в подкаталоги двоичных файлов/ .

    Дополнительная информация :

    • артефакты:исключить пути не ищутся рекурсивно.
    • Файлы, соответствующие артефактам: неотслеживаемые , могут быть исключены с помощью Артефакты : исключить тоже.

    Похожие темы :

    • Исключите файлы из артефактов задания.
    артефакты:expire_in

    История версий

    • Представленные в GitLab 13.0 за флагом отключенной функции, последние артефакты заданий сохраняются независимо от времени истечения срока действия.
    • Сделано поведение по умолчанию в GitLab 13.4.
    • Представленное в GitLab 13.8 сохранение последних артефактов задания можно отключить на уровне проекта.
    • Представленное в GitLab 13.9 сохранение последних артефактов задания можно отключить для всего экземпляра.
    • Представленные в GitLab 13.12, последние артефакты пайплайна сохраняются независимо от срока действия.

    Используйте expire_in , чтобы указать, как долго артефакты задания будут храниться до они истекают и удаляются. Параметр expire_in не влияет на:

    • Артефакты из последнего задания, за исключением случаев, когда сохранение артефактов последнего задания:
      • Отключено на уровне проекта.
      • Отключено для всего экземпляра.
    • Артефакты конвейера. Вы не можете указать срок годности для артефакты конвейера. См. раздел Когда артефакты конвейера удаляются Чтобы получить больше информации.

    После истечения срока действия артефакты по умолчанию удаляются ежечасно (с помощью задания cron) и не удаляются. доступны больше.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы : Срок действия. Если единица измерения не указана, время указывается в секундах. Допустимые значения включают:

    • '42'
    • 42 секунды
    • 3 минуты 4 секунды
    • 2 hrs 20 min
    • 2h30min
    • 6 mos 1 day
    • 47 yrs 6 mos and 4d
    • 3 weeks and 2 days
    • never

    Пример артефактов:expire_in :

     задание:
      артефакты:
        expire_in: 1 неделя
     

    Дополнительные сведения :

    • Срок действия начинается с момента загрузки артефакта и его сохранения в GitLab. Если время истечения срока действия не определено, по умолчанию используется настройка для всего экземпляра.
    • Чтобы переопределить дату истечения срока действия и защитить артефакты от автоматического удаления:
      • Выберите Оставить на странице задания.
      • В GitLab 13.3 и более поздних версиях установите значение expire_in до никогда .
    артефакты: expose_as

    Представлено в GitLab 12.5.

    Используйте ключевое слово артефакты: expose_as для отображать артефакты работы в пользовательском интерфейсе мерж-реквеста.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входные данные :

    • Имя, отображаемое в интерфейсе мерж-реквеста для ссылки на скачивание артефактов. Должен сочетаться с артефактами :пути .

    Пример артефактов: expose_as :

     тест:
      скрипт: ["эхо 'тест' > файл.txt"]
      артефакты:
        expose_as: 'артефакт 1'
        пути: ['file.txt']
     

    Дополнительные сведения :

    • Если артефакты: пути используют переменные CI/CD, артефакты не отображаются в пользовательском интерфейсе.
    • В одном запросе на слияние может быть представлено не более 10 артефактов задания.
    • Шаблоны Glob не поддерживаются.
    • Если указан каталог и в нем находится более одного файла, ссылка на браузер артефактов работы.
    • Если GitLab Pages включен, GitLab автоматически отображает артефакты, когда артефакты представляют собой один файл с одним из следующих расширений:
      • .html или .htm
      • .TXT
      • .JSON
      • .XML
      • .LOG

    Связанные тематические тематические Выставляйте артефакты задания в пользовательском интерфейсе мерж-реквеста.

    Артефакты
    :имя

    Используйте ключевое слово артефакты: имя , чтобы определить имя созданных артефактов. архив. Вы можете указать уникальное имя для каждого архива.

    Если не определено, имя по умолчанию — артефакты , которое при загрузке становится артефактов.zip .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • Имя архива артефактов. Поддерживаются переменные CI/CD. Должен сочетаться с артефактами :пути .

    Пример артефакта:имя :

    Для создания архива с именем текущего задания:

     задание:
      артефакты:
        имя: "job1-файл-артефактов"
        пути:
          - двоичные файлы/
     

    Похожие темы :

    • Используйте переменные CI/CD для определения имени артефакта.
    артефакты: общедоступные

    История версий

    • Представлен в GitLab 13.8
    • Он развернут за флагом функции, отключенным по умолчанию.
    • Он отключен на GitLab.com.
    • Рекомендуется для производственного использования.

    В GitLab с самостоятельным управлением по умолчанию эта функция недоступна. Чтобы сделать его доступным, попросите администратора включить флаг функции с именем non_public_artifacts . На GitLab.com эта функция недоступна.

    Используйте артефакты: общедоступные , чтобы определить, должны ли артефакты задания общедоступны.

    Когда артефакты: общедоступные равны true (по умолчанию), артефакты в публичные пайплайны доступны для скачивания анонимным и гостевым пользователям.

    Чтобы запретить анонимным и гостевым пользователям доступ на чтение к общедоступным артефактам конвейеры, набор артефакты: общедоступные до false :

    Тип ключевого слова : Ключевое слово задания. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • true (по умолчанию, если не определено) или false .

    Пример артефактов: общедоступный :

     задание:
      артефакты:
        публичный: ложь
     
    артефакты:отчеты

    Используйте артефакты: отчеты для сбора артефактов, созданных включены шаблоны в задания.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • См. список доступных типов отчетов об артефактах.

    Пример артефактов: отчеты :

     спецификация:
      этап: тест
      сценарий:
        - пакетная установка
        - rspec --format RspecJunitFormatter --out rspec. xml
      артефакты:
        отчеты:
          соединение: rspec.xml
     

    Дополнительные сведения :

    • Объединение отчетов в родительских конвейерах с использованием артефактов из дочерних конвейеров не поддерживается. Отслеживайте прогресс добавления поддержки в этом выпуске.
    • Чтобы иметь возможность просматривать выходные файлы отчета, включите ключевое слово артефакты: пути . Обратите внимание, что это загрузит и сохранит артефакт дважды.
    • Отчеты о тестировании собираются независимо от результатов задания (успешно или неудачно). Вы можете использовать артефакты :expire_in для установки срока действия дата отчетов об артефактах.
    артефакты: неотслеживаемые

    Используйте артефакты: неотслеживаемые , чтобы добавить все неотслеживаемые файлы Git в качестве артефактов (вместе с с путями, определенными в артефакты: пути ). артефакты: не отслеживается игнорирует конфигурацию в репозитории . gitignore , поэтому включены соответствующие артефакты в .gitignore .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • true или false (по умолчанию, если не определено).

    Пример артефактов: неотслеживаемые :

    Сохранить все неотслеживаемые файлы Git:

     задание:
      артефакты:
        неотслеживаемый: правда
     

    Похожие темы :

    • Добавляйте неотслеживаемые файлы в артефакты.
    артефакты:когда

    Использовать артефакты : когда загружать артефакты при сбое задания или несмотря на отказ.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • on_success (по умолчанию): загружать артефакты только после успешного выполнения задания.
    • on_failure : Загружать артефакты только в случае сбоя задания.
    • всегда : Всегда загружать артефакты (за исключением случаев, когда время ожидания истекло). Например, когда загрузка артефактов требуется для устранения неполадок с провалившимися тестами.

    Пример артефактов: когда :

     задание:
      артефакты:
        когда: on_failure
     

    перед_сценарием

    Используйте before_script для определения массива команд, которые должны выполняться перед выполнением каждого задания. скрипт команды, но после артефакты восстанавливаются.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входные данные : Массив, включающий:

    • Однострочные команды.
    • Длинные команды разбиты на несколько строк.
    • Якоря YAML.

    Поддерживаются переменные CI/CD.

    Пример before_script :

     задание:
      до_скрипта:
        - echo "Выполняйте эту команду перед любыми командами 'script:'."
      сценарий:
        - echo "Эта команда выполняется после команд задания 'before_script'."
     

    Дополнительные сведения :

    • Сценарии, указанные вами в before_script , объединяются с любыми указанными вами сценариями в основном скрипте . Объединенные сценарии выполняются вместе в одной оболочке.
    • Использование before_script на верхнем уровне, но не на раздел по умолчанию , устарел.

    Похожие темы :

    • Используйте before_script с по умолчанию чтобы определить набор команд по умолчанию, которые должны выполняться перед командами сценария во всех заданиях.
    • Вы можете игнорировать ненулевые коды выхода.
    • Используйте цветовые коды с before_script для облегчения просмотра журналов заданий.
    • Создание настраиваемых складных разделов для упрощения вывода журнала заданий.

    кэш

    Используйте кэш , чтобы указать список файлов и каталогов для кэш между заданиями. Вы можете использовать только те пути, которые есть в локальной рабочей копии.

    Кэширование совместно используется конвейерами и заданиями. Кэши восстанавливаются раньше артефактов.

    Узнайте больше о кэшах в разделе Кэширование в GitLab CI/CD.

    кэш: пути

    Используйте ключевое слово cache:paths , чтобы выбрать файлы или каталоги для кэширования.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входные данные :

    • Массив путей относительно каталога проекта ( $CI_PROJECT_DIR ). Вы можете использовать подстановочные знаки, которые используют glob узоры:
      • В GitLab Runner 13.0 и более поздних версиях двойная звезда.Глоб .
      • В GitLab Runner 12.10 и более ранних версиях путь к файлу.Соответствует .

    Пример cache:paths :

    Кэшировать все файлы в двоичных файлах , которые заканчиваются на .apk и файл .config :

     rspec
      сценарий:
        - echo "Это задание использует кеш."
      кеш:
        ключ: бинарные файлы-кэш
        пути:
          - бинарники/*.apk
          - .конфиг
     

    Связанные темы :

    • Дополнительные сведения см. в общих примерах использования кэша . кэш:пути примера.
    Кэш
    : ключ

    Используйте ключевое слово cache:key , чтобы присвоить каждому кэшу уникальный идентификационный ключ. Все вакансии которые используют один и тот же ключ кэша, используют один и тот же кэш, в том числе в разных конвейерах.

    Если не задано, по умолчанию используется ключ по умолчанию . Все задания с ключевым словом cache , но нет кэша : ключ совместно использует кэш по умолчанию .

    Должен использоваться с кешем : путь , иначе ничего не кэшируется.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • Строка.
    • Предопределенная переменная CI/CD.
    • Комбинация обоих.

    Пример cache:key :

     cache-job:
      сценарий:
        - echo "Это задание использует кеш."
      кеш:
        ключ: бинарные-кэш-$CI_COMMIT_REF_SLUG
        пути:
          - двоичные файлы/
     

    Дополнительная информация :

    Связанные темы :

    • Вы можете указать резервный ключ кэша использовать, если указанный кэш : ключ не найден.
    • В одном задании можно использовать несколько ключей кэша.
    • Дополнительные сведения см. в общих сценариях использования кэш-памяти . кэш: ключ примеры.
    кэш:ключ:файлы

    Представлено в GitLab 12.5.

    Используйте ключевое слово cache:key:files для создания нового ключа, когда один или два определенных файла сдача. cache:key:files позволяет повторно использовать некоторые кэши и реже их перестраивать, что ускоряет последующие запуски конвейера.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входные данные :

    • Массив из одного или двух путей к файлам.

    Пример cache:key:files :

     cache-job:
      сценарий:
        - echo "Это задание использует кеш. "
      кеш:
        ключ:
          файлы:
            - Gemfile.lock
            - пакет.json
        пути:
          - продавец/рубин
          - node_modules
     

    В этом примере создается кеш для зависимостей Ruby и Node.js. Кэш привязан к текущим версиям файлов Gemfile.lock и package.json . Когда один из эти файлы изменяются, вычисляется новый ключ кэша и создается новый кэш. Любое будущее запуски заданий, использующие один и тот же Gemfile.lock и package.json с cache:key:files используйте новый кеш вместо перестроения зависимостей.

    Дополнительная информация :

    • Ключ кэша — это SHA, вычисленный на основе самых последних коммитов. который изменил каждый из перечисленных файлов. Если ни один из файлов не был изменен ни при каких коммитах, резервным ключом будет по умолчанию .
    кэш: ключ: префикс

    Представлено в GitLab 12.5.

    Используйте cache:key:prefix для объединения префикса с SHA, вычисленным для cache:key:files .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • Строка
    • Предопределенные переменные
    • Комбинация обоих.

    Пример cache:key:prefix :

     rspec:
      сценарий:
        - echo "Это задание rspec использует кеш."
      кеш:
        ключ:
          файлы:
            - Gemfile.lock
          префикс: $CI_JOB_NAME
        пути:
          - продавец/рубин
     

    Например, добавление префикса к $CI_JOB_NAME приводит к тому, что ключ выглядит как rspec-feef9576d21ee9b6a32e30c5c79d0a0ceb68d1e5 . Если ветка изменяет Gemfile.lock , эта ветка имеет новую контрольную сумму SHA для cache:key:files . Генерируется новый ключ кэша, и для этого ключа создается новый кэш. Если Gemfile.lock не найден, к добавляется префикс default , поэтому ключ в примере будет rspec-default .

    Дополнительная информация :

    • Если ни один файл в cache:key:files не изменяется ни в одной фиксации, к ключу по умолчанию добавляется префикс.
    Кэш
    : неотслеживаемый

    Используйте untracked: true для кэширования всех неотслеживаемых файлов в вашем репозитории Git:

    Тип ключевого слова : Ключевое слово задания. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • правда или ложь (по умолчанию).

    Пример cache:untracked :

     rspec:
      сценарий: тест
      кеш:
        неотслеживаемый: правда
     

    Дополнительная информация :

    Кэш
    : когда

    Представлено в GitLab 13.5 и GitLab Runner v13.5.0.

    Использовать кэш :когда для определения времени сохранения кэша в зависимости от состояния задания.

    Должен использоваться с кешем : путь , иначе ничего не кэшируется.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • on_success (по умолчанию): сохранять кеш только после успешного выполнения задания.
    • on_failure : Сохранять кеш только в случае сбоя задания.
    • всегда : Всегда сохранять кеш.

    Пример кэша : когда :

     rspec:
      сценарий: rspec
      кеш:
        пути:
          - рспец/
        когда: «всегда»
     

    В этом примере кэш сохраняется независимо от того, завершается ли задание неудачно или успешно.

    кэш: политика

    Чтобы изменить поведение загрузки и загрузки кэша, используйте ключевое слово cache:policy . По умолчанию задание загружает кэш при запуске задания и отправляет изменения в кеш после завершения задания. Этот стиль кэширования — политика pull-push (по умолчанию).

    Чтобы настроить задание на загрузку кэша только при запуске задания, но никогда не загружать изменения когда работа закончится, используйте кеш:политика:тянуть .

    Чтобы настроить задание на загрузку кэша только после завершения задания, но никогда не загружать cache при запуске задания используйте cache:policy:push .

    Используйте политику pull , если у вас параллельно выполняется много заданий, использующих один и тот же кэш. Эта политика ускоряет выполнение заданий и снижает нагрузку на сервер кэширования. Вы можете используйте задание с политикой push для создания кэша.

    Должен использоваться с кэшем : путь или ничего не кэшируется.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • тянуть
    • толкать
    • pull-push (по умолчанию)

    Пример cache:policy :

     prepare-dependencies-job:
      этап: сборка
      кеш:
        ключ: драгоценные камни
        пути:
          - продавец/комплект
        политика: нажать
      сценарий:
        - echo "Это задание только загружает зависимости и создает кеш. "
        - echo "Загрузка зависимостей..."
    более быстрая тестовая работа:
      этап: тест
      кеш:
        ключ: драгоценные камни
        пути:
          - продавец/комплект
        политика: тянуть
      сценарий:
        - echo "Этот сценарий задания использует кеш, но не обновляет его."
        - echo "Выполнение тестов..."
     

    покрытие

    Используйте покрытие с пользовательским регулярным выражением, чтобы настроить покрытие кода извлекается из выходных данных задания. Покрытие отображается в пользовательском интерфейсе, если хотя бы один строка в выводе задания соответствует регулярному выражению.

    Чтобы извлечь значение покрытия кода из совпадения, GitLab использует это меньшее регулярное выражение: \d+(\.\d+)? .

    Возможные входные данные :

    • Регулярное выражение. Должен начинаться и заканчиваться на /. Должен совпадать с номером покрытия. Также может соответствовать окружающему тексту, поэтому вам не нужно использовать группу символов регулярного выражения. чтобы зафиксировать точное число.

    Пример покрытия :

     job1:
      сценарий: rspec
      покрытие: '/Покрытие кода: \d+\.\d+/'
     

    В этом примере:

    1. GitLab проверяет журнал заданий на соответствие регулярному выражению. Линия как Покрытие кода: 67,89% строк, покрытых , совпадут.
    2. Затем GitLab проверяет совпадающий фрагмент, чтобы найти совпадение с \d+(\.\d+)? . Примерная строка соответствия выше дает покрытие кода 67,89 .

    Дополнительные сведения :

    • Если в выходных данных задания имеется более одной совпадающей строки, используется последняя строка. (первый результат обратного поиска).
    • Если в одной строке несколько совпадений, ищется последнее совпадение для номера покрытия.
    • Если в совпадающем фрагменте найдено несколько номеров покрытия, используется первый номер.
    • Ведущие нули удалены.
    • Выход покрытия из дочерних конвейеров не записывается и не отображается. Проверьте связанную проблему Больше подробностей.

    dast_configuration

    Представлено в GitLab 14.1.

    Используйте ключевое слово dast_configuration , чтобы указать профиль сайта и профиль сканера, которые будут использоваться в Конфигурация CI/CD. Оба профиля должны быть предварительно созданы в проекте. Этап работы должен быть дат .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать только как часть работы.

    Возможные входы : По одному из site_profile и scan_profile .

    • Используйте site_profile , чтобы указать профиль сайта, который будет использоваться в задании.
    • Используйте профиль_сканера , чтобы указать профиль сканера, который будет использоваться в задании.

    Пример dast_configuration :

     этапов:
      - строить
      - даст
    включают:
      - шаблон: DAST. gitlab-ci.yml
    даст:
      dast_configuration:
        site_profile: "Пример компании"
        Scanner_profile: "Быстрый пассивный тест"
     

    В этом примере задание dast расширяет конфигурацию dast , добавленную с помощью ключевого слова include . для выбора конкретного профиля сайта и профиля сканера.

    Дополнительные сведения :

    • Настройки, содержащиеся либо в профиле сайта, либо в профиле сканера, имеют приоритет над содержится в шаблоне DAST.

    Похожие темы :

    • Профиль сайта.
    • Профиль сканера.

    зависимости

    Используйте ключевое слово dependencies , чтобы определить список заданий, из которых будут извлекаться артефакты. Вы также можете настроить задание, чтобы вообще не загружать артефакты.

    Если вы не используете зависимости , все артефакты с предыдущих этапов передаются каждому заданию.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные :

    • Имена заданий, из которых нужно получить артефакты.
    • Пустой массив ( [] ), чтобы задание не загружало никаких артефактов.

    Пример зависимостей :

     build osx:
      этап: сборка
      сценарий: сделать сборку: osx
      артефакты:
        пути:
          - двоичные файлы/
    собрать линукс:
      этап: сборка
      скрипт: make build:linux
      артефакты:
        пути:
          - двоичные файлы/
    тестовый osx:
      этап: тест
      сценарий: сделать тест: osx
      зависимости:
        - собрать ОСХ
    тестовый линукс:
      этап: тест
      сценарий: сделать тест: Linux
      зависимости:
        - собрать линукс
    развертывать:
      этап: развертывание
      скрипт: сделать деплой
      среда: производство
     

    В этом примере у двух заданий есть артефакты: build osx и build linux . Когда выполняется test osx , артефакты из сборки OSX загружаются и извлекаются в контексте сборки. То же самое происходит для test linux и артефактов из build linux .

    Задание развертывания загружает артефакты из всех предыдущих заданий из-за приоритет этапа.

    Дополнительная информация :

    • Статус задания не имеет значения. Если задание завершается сбоем или это ручное задание, которое не запускается, ошибка не возникает.
    • Если артефакты зависимого задания просрочены или удаляется, то задание не выполняется.

    окружающая среда

    Используйте среду для определения среды, в которой развертывается задание.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные : Имя среды, в которой развертывается задание, в одном из этих форматы:

    • Простой текст, включая буквы, цифры, пробелы и следующие символы: - , _ , / , $ , { , } .
    • Переменные CI/CD, включая предопределенные, проектные, групповые, экземплярные или переменные, определенные в Файл .gitlab-ci.yml . Вы не можете использовать переменные, определенные в разделе скрипта .

    Пример развертывания среды :

     в рабочей среде:
      этап: развертывание
      скрипт: git push production HEAD:main
      среда: производство
     

    Дополнительные сведения :

    • Если вы укажете среду , а среда с таким именем не существует, среда созданный.
    среда: имя

    Установите имя для среды.

    Общие имена сред: qa , staging и production , но вы можете использовать любое имя.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные : Имя среды, в которой развертывается задание, в одном из этих форматы:

    • Простой текст, включая буквы, цифры, пробелы и следующие символы: - , _ , / , $ , { , } .
    • переменные CI/CD, включая предопределенные, проект, группу, экземпляр или переменные, определенные в Файл .gitlab-ci.yml . Вы не можете использовать переменные, определенные в сценарии 9раздел 0032.

    Пример environment:name :

     развертывание в рабочей среде:
      этап: развертывание
      скрипт: git push production HEAD:main
      Окружающая среда:
        Название: производство
     
    среда: URL-адрес

    Установите URL-адрес для среды.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные : Один URL-адрес в одном из следующих форматов:

    • Обычный текст, например https://prod.example.com .
    • переменные CI/CD, включая предопределенные, проект, группу, экземпляр или переменные, определенные в Файл .gitlab-ci.yml . Вы не можете использовать переменные, определенные в разделе скрипта .

    Пример среды : URL-адрес :

     развертывания в рабочей среде:
      этап: развертывание
      скрипт: git push production HEAD:main
      Окружающая среда:
        Название: производство
        URL-адрес: https://prod.example.com
     

    Дополнительные сведения :

    • После завершения задания вы можете получить доступ к URL-адресу, нажав кнопку в запросе на слияние, среды или страницы развертывания.
    среда: on_stop

    Закрытие (остановка) среды может быть достигнуто с помощью ключевого слова on_stop определено в среде . Он объявляет другое задание, которое запускается, чтобы закрыть Окружающая среда.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Дополнительные сведения :

    • См. environment:action для получения дополнительных сведений и примера.
    среда:действие

    Используйте ключевое слово action , чтобы указать, как задание взаимодействует со средой.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы : Одно из следующих ключевых слов:

    Значение Описание
    пуск Значение по умолчанию. Указывает, что задание запускает среду. Развертывание создается после запуска задания.
    подготовка Указывает, что задание только подготавливает среду. Он не запускает развертывания. Узнайте больше о подготовке сред.
    stop Указывает, что задание останавливает развертывание. Дополнительные сведения см. в разделе Остановить среду.
    проверка Указывает, что задание проверяет только среду. Он не запускает развертывания. Узнайте больше о проверке сред.
    доступ Указывает, что задание обращается только к среде. Он не запускает развертывания. Узнайте больше о доступе к средам.

    Пример environment:action :

     stop_review_app:
      этап: развертывание
      переменные:
        GIT_STRATEGY: нет
      скрипт: сделать удаление-приложение
      когда: вручную
      Окружающая среда:
        имя: обзор/$CI_COMMIT_REF_SLUG
        действие: стоп
     
    среда: auto_stop_in

    Представлено в GitLab 12.8.

    Ключевое слово auto_stop_in определяет время существования среды. Когда срок действия среды истекает, GitLab автоматически останавливает его.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные : Период времени, записанный на естественном языке. Например, все они эквивалентны:

    • 168 часов
    • 7 дней
    • Одна неделя
    • Никогда

    Пример Среда: AUTO_STOP_IN :

     Обзор: ОБЗОР:
      сценарий: развертывание-обзор-приложение
      Окружающая среда:
        имя: обзор/$CI_COMMIT_REF_SLUG
        auto_stop_in: 1 день
     

    При создании среды для review_app срок жизни среды устанавливается равным 1 день . Каждый раз, когда развертывается приложение для проверки, это время жизни также сбрасывается до 9.0031 1 день .

    Похожие темы :

    • Документация по автоматической остановке сред.
    среда: Kubernetes

    Представлено в GitLab 12.6.

    Используйте ключевое слово kubernetes для настройки развертываний на Кластер Kubernetes, связанный с вашим проектом.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Пример среды : kubernetes :

     развертывание:
      этап: развертывание
      скрипт: сделать деплой-приложение
      Окружающая среда:
        Название: производство
        кубернет:
          пространство имен: производство
     

    Эта конфигурация настраивает задание развертывания для развертывания в рабочей среде среде, используя производства Пространство имен Kubernetes.

    Дополнительные сведения :

    • Конфигурация Kubernetes не поддерживается для кластеров Kubernetes которыми управляет GitLab. Чтобы следить за ходом поддержки кластеров, управляемых GitLab, см. актуальная проблема.

    Похожие темы :

    • Доступные настройки для kubernetes .
    среда: уровень развертывания

    Представлено в GitLab 13. 10.

    Используйте ключевое слово deployment_tier , чтобы указать уровень среды развертывания.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы : Один из следующих:

    • production
    • staging
    • testing
    • development
    • other

    Example of environment:deployment_tier :

     deploy:
      сценарий: эхо
      Окружающая среда:
        название: клиентский портал
        уровень_развертывания: производство
     

    Похожие темы :

    • Уровень развертывания сред.
    Динамические среды

    Используйте переменные CI/CD для динамического присвоения имен средам.

    Например:

     развертывание в качестве приложения для проверки:
      этап: развертывание
      скрипт: сделать деплой
      Окружающая среда:
        имя: обзор/$CI_COMMIT_REF_SLUG
        URL-адрес: https://$CI_ENVIRONMENT_SLUG. example.com/
     

    Задание развертывания в качестве приложения проверки помечено как развертывание для динамического создайте среду обзора /$CI_COMMIT_REF_SLUG . $CI_COMMIT_REF_SLUG — это переменная CI/CD, устанавливаемая исполнителем. Переменная $CI_ENVIRONMENT_SLUG основана на имени среды, но подходит для включения в URL. Если задание развертывания в качестве приложения проверки выполняется в ветке с именем pow , эта среда будет доступна по URL-адресу, например https://review-pow.example.com/ .

    Обычный вариант использования — создание динамических сред для филиалов и их использование как приложения для просмотра. Вы можете увидеть пример, который использует Review Apps на https://gitlab.com/gitlab-examples/review-apps-nginx/.

    удлиняет

    Использование расширяет для повторного использования разделов конфигурации. Это альтернатива анкорам YAML. и немного более гибкий и читабельный.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • Имя другого задания в конвейере.
    • Список (массив) имен других заданий в конвейере.

    Пример расширения :

     .тесты:
      скрипт: рейк-тест
      этап: тест
      Только:
        ссылки:
          - ветви
    rspec:
      расширяет: .тесты
      скрипт: грабли rspec
      Только:
        переменные:
          - $RSPEC
     

    В этом примере задание rspec использует конфигурацию шаблонного задания .tests . При создании конвейера GitLab:

    • Выполняет обратное глубокое слияние на основе ключей.
    • Объединяет содержимое .tests с заданием rspec .
    • Не объединяет значения ключей.

    Результат: rspec job:

     rspec:
      скрипт: грабли rspec
      этап: тест
      Только:
        ссылки:
          - ветви
        переменные:
          - $RSPEC
     

    Дополнительная информация :

    • В GitLab 12. 0 и более поздних версиях вы можете использовать несколько родителей для extends .
    • Ключевое слово расширяет ключевое слово и поддерживает до одиннадцати уровней наследования, но вы должны избегайте использования более трех уровней.
    • В приведенном выше примере .tests — это скрытое задание, но вы также можете расширить конфигурацию из обычных заданий.

    Похожие темы :

    • Повторное использование разделов конфигурации с помощью extends .
    • Использование расширяет для повторного использования конфигурации из прилагаемых файлов конфигурации.

    изображение

    Используйте образ , чтобы указать образ Docker, в котором выполняется задание.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входные данные : Имя образа, включая путь реестра, если необходимо, в одном из следующих форматов:

    • (то же, что и использование с последним тегом )
    • :
    • @

    Поддерживаются переменные CI/CD.

    Пример изображения :

     по умолчанию:
      изображение: рубин: 3.0
    rspec:
      скрипт: пакет exec rspec
    рспец 2.7:
      образ:Registry.example.com/my-group/my-project/ruby:2.7
      скрипт: пакет exec rspec
     

    В этом примере образ ruby:3.0 используется по умолчанию для всех заданий в конвейере. Задание rspec 2.7 не использует значение по умолчанию, поскольку оно переопределяет значение по умолчанию с помощью конкретная работа изображение раздел.

    Похожие темы :

    • Запускайте задания CI/CD в контейнерах Docker.
    изображение:имя

    Имя образа Docker, в котором выполняется задание. Аналогично образу , который используется сам по себе.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входные данные : Имя образа, включая путь реестра, если необходимо, в одном из следующих форматов:

    • (то же, что и использование с последним тегом )
    • :
    • @

    Пример изображение:имя :

     изображение:
      имя: "registry.example.com/my/image:latest"
     

    Похожие темы :

    • Запускайте задания CI/CD в контейнерах Docker.
    изображение: точка входа

    Команда или сценарий для выполнения в качестве точки входа контейнера.

    При создании контейнера Docker точка входа преобразуется в параметр Docker --entrypoint . Синтаксис аналогичен директиве Dockerfile ENTRYPOINT , где каждый токен оболочки представляет собой отдельную строку в массиве.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • Строка.

    Пример изображения : точка входа :

     изображение:
      имя: супер/sql:экспериментальный
      точка входа: [""]
     

    Похожие темы :

    • Переопределить точку входа изображения.
    изображение:pull_policy

    История версий

    • Представлен в GitLab 15.1 с флагом 9.0031 ci_docker_image_pull_policy . Отключено по умолчанию.
    • Включено на GitLab.com и самостоятельно управляется в GitLab 15.2.
    • Обычно доступно в GitLab 15.4. Флаг функции ci_docker_image_pull_policy удален.
    • Требуется GitLab Runner 15.1 или новее.

    Политика извлечения, используемая исполнителем для получения образа Docker.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть задания или в разделе по умолчанию .

    Возможные входные данные :

    • Одна политика извлечения или несколько политик извлечения в массиве. Может быть всегда , если нет , или никогда .

    Примеры image:pull_policy :

     job1:
      script: echo "Единая политика извлечения".
      изображение:
        имя: рубин: 3.0
        pull_policy: если нет
    задание2:
      script: echo "Несколько политик извлечения".
      изображение:
        имя: рубин: 3. 0
        pull_policy: [всегда, если нет]
     

    Дополнительные сведения :

    • Если средство выполнения не поддерживает заданную политику извлечения, задание завершается с ошибкой, подобной следующей: ОШИБКА: Сбой задания (сбой системы): настроенные политики PullPolicies ([всегда]) не разрешены AllowedPullPolicies ([никогда]) .

    Похожие темы :

    • Запускайте задания CI/CD в контейнерах Docker.
    • Как работают политики вытягивания бегунов.
    • Использование нескольких политик вытягивания.

    унаследовать

    Представлено в GitLab 12.9.

    Используйте наследование для управления наследованием ключевых слов и переменных по умолчанию.

    наследовать: по умолчанию

    Используйте inherit:default для управления наследованием ключевых слов по умолчанию.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • правда (по умолчанию) или false , чтобы включить или отключить наследование всех ключевых слов по умолчанию.
    • Список определенных ключевых слов по умолчанию для наследования.

    Пример наследование: по умолчанию :

     по умолчанию:
      повторить: 2
      изображение: рубин: 3.0
      прерываемый: правда
    задание1:
      script: echo "Это задание не наследует ключевые слова по умолчанию."
      наследовать:
        по умолчанию: ложь
    задание2:
      script: echo "Это задание наследует только два перечисленных ключевых слова по умолчанию. Оно не наследует прерываемое".
      наследовать:
        дефолт:
          - повторить попытку
          - изображение
     

    Дополнительные сведения :

    • Вы также можете перечислить ключевые слова по умолчанию для наследования в одной строке: по умолчанию: [ключевое слово1, ключевое слово2]
    наследовать: переменные

    Используйте inherit:variables для управления наследованием ключевых слов глобальных переменных.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • правда (по умолчанию) или false , чтобы включить или отключить наследование всех глобальных переменных.
    • Список определенных переменных для наследования.

    Пример inherit:variables :

     переменных:
      VARIABLE1: «Это переменная 1»
      ПЕРЕМЕННАЯ2: «Это переменная 2»
      VARIABLE3: «Это переменная 3»
    задание1:
      script: echo "Это задание не наследует глобальные переменные."
      наследовать:
        переменные: ложь
    задание2:
      script: echo "Это задание наследует только две перечисленные глобальные переменные. Оно не наследует 'VARIABLE3'."
      наследовать:
        переменные:
          - ПЕРЕМЕННАЯ1
          - ПЕРЕМЕННАЯ2
     

    Дополнительные сведения :

    • Вы также можете перечислить глобальные переменные для наследования в одной строке: переменных: [ПЕРЕМЕННАЯ1, ПЕРЕМЕННАЯ2]

    прерываемый

    Представлено в GitLab 12. 3.

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

    Это ключевое слово не действует, если выполняется автоматическая отмена избыточных конвейеров. выключен. При включении работающее задание с прерываемый: true отменяется, когда запуск конвейера для нового изменения в той же ветке.

    Вы не можете отменить последующие задания после запуска задания с прерыванием : false .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • истина или ложь (по умолчанию).

    Пример прерываемый :

     ступени:
      - этап 1
      - этап2
      - стадия 3
    шаг 1:
      этап: этап1
      сценарий:
        - эхо "Можно отменить."
      прерываемый: правда
    шаг 2:
      этап: этап2
      сценарий:
        - эхо "Не может быть отменено. "
    шаг 3:
      этап: этап 3
      сценарий:
        - echo "Поскольку шаг 2 не может быть отменен, этот шаг никогда не может быть отменен, даже если он установлен как прерываемый."
      прерываемый: правда
     

    В этом примере новый конвейер приводит к тому, что работающий конвейер становится:

    • Отменено, если только шаг-1 выполняется или находится в ожидании.
    • Не отменяется, после шаг-2 начинается .

    Дополнительные сведения :

    • Установите только прерываемый: true , если задание можно безопасно отменить после его запуска, как строительная работа. Задания развертывания обычно не следует отменять, чтобы предотвратить частичное развертывание.
    • Чтобы полностью отменить работающий конвейер, все задания должны иметь прерывание : true , или прерываемый: false задания не должны быть запущены.

    нужно

    История версий

    • Представлено в GitLab 12. 2.
    • В GitLab 12.3 для максимального количества заданий в требуется массив , увеличенный с пяти до 50.
    • Представленный в GitLab 12.8, требует: [] позволяет запускать задания немедленно.
    • Представленный в GitLab 14.2, вы можете обращаться к заданиям на том же этапе, что и задание, которое вы настраиваете.

    Использование требует для выполнения заданий не по порядку. Отношения между рабочими местами что использование требует , можно представить в виде ориентированного ациклического графа.

    Можно игнорировать порядок этапов и выполнять одни задания, не дожидаясь завершения других. Задания на нескольких этапах могут выполняться одновременно.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • Массив заданий.
    • Пустой массив ( [] ), чтобы задание запускалось сразу после создания конвейера.

    Пример потребности :

     linux:build:
      этап: сборка
      скрипт: echo "Сборка Linux..."
    мак:сборка:
      этап: сборка
      script: echo "Сборка Mac..."
    корпия:
      этап: тест
      потребности: []
      скрипт: echo "Линтинг..."
    линукс: rspec:
      этап: тест
      потребности: ["linux:сборка"]
      script: echo "Запуск rspec в Linux..."
    макинтош: rspec:
      этап: тест
      потребности: ["mac:сборка"]
      script: echo "Запуск rspec на Mac..."
    производство:
      этап: развертывание
      script: echo "Выполняется производство..."
      среда: производство
     

    В этом примере создаются четыре пути выполнения:

    • Линтер: задание lint запускается немедленно, не дожидаясь этапа сборки . завершить, потому что в нем нет нужды ( need: [] ).
    • Путь Linux: задание linux:rspec запускается, как только linux:build задание завершается, не дожидаясь завершения mac:build .
    • путь macOS: задания mac:rspec запускаются, как только mac:build задание завершается, не дожидаясь завершения linux:build .
    • Задание production запускается сразу после завершения всех предыдущих заданий: linux:сборка , linux:rspec , mac:сборка , mac:rspec .

    Дополнительные сведения :

    • Максимальное количество заданий, которое может иметь одно задание в массиве need , ограничено:
      • Для GitLab.com ограничение составляет 50. Для получения дополнительной информации см. вопрос инфраструктуры.
      • Для самоуправляемых экземпляров ограничение по умолчанию равно 50. Это ограничение можно изменить.
    • Если требуется, относится к заданию, в котором используется ключевое слово parallel , это зависит от всех заданий, созданных параллельно, а не только от одного задания. Он также загружает артефакты из всех параллельных заданий по умолчанию. Если артефакты одинаковые имя, они перезаписывают друг друга и сохраняется только последнее загруженное.
    • В GitLab 14.1 и более поздних версиях вы может ссылаться на задания на том же этапе, что и задание, которое вы настраиваете. Эта функция включен на GitLab.com и готов к использованию в продакшене. На самоуправляемом GitLab 14.2 и более поздних версиях эта функция доступна по умолчанию.
    • В GitLab 14.0 и старше вы можете ссылаться только на задания на более ранних стадиях. Этапы должны быть явно определен для всех заданий, которые используют ключевое слово need или на которые ссылаются в задании нужен раздел .
    • В GitLab 13.9 и старше, если требуется, относится к заданию, которое нельзя добавить в конвейер из-за только , кроме или правил , конвейер может не создаться.
    нужно:артефакты

    Представлено в GitLab 12.6.

    Когда задание использует требуется , оно больше не загружает все артефакты с предыдущих этапов по умолчанию, потому что задания с требуют могут начаться до завершения более ранних этапов. С требуется , вы можете загружать артефакты только из заданий, перечисленных в конфигурации требуется .

    Использовать артефакты : true (по умолчанию) или артефакты : false , чтобы контролировать, когда артефакты загружается в задания, которые используют нужно .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы. Должен использоваться с need:job .

    Возможные входы :

    • true (по умолчанию) или false .

    Пример потребности : артефакты :

     test-job1:
      этап: тест
      потребности:
        - задание: build_job1
          артефакты: правда
    тестовая работа2:
      этап: тест
      потребности:
        - задание: build_job2
          артефакты: ложь
    тестовая работа3:
      потребности:
        - задание: build_job1
          артефакты: правда
        - задание: build_job2
        - build_job3
     

    В этом примере:

    • Задание test-job1 загружает артефакты build_job1
    • Задание test-job2 не загружает артефакты build_job2 .
    • Задание test-job3 загружает артефакты из всех трех build_jobs , потому что артефакты равно true или по умолчанию true для всех трех необходимых заданий.

    Дополнительная информация :

    • В GitLab 12.6 и более поздних версиях вы не можете комбинировать ключевое слово зависимостей . с нужно .
    потребности:проект

    Представлено в GitLab 12.7.

    Используйте need:project для загрузки артефактов из пяти заданий в других конвейерах. Артефакты загружаются из последнего успешного конвейера для указанной ссылки. Чтобы указать несколько заданий, добавьте каждое из них в виде отдельных элементов массива под need ключевое слово.

    Если для указанной ссылки запущен конвейер, задание с требует: проект не ждет завершения конвейера. Вместо этого задание загружает артефакт из последнего успешно завершенного конвейера.

    потребности: проект должен использоваться с заданием , ref и артефактами .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • need:project : Полный путь к проекту, включая пространство имен и группу.
    • job : Задание для загрузки артефактов.
    • ref : ссылка для загрузки артефактов.
    • артефакты : для загрузки артефактов должно быть true .

    Примеры потребностей : проект :

     build_job:
      этап: сборка
      сценарий:
        - лс ​​-лр
      потребности:
        - проект: пространство имен/группа/имя-проекта
          работа: сборка-1
          ссылка: основной
          артефакты: правда
        - проект: пространство имен/группа/имя-проекта-2
          задание: сборка-2
          ссылка: основной
          артефакты: правда
     

    В этом примере build_job загружает артефакты из последних успешных заданий build-1 и build-2 . на основных ветках в проектах group/project-name и group/project-name-2 .

    В GitLab 13.3 и более поздних версиях вы можете использовать переменные CI/CD в need:project , например:

     build_job:
      этап: сборка
      сценарий:
        - лс ​​-лр
      потребности:
        - проект: $CI_PROJECT_PATH
          задание: $DEPENDENCY_JOB_NAME
          ссылка: $ARTIFACTS_DOWNLOAD_REF
          артефакты: правда
     

    Дополнительные сведения :

    • Чтобы загрузить артефакты из другого конвейера в текущем проекте, установите проект быть таким же, как текущий проект, но использовать другую ссылку, чем текущий конвейер. Параллельные конвейеры, работающие на одной и той же ссылке, могут переопределять артефакты.
    • Пользователь, запускающий конвейер, должен иметь как минимум роль Reporter для группы или проекта, или группа/проект должны быть общедоступны.
    • Нельзя использовать потребности: проект в том же задании, что и триггер .
    • При использовании требуется: проект для загрузки артефактов из другого конвейера, задание не ожидает необходимую работу для завершения. Направленный ациклический граф поведение ограничено заданиями в одном конвейере. Убедитесь, что нужная работа в другом конвейер завершится до того, как требующее его задание попытается загрузить артефакты.
    • Вы не можете загружать артефакты из заданий, которые выполняются параллельно .
    • Поддержка переменных CI/CD в проекте , задании и ref была представлен в GitLab 13.3. Флаг функции удален в GitLab 13.4.

    Связанные темы :

    • Чтобы загрузить артефакты между родительско-дочерними конвейерами, используйте need:pipeline:job .
    потребности: конвейер: задание

    Представлено в GitLab 13.7.

    Дочерний конвейер может загружать артефакты из задания в его родительский конвейер или другой дочерний конвейер в той же иерархии родительско-дочерних конвейеров.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • need:pipeline : ID конвейера. Должен быть конвейером, присутствующим в той же иерархии родительско-дочернего конвейера.
    • job : Задание для загрузки артефактов.

    Пример need:pipeline:job :

    • Родительский конвейер ( .gitlab-ci.yml ):

       создать артефакт:
        этап: сборка
        скрипт: эхо "образец артефакта" > артефакт.txt
        артефакты:
          пути: [artifact.txt]
      дочерний конвейер:
        этап: тест
        курок:
          включают: child.yml
          стратегия: зависеть
        переменные:
          PARENT_PIPELINE_ID: $CI_PIPELINE_ID
       
    • Дочерний конвейер ( child.yml ):

       артефакт использования:
        скрипт: артефакт кота.txt
        потребности:
          - конвейер: $PARENT_PIPELINE_ID
            задание: создать артефакт
       

    В этом примере задание create-artifact в родительском конвейере создает некоторые артефакты. Задание child-pipeline запускает дочерний конвейер и передает CI_PIPELINE_ID в дочерний конвейер как новую переменную PARENT_PIPELINE_ID . Дочерний конвейер можно использовать эту переменную в need:pipeline для загрузки артефактов из родительского конвейера.

    Дополнительные сведения :

    • Атрибут конвейера не принимает идентификатор текущего конвейера ( $CI_PIPELINE_ID ). Чтобы загрузить артефакты из задания в текущем конвейере, используйте , необходимо .
    необходимо: дополнительно

    История версий

    • Представлено в GitLab 13.10.
    • Флаг функции удален в GitLab 14.0.

    Чтобы выполнить задание, которого иногда нет в конвейере, добавьте (необязательно): true для требуется конфигурация . Если не определено, необязательный: false по умолчанию.

    Задания, использующие правила , только или кроме не всегда быть добавлен в конвейер. GitLab проверяет отношения need перед запуском конвейер:

    • Если в записи потребностей есть , необязательно: true и необходимое задание присутствует в конвейере, задание ожидает завершения перед запуском.
    • Если нужного задания нет, задание можно запустить, когда будут выполнены все остальные требования.
    • Если для требуется раздел , содержащий только необязательные задания, и ни одно из них не добавлено в конвейер, задание запускается немедленно (так же, как пустая запись need : need: [] ).
    • Если нужное задание имеет option: false , но оно не было добавлено в конвейер, Конвейер не запускается с ошибкой, похожей на: Задание 'job1' нуждается в задании 'job2', но оно не было добавлено в конвейер .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Пример потребности : опционально :

     build-job:
      этап: сборка
    тестовая работа1:
      этап: тест
    тестовая работа2:
      этап: тест
      правила:
        - если: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
    развертывание-работа:
      этап: развертывание
      потребности:
        - работа: тестовая работа2
          необязательно: правда
        - работа: тестовая работа1
      среда: производство
    обзор-работа:
      этап: развертывание
      потребности:
        - работа: тестовая работа2
          необязательно: правда
      среда: обзор
     

    В этом примере:

    • сборка-задание , test-job1 и test-job2 запускаются в порядке этапов.
    • Если ветвь является ветвью по умолчанию, test-job2 добавляется в конвейер, поэтому:
      • deploy-job ожидает завершения test-job1 и test-job2 .
      • review-job ожидает завершения test-job2 .
    • Если ветвь не является ветвью по умолчанию, test-job2 не добавляется в конвейер, поэтому:
      • deploy-job ожидает завершения только test-job1 и не ждет отсутствующего test-job2 .
      • review-job не имеет других необходимых заданий и запускается немедленно (в то же время, что и build-job ), как нужно: [] .
    потребности: конвейер

    Вы можете отражать состояние конвейера из вышестоящего конвейера в задание моста, используя потребности : конвейер ключевое слово. Последний статус конвейера из ветки по умолчанию: реплицируется на задание моста.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные :

    • Полный путь к проекту, включая пространство имен и группу. Если проект находится в той же группе или пространстве имен, вы можете опустить их из проекта ключевое слово. Например: проект: имя группы/проекта или проект: имя проекта .

    Пример потребности : трубопровод :

     upstream_bridge:
      этап: тест
      потребности:
        воронка: другое/проект
     

    Дополнительные сведения :

    • Если вы добавите ключевое слово job в need:pipeline , задание больше не будет отражать состояние трубопровода. Поведение меняется на need:pipeline:job .

    только

    / кроме примечание

    только и , кроме , активно не разрабатываются. правила предпочтительнее ключевое слово, чтобы контролировать, когда добавлять задания в конвейеры.

    Вы можете использовать только и , кроме , чтобы контролировать, когда добавлять задания в конвейеры.

    • Используйте только для определения времени запуска задания.
    • Используйте , кроме , чтобы определить, когда задание не выполняется.

    См. Укажите, когда задания выполняются только с и , кроме для более подробной информации и примеров.

    Только
    :ссылки / кроме:ссылки

    Используйте ключевые слова only:refs и exclude:refs , чтобы контролировать, когда добавлять задания в конвейер на основе имен ветвей или типов конвейеров.

    Только : ссылки и , кроме: ссылки активно не разрабатываются. правила:если является предпочтительным ключевым словом при использовании ссылок, регулярных выражений или переменных для управления когда добавлять задания в пайплайны. 9характеристика-.*/ .

  • Следующие ключевые слова:

    Значение Описание
    API 7 API 7 API 7 API 7 .
    ответвления Когда ссылка Git для конвейера является ответвлением.
    chat Для конвейеров, созданных с помощью команды GitLab ChatOps.
    внешний Когда вы используете сервисы CI, отличные от GitLab.
    external_pull_requests При создании или обновлении внешнего запроса на включение в GitHub (см. Конвейеры для внешних запросов на вытягивание).
    merge_requests Для конвейеров, созданных при создании или обновлении запроса на слияние. Включает конвейеры запросов на слияние, конвейеры объединенных результатов и поезда слияния.
    конвейеры Для многопроектных конвейеров, созданных с помощью API с CI_JOB_TOKEN или ключевого слова триггера .
    pushs Для конвейеров, запущенных событием git push , в том числе для ветвей и тегов.
    расписания Для запланированных трубопроводов.
    теги Когда ссылка Git для конвейера является тегом. 9стабильная ветвь.*$/ - расписания

    Дополнительные сведения :

    • Запланированные конвейеры выполняются в определенных ветвях, поэтому задания, настроенные только с : ветви также запускать запланированные конвейеры. Добавьте , кроме: расписания для предотвращения заданий только с : филиалы от работы по запланированным конвейерам.
    • только или , кроме , используемые без каких-либо других ключевых слов, эквивалентны только : ссылки или кроме: refs . Например, следующие две конфигурации заданий имеют одинаковую поведение:

       задание1:
        сценарий: эхо
        Только:
          - ветви
      задание2:
        сценарий: эхо
        Только:
          ссылки:
            - ветви
       
    • Если задание не использует только , кроме или правила , тогда только устанавливается на ветвей и теги по умолчанию.

      Например, задание1 и задание2 эквивалентны:

       задание1:
        скрипт: эхо "тест"
      задание2:
        скрипт: эхо "тест"
        Только:
          - ветви
          - теги
       
    Только
    : переменные / кроме: переменные

    Используйте ключевые слова only:variables или exclude:variables для управления добавлением заданий в конвейер в зависимости от состояния переменных CI/CD.

    Только : переменные и , кроме: переменные активно не разрабатываются. правила:если является предпочтительным ключевым словом при использовании ссылок, регулярных выражений или переменных для управления когда добавлять задания в пайплайны.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные :

    • Массив выражений переменных CI/CD.

    Пример только : переменные :

     развертывание:
      скрипт: деплой промежуточной шапки
      Только:
        переменные:
          - $RELEASE == "постановка"
          - $ ПОСТАНОВКА
     

    Похожие темы :

    • Только : переменные и , кроме: переменных пример.
    Только
    : изменения / кроме: изменения

    Используйте ключевое слово изменяет с только для запуска задания или с кроме для пропуска задания, когда событие Git push изменяет файл.

    Использовать изменения в конвейерах со следующими ссылками:

    • ответвления
    • external_pull_requests
    • merge_requests (см. дополнительные сведения об использовании 9Только 0031: изменения с конвейерами мерж-реквестов)

    Только : изменения и , кроме: изменения активно не разрабатываются. правила:изменения является предпочтительным ключевым словом при использовании измененных файлов для управления добавлением заданий в конвейеры.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные : Массив, включающий любое количество:

    • Пути к файлам.
    • Пути с подстановочными знаками для отдельных каталогов, например путь/к/каталогу/* или каталог и все его подкаталоги, например путь/к/каталогу/**/* .
    • Пути подстановочных знаков для всех файлы с одинаковым или несколькими расширениями, например *.md или путь/к/каталогу/*.{rb,py,sh} . См. документацию Ruby fnmatch . список поддерживаемого синтаксиса.
    • Пути с подстановочными знаками к файлам в корневом каталоге или во всех каталогах, заключенные в двойные кавычки. Например "*.json" или "**/*. json" .

    Пример только : изменения :

     сборка докера:
      скрипт: docker build -t my-image:$CI_COMMIT_REF_SLUG .
      Только:
        ссылки:
          - ветви
        изменения:
          - Докерфайл
          - докер/скрипты/*
          - файлы докеров/**/*
          - more_scripts/*.{rb,py,sh}
          - "**/*.json"
     

    Дополнительная информация :

    • изменения преобразуются в true , если какой-либо из соответствующих файлов изменен (операция 0031 ИЛИ ).
    • Если вы используете ссылки, отличные от ветвей , external_pull_requests или merge_requests , изменения не может определить, является ли данный файл новым или старым, и всегда возвращает true .
    • Если вы используете только : измените с другими ссылками, задания игнорируют изменения и всегда выполняются.
    • Если вы используете , кроме: изменения с другими ссылками, задания игнорируют изменения и никогда не запускаются.

    Похожие темы :

    • Только : изменяет и , кроме: изменяет примеры .
    • Если вы используете изменения с разрешением мерж-реквестов только в случае успеха конвейера, вы также должны использовать только :merge_requests .
    • Задания или конвейеры могут запускаться неожиданно только при использовании : изменения .
    Только
    : kubernetes / кроме: kubernetes

    Используйте только : kubernetes или , кроме: kubernetes для управления добавлением заданий в конвейер. когда служба Kubernetes активна в проекте.

    Только : ссылки и , кроме: ссылки активно не разрабатываются. Использовать правила :если с предопределенной переменной CI/CD CI_KUBERNETES_ACTIVE чтобы контролировать, добавляются ли задания в конвейер, когда служба Kubernetes активна в проекте.

    Тип ключевого слова : Для конкретного задания. Вы можете использовать его только как часть работы.

    Возможные входные данные :

    • Стратегия kubernetes принимает только ключевое слово active .

    Пример только для : kubernetes :

     развертывание:
      Только:
        Кубернетес: активен
     

    В этом примере задание deploy запускается только тогда, когда служба Kubernetes активна. в проекте.

    страниц

    Используйте страницы , чтобы определить задание GitLab Pages, которое загружает статический контент в GitLab. Затем контент публикуется как веб-сайт.

    Тип ключевого слова : Имя задания.

    Пример страниц :

     страниц:
      этап: развертывание
      сценарий:
        - mkdir .public
        -cp -r * .public
        - mv .public общественность
      артефакты:
        пути:
          - общественный
      правила:
        - если: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      среда: производство
     

    В этом примере все файлы перемещаются из корня проекта в каталог public/. Обходной путь .public так cp также не копирует public/ в себя в бесконечном цикле.

    Дополнительная информация :

    Необходимо:

    • Помещать любой статический контент в каталог public/.
    • Определить артефакты с путем к каталогу public/.

    параллельный

    Используйте parallel для запуска задания несколько раз параллельно в одном конвейере.

    Должно существовать несколько исполнителей или одно средство выполнения должно быть настроено для одновременного запуска нескольких заданий.

    Параллельные задания именуются последовательно от job_name 1/N до job_name N/N .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • Числовое значение от 2 до 50 .

    Пример параллельного :

     теста:
      сценарий: rspec
      параллельно: 5
     

    В этом примере создается 5 параллельно выполняемых заданий с именем тест 1/5 от до тест 5/5 .

    Дополнительные сведения :

    • Каждое параллельное задание имеет CI_NODE_INDEX и CI_NODE_TOTAL предопределенный набор переменных CI/CD.

    Похожие темы :

    • Распараллеливайте большие задачи.
    параллель:матрица

    История версий

    • Представлено в GitLab 13.3.
    • Стиль именования заданий был улучшен в GitLab 13.4.

    Используйте parallel:matrix для запуска задания несколько раз параллельно в одном конвейере, но с разными значениями переменных для каждого экземпляра задания.

    Должно существовать несколько исполнителей или одно средство выполнения должно быть настроено для одновременного запуска нескольких заданий.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные : Массив хэшей переменных:

    • В именах переменных могут использоваться только цифры, буквы и знаки подчеркивания ( _ ).
    • Значения должны быть либо строкой, либо массивом строк.
    • Количество перестановок не может превышать 50.

    Пример parallel:matrix :

     deploystacks:
      этап: развертывание
      сценарий:
        - бин/развернуть
      параллельно:
        матрица:
          - ПРОВАЙДЕР: aws
            КУЧА:
              - мониторинг
              - приложение1
              - приложение2
          - ПРОВАЙДЕР: ovh
            СТЕК: [мониторинг, резервное копирование, приложение]
          - ПРОВАЙДЕР: [gcp, vultr]
            СТЕК: [данные, обработка]
      среда: $PROVIDER/$STACK
     

    В этом примере создается 10 параллельных заданий deploystacks , каждое из которых имеет разные значения для PROVIDER и STACK :

     deploystacks: [aws, мониторинг]
    развертывание стеков: [aws, app1]
    развертывание стеков: [aws, app2]
    deploystacks: [ovh, мониторинг]
    deploystacks: [ovh, резервная копия]
    развертывание стеков: [ovh, приложение]
    развертывание стеков: [gcp, данные]
    deploystacks: [gcp, обработка]
    развертывание стеков: [vultr, данные]
    deploystacks: [vultr, обработка]
     

    Похожие темы :

    • Запустите одномерную матрицу параллельных заданий.
    • Запустите матрицу запущенных параллельных заданий.
    • Выберите разные теги бегуна для каждого параллельного матричного задания.

    выпуск

    Представлено в GitLab 13.2.

    Используйте версию для создания версии.

    Задание выпуска должно иметь доступ к Release-cli , который должен быть в $PATH .

    Если вы используете исполнитель Docker, вы можете использовать этот образ из реестра контейнеров GitLab: register.gitlab.com/gitlab-org/release-cli:latest

    Если вы используете исполняющую программу Shell или аналогичную, установить релиз-кли на сервер, где прописан раннер.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы : Подключи версии :

    • tag_name
    • tag_message (необязательно)
    • имя (опционально)
    • описание
    • (дополнительно)
    • вехи (опционально)
    • Release_at (опционально)
    • активы: ссылки (необязательно)

    Пример выпуска ключевое слово :

     release_job:
      этап: релиз
      образ:Registry. gitlab.com/gitlab-org/release-cli:latest
      правила:
        - if: $CI_COMMIT_TAG # Запускать это задание, когда тег создается вручную
      сценарий:
        - echo "Выполняется задание выпуска."
      выпускать:
        имя_тега: $CI_COMMIT_TAG
        имя: 'Выпустить $CI_COMMIT_TAG'
        description: 'Релиз создан с помощью Release-cli.'
     

    В этом примере создается релиз:

    • При нажатии тега Git.
    • При добавлении тега Git в пользовательский интерфейс в разделе Репозиторий > Теги .

    Дополнительная информация :

    • Все задания выпуска, за исключением заданий триггеров, должны включать ключевое слово сценария . Релиз job может использовать вывод команд сценария. Если вам не нужен скрипт, вы можете использовать заполнитель: скрипт

      :
        - эхо "выпустить задание"
       

      Существует проблема, связанная с удалением этого требования.

    • Раздел выпуска выполняется после ключевого слова сценария и перед after_script .
    • Релиз создается только в случае успешного выполнения основного сценария задания.
    • Если выпуск уже существует, он не обновляется и задание с ключевым словом выпуска завершается сбоем.

    Похожие темы :

    • Пример CI/CD ключевого слова версии .
    • Создавайте несколько выпусков в одном конвейере.
    • Используйте пользовательский центр сертификации SSL CA.
    Релиз
    : имя_тега

    Обязательно. Тег Git для релиза.

    Если тег еще не существует в проекте, он создается одновременно с выпуском. Новые теги используют SHA, связанный с конвейером.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • Имя тега.

    Поддерживаются переменные CI/CD.

    Пример release:tag_name :

    Для создания релиза при добавлении в проект нового тега:

    • Используйте переменную $CI_COMMIT_TAG CI/CD в качестве тега 3_2 tag.
    • Использовать правила : если только или : теги для настройки задание запускать только для новых тегов.
     работа:
      script: echo "Выполняется задание выпуска для нового тега."
      выпускать:
        имя_тега: $CI_COMMIT_TAG
        description: 'Описание релиза'
      правила:
        - если: $CI_COMMIT_TAG
     

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

     job:
      script: echo "Запуск задания выпуска и создание нового тега."
      выпускать:
        tag_name: ${MAJOR}_${MINOR}_${REVISION}
        description: 'Описание релиза'
      правила:
        - если: $CI_PIPELINE_SOURCE == "расписание"
     
    Выпуск
    :tag_message

    Представлено в GitLab 15.3. Поддерживается релиз-cli v0.12.0 или более поздней версии.

    Если тег не существует, вновь созданный тег аннотируется сообщением, указанным в tag_message . Если он опущен, создается упрощенный тег.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • Текстовая строка.

    Пример release:tag_message :

     release_job:
        этап: релиз
        выпускать:
          имя_тега: $CI_COMMIT_TAG
          description: 'Описание релиза'
          tag_message: 'Аннотированное сообщение тега'
     
    Версия
    : имя

    Название выпуска. Если он опущен, он заполняется значением release: tag_name .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • Текстовая строка.

    Пример релиз:имя :

     релиз_работа:
        этап: релиз
        выпускать:
          имя: 'Выпустить $CI_COMMIT_TAG'
     
    Выпуск
    : описание

    Подробное описание релиза.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • Строка с длинным описанием.
    • Путь к файлу, содержащему описание. Представлено в GitLab 13.7.
      • Расположение файла должно быть относительно каталога проекта ( $CI_PROJECT_DIR ).
      • Если файл является символической ссылкой, он должен быть в $CI_PROJECT_DIR .
      • ./path/to/file и имя файла не могут содержать пробелы.

    Пример выпуска : описание :

     задание:
      выпускать:
        tag_name: ${MAJOR}_${MINOR}_${REVISION}
        описание: './path/to/CHANGELOG.md'
     
    Выпуск
    : ссылка

    ref для выпуска, если выпуск : tag_name еще не существует.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные :

    • SHA фиксации, другое имя тега или имя ветки.
    Выпуск
    : вехи

    Название каждой вехи, с которой связан выпуск.

    Выпуск
    :released_at

    Дата и время готовности релиза.

    Возможные входные данные :

    • Дата, заключенная в кавычки и выраженная в формате ISO 8601.

    Пример выпуска :released_at :

     Release_at: '2021-03-15T08:00:00Z'
     

    Дополнительные сведения :

    • Если не указано, используются текущие дата и время.
    выпуск:активы:ссылки

    Представлено в GitLab 13.12.

    Используйте release:assets:links , чтобы включить ссылки на активы в выпуск.

    Требуется release-cli версии v0.4.0 или выше.

    Пример выпуска : активы: ссылки :

     активы:
      ссылки:
        - имя: 'актив1'
          URL-адрес: https://example.com/assets/1.
        - имя: 'актив2'
          URL-адрес: «https://example.com/assets/2»
          путь к файлу: '/pretty/url/1' # необязательно
          link_type: 'другое' # необязательно
     

    группа_ресурсов

    Представлено в GitLab 12.7.

    Используйте resource_group для создания группы ресурсов, гарантирует, что задание является взаимоисключающим для разных конвейеров одного и того же проекта.

    Например, если несколько заданий, принадлежащих к одной группе ресурсов, одновременно поставлены в очередь, запускается только одно из заданий. Другие задания ждут, пока resource_group не освободится.

    Группы ресурсов ведут себя подобно семафорам в других языках программирования.

    Для каждой среды можно определить несколько групп ресурсов. Например, при развертывании на физические устройства у вас может быть несколько физических устройств. Каждое устройство может быть развернут, но только одно развертывание может произойти на устройство в любой момент времени.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • только буквы, цифры, - , _ , /, $ , {, } , . и пробелы. Он не может начинаться или заканчиваться на /. Поддерживаются переменные CI/CD.

    Пример resource_group :

     развертывание в рабочей среде:
      сценарий: развернуть
      группа_ресурсов: производство
     

    В этом примере два задания развертывания в рабочей среде в двух отдельных конвейерах никогда не могут выполняться одновременно. Как результат, вы можете гарантировать, что одновременные развертывания никогда не произойдут в производственной среде.

    Похожие темы :

    • Контроль параллелизма на уровне конвейера с конвейерами между проектами и родителем-потомком.

    повторить попытку

    Используйте повтор , чтобы настроить количество повторных попыток задания в случае сбоя. Если не определено, по умолчанию 0 и задания не повторяются.

    При сбое задания оно обрабатывается еще два раза до тех пор, пока оно не завершится успешно или достигает максимального количества повторных попыток.

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

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • 0 (по умолчанию), 1 или 2 .

    Пример повторной попытки :

     теста:
      сценарий: rspec
      повторить: 2
     
    повтор: когда

    Используйте повторную попытку : когда с повторной попыткой : макс. , чтобы повторить задания только для определенных случаев сбоя. retry:max — это максимальное количество повторных попыток, например retry , и может быть 0 , 1 или 2 .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

    Возможные входы :

    • Один тип отказа или массив из одного или нескольких типов отказа:
    • всегда : Повторить попытку при любом сбое (по умолчанию).
    • unknown_failure : повторите попытку, если причина сбоя неизвестна.
    • script_failure : повторите попытку после сбоя сценария.
    • api_failure : повторите попытку при сбое API.
    • stick_or_timeout_failure : повторите попытку, если задание зависло или истекло время ожидания.
    • runner_system_failure : повторите попытку, если произошел сбой системы бегуна (например, сбой настройки задания).
    • runner_unsupported : повторите попытку, если бегун не поддерживается.
    • stale_schedule : повторите попытку, если отложенное задание не может быть выполнено.
    • job_execution_timeout : повторите попытку, если сценарий превысил максимальное время выполнения, установленное для задания.
    • archived_failure : повторите попытку, если задание заархивировано и не может быть запущено.
    • unmet_prerequisites : повторите попытку, если заданию не удалось выполнить предварительные задачи.
    • scheduler_failure : повторите попытку, если планировщику не удалось назначить задание исполнителю.
    • data_integrity_failure : повторите попытку, если обнаружена проблема структурной целостности.

    Пример повторной попытки : когда (тип одиночного отказа):

     тест:
      сценарий: rspec
      повторить:
        макс: 2
        когда: runner_system_failure
     

    В случае сбоя, отличного от сбоя системы бегуна, задание не повторяется.

    Пример повторной попытки: когда (массив типов ошибок):

     тест:
      сценарий: rspec
      повторить:
        макс: 2
        когда:
          - runner_system_failure
          - застрял_or_timeout_failure
     

    Связанные темы :

    Можно указать количество повторных попыток для определенных этапов выполнения задания. используя переменные.

    правила

    Представлено в GitLab 12.3.

    Используйте правила для включения или исключения заданий в конвейерах.

    Правила оцениваются при создании конвейера и оцениваются в порядке до первого матча. Когда совпадение найдено, задание либо включается, либо исключается из конвейера. в зависимости от конфигурации.

    Нельзя использовать переменные dotenv, созданные в сценариях заданий, в правилах, так как правила оцениваются перед выполнением любых заданий.

    правила заменяют только /кроме и не могут использоваться вместе на той же работе. Если вы настроите одно задание на использование обоих ключевых слов, GitLab вернет ключ нельзя использовать с ошибкой правил .

    rules accepts an array of rules defined with:

    • if
    • changes
    • exists
    • allow_failure
    • variables
    • когда

    Вы можете комбинировать несколько ключевых слов для сложных правил.

    Задание добавлено в конвейер:

    • Если if , изменяет или существует соответствует правилу, а также имеет когда: on_success (по умолчанию), когда: задержано или когда: всегда .
    • Если достигнуто правило, равное только , когда: on_success , , когда: задержано , или , когда: всегда .

    Задание не добавлено в конвейер:

    • Если ни одно правило не соответствует.
    • Если правило соответствует и имеет когда: никогда .

    Вы можете использовать теги !reference для повторного использования правил конфигурации на разных работах.

    правила:если

    Используйте правила : условия if , чтобы указать, когда добавлять задание в конвейер:

    • Если утверждение if истинно, добавьте задание в конвейер.
    • Если утверждение if верно, но оно сочетается с , когда: никогда , не добавлять задание в конвейер.
    • Если нет , если утверждения верны, не добавляйте задание в конвейер.

    , если предложения оцениваются на основе значений предопределенных переменных CI/CD или пользовательские переменные CI/CD.

    Тип ключевого слова : зависит от задания и конвейера. Вы можете использовать его как часть работы для настройки поведения задания или с помощью 9особенность/ когда: вручную allow_failure: правда - если: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME

    Дополнительные сведения :

    • Если правило соответствует и не имеет , когда определено , правило использует , когда определено для задания, которое по умолчанию равно on_success , если не определено.
    • В GitLab 14.5 и более ранних версиях вы можете определить , когда один раз для правила или один раз на уровне задания, что относится ко всем правилам. нельзя смешивать при на уровне задания с при в правилах.
    • В GitLab 14.6 и более поздних версиях вы можете смешивать , когда на уровне задания, с , когда в правилах. когда конфигурация в правил имеет приоритет над когда на уровне задания.
    • В отличие от переменных в сценарии разделы, переменные в выражениях правил всегда имеют формат $VARIABLE .
      • Вы можете использовать правила : если с включает для условного включения других файлов конфигурации.
    • Переменные CI/CD в правой части выражений =~ и !~ оцениваются как регулярные выражения.

    Похожие темы :

    • Общие если выражения для правил .
    • Избегайте дублирования конвейеров.
    • Используйте правила для запуска конвейеров мерж-реквестов.
    правил:изменений

    Используйте правила : изменения , чтобы указать, когда добавлять задание в конвейер, проверяя наличие изменений к конкретным файлам.

    предостережение

    Вы должны использовать правила : изменения только с конвейерами ответвлений или конвейеров мерж-реквестов . Вы можете использовать правила : изменяет с другими типами конвейеров, но правила : изменяет всегда оценивается как true, если нет события Git push . Конвейеры тегов, запланированные конвейеры, ручные конвейеры, и так далее , а не имеют событие Git push , связанное с ними. Правила : изменение задания всегда добавляется к этим конвейерам, если нет , если ограничивает задание до конвейеры ответвлений или мерж-реквестов.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    Массив, включающий любое количество:

    • Пути к файлам. В GitLab 13.6 и более поздних версиях пути к файлам могут включать переменные. Массив пути к файлу также может быть в правила:изменения:пути .
    • Подстановочные пути для:
      • Отдельные каталоги, например путь/к/каталогу/* .
      • Каталог и все его подкаталоги, например путь/к/каталогу/**/* .
    • Пути подстановочных знаков для всех файлов с одним или несколькими расширениями, например *.md или путь/к/каталогу/*.{rb,py,sh} . См. документацию Ruby fnmatch . список поддерживаемого синтаксиса.
    • Пути с подстановочными знаками к файлам в корневом каталоге или во всех каталогах, заключенные в двойные кавычки. Например, "*. json" или "**/*.json" .

    Пример правил : изменения :

     сборка докера:
      скрипт: docker build -t my-image:$CI_COMMIT_REF_SLUG .
      правила:
        - если: $CI_PIPELINE_SOURCE == "merge_request_event"
          изменения:
            - Докерфайл
          когда: вручную
          allow_failure: правда
     
    • Если конвейер является конвейером запросов на слияние, отметьте Dockerfile для изменений.
    • Если Dockerfile изменился, добавьте задание в конвейер как ручное задание, а конвейер продолжает работать, даже если задание не запущено ( allow_failure: true ).
    • Если Dockerfile не изменился, не добавляйте задание ни в один конвейер (так же, как , когда: никогда ).
    • rules:changes:paths совпадает с rules:changes без любые подразделы.

    Дополнительная информация :

    • правила: изменения работают так же, как и только: изменения и кроме: изменения .
    • Вы можете использовать , когда: никогда не применять правило, аналогичное , за исключением:changes .
    • изменяет преобразуется в true , если изменяется любой из соответствующих файлов (операция ИЛИ ).

    Похожие темы :

    • Задания или конвейеры могут запускаться неожиданно при использовании правила: изменения .
    правила:изменения:пути

    Представлено в GitLab 15.2.

    Используйте правила : изменяет , чтобы указать, что задание добавляется в конвейер, только если оно указано файлы изменены, и используйте rules:changes:paths для указания файлов.

    правила:изменения:пути аналогично использованию правила:изменения без любые подразделы. Все дополнительные детали и сопутствующие темы остаются прежними.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные :

    • Массив путей к файлам. В GitLab 13.6 и более поздних версиях пути к файлам могут включать переменные.

    Пример rules:changes:paths :

     docker-build-1:
      скрипт: docker build -t my-image:$CI_COMMIT_REF_SLUG .
      правила:
        - если: $CI_PIPELINE_SOURCE == "merge_request_event"
          изменения:
            - Докерфайл
    докер-сборка-2:
      скрипт: docker build -t my-image:$CI_COMMIT_REF_SLUG .
      правила:
        - если: $CI_PIPELINE_SOURCE == "merge_request_event"
          изменения:
            пути:
              - Докерфайл
     

    В этом примере оба задания ведут себя одинаково.

    правила:изменения:сравнить_с

    История версий

    • Представлен в GitLab 15.3 с флагом ci_rules_changes_compare . Включено по умолчанию.
    • Обычно доступно в GitLab 15. 5. Флаг функции ci_rules_changes_compare удален.

    Используйте rules:changes:compare_to , чтобы указать, с какой ссылкой сравнивать изменения в файлах. перечислено под правила:изменения:пути .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть задания, и он должен быть объединен с rules:changes:paths .

    Возможные входы :

    • Имя ветки, например main , branch2 или refs/heads/branch2 .
    • Имя тега, например tag1 или refs/tags/tag1 .
    • SHA фиксации, например 2fg31ga14b .

    Пример rules:changes:compare_to :

     docker build:
      скрипт: docker build -t my-image:$CI_COMMIT_REF_SLUG .
      правила:
        - если: $CI_PIPELINE_SOURCE == "merge_request_event"
          изменения:
            пути:
              - Докерфайл
            compare_to: 'refs/heads/branch2'
     

    В этом примере задание docker build включается только при изменении файла Dockerfile . относительно refs/heads/branch2 , а источником конвейера является событие запроса на слияние.

    правил:существует

    Представлено в GitLab 12.4.

    Используйте exists для запуска задания, когда в репозитории существуют определенные файлы.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные :

    • Массив путей к файлам. Пути относятся к каталогу проекта ( $CI_PROJECT_DIR ) и не может напрямую ссылаться за его пределами. Пути к файлам могут использовать шаблоны глобусов.

    Пример правил : существует :

     задание:
      скрипт: docker build -t my-image:$CI_COMMIT_REF_SLUG .
      правила:
        - существуют:
            - Докерфайл
     

    Задание выполняется, если Dockerfile существует где-либо в репозитории.

    Дополнительные сведения :

    • Шаблоны Glob интерпретируются с помощью Ruby File.fnmatch с флагами File::FNM_PATHNAME | Файл::FNM_DOTMATCH | Файл::FNM_EXTGLOB .
    • Из соображений производительности GitLab соответствует максимум 10 000 существует шаблонов или пути к файлам. После 10 000-й проверки правила с шаблонными глобусами всегда совпадают. Другими словами, существует всегда сообщает верно если более 10000 проверок бегать. Репозитории с менее чем 10 000 файлов могут быть затронуты, если существует правила проверены более 10000 раз.
    • существует преобразуется в true , если любой из перечисленных файлов найден (операция 0031 ИЛИ ).
    правила:allow_failure

    Представлено в GitLab 12.8.

    Используйте allow_failure: true в правилах , чтобы разрешить сбой задания без остановки трубопровода.

    Вы также можете использовать allow_failure: true с ручным заданием. Трубопровод продолжается работает, не дожидаясь результата ручного задания. allow_failure: ложь в сочетании с , когда: вручную в правилах заставляет конвейер ждать руководства задание для запуска, прежде чем продолжить.

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входы :

    • истина или ложь . По умолчанию false , если не определено.

    Пример правил :allow_failure :

     задание:
      script: echo "Привет, Правила!"
      правила:
        - если: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
          когда: вручную
          allow_failure: правда
     

    Если правило соответствует, то задание выполняется вручную с allow_failure: true .

    Дополнительные сведения :

    • Правила уровня rules:allow_failure переопределяют уровень задания allow_failure , и применяется только тогда, когда определенное правило запускает задание.
    правила: переменные

    История версий

    • Представлено в GitLab 13.7.
    • Флаг функции удален в GitLab 13.10.

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

    Тип ключевого слова : Для конкретного задания. Вы можете использовать его только как часть работы.

    Возможные входы :

    • Хэш переменных в формате ИМЯ-ПЕРЕМЕННОЙ: значение .

    Пример правила: переменные :

     задание:
      переменные:
        DEPLOY_VARIABLE: «развертывание по умолчанию»
      правила:
        - если: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
          переменные: # Переопределить DEPLOY_VARIABLE определено
            DEPLOY_VARIABLE: "deploy-production" # на уровне задания. 
        - если: $CI_COMMIT_REF_NAME =~ /feature/
          переменные:
            IS_A_FEATURE: "true" # Определить новую переменную.
      сценарий:
        - echo "Запустить скрипт с $DEPLOY_VARIABLE в качестве аргумента"
        - echo "Запустить другой скрипт, если $IS_A_FEATURE существует"
     

    скрипт

    Используйте сценарий , чтобы указать команды для выполнения бегуном.

    Для всех заданий, кроме триггерных, требуется ключевое слово сценария .

    Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

    Возможные входные данные : Массив, включающий:

    • Однострочные команды.
    • Длинные команды разбиты на несколько строк.
    • Якоря YAML.

    Поддерживаются переменные CI/CD.

    Пример сценария :

     задание 1:
      скрипт: "комплект exec rspec"
    задание2:
      сценарий:
        - имя-а
        - пакет exec rspec
     

    Дополнительная информация :

    • Когда вы используете эти специальные символы в сценарии , вы должны использовать отдельные цитаты ( ') или двойные цитаты ( ").

    Связанные Топы :

      8
        8
          8
          • Вы можете игнорировать ненулевые коды выхода
          • Используйте цветовые коды с сценарий для облегчения просмотра журналов заданий.
          • Создание настраиваемых складных разделов для упрощения вывода журнала заданий.

          секрет

          Представлено в GitLab 13.4.

          Используйте секреты , чтобы указать секреты CI/CD для:

          • Получить от внешнего поставщика секретов.
          • Сделать доступными в задании переменные CI/CD ( тип файла по умолчанию).

          Это ключевое слово должно использоваться с секретами: хранилище .

          секреты: хранилище

          Представлено в GitLab 13.4 и GitLab Runner 13.4.

          Используйте secrets:vault для указания секретов, предоставленных хранилищем HashiCorp.

          Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

          Возможные входы :

          • engine:name : Название механизма секретов.
          • engine:path : Путь к движку секретов.
          • путь : Путь к секрету.
          • поле : Имя поля, в котором хранится пароль.

          Пример secrets:vault :

          Чтобы явно указать все детали и использовать механизм секретов KV-V2:

           задание:
            секреты:
              DATABASE_PASSWORD: # Сохраняем путь к секрету в этой переменной CI/CD
                vault: # Переводится как секрет: `ops/data/production/db`, поле: `пароль`
                  двигатель:
                    название: кв-в2
                    путь: опс
                  путь: производство/дб
                  поле: пароль
           

          Вы можете сократить этот синтаксис. С коротким синтаксисом двигатель:имя и двигатель:путь оба по умолчанию kv-v2 :

           задание:
            секреты:
              DATABASE_PASSWORD: # Сохраняем путь к секрету в этой переменной CI/CD
                vault: production/db/password # Переводит в secret: `kv-v2/data/production/db`, поле: `password`
           

          Чтобы указать пользовательский путь механизма секретов в кратком синтаксисе, добавьте суффикс, начинающийся с @ :

           задание:
            секреты:
              DATABASE_PASSWORD: # Сохраняем путь к секрету в этой переменной CI/CD
                vault: production/db/password@ops # Переводит в секрет: `ops/data/production/db`, поле: `пароль`
           
          секреты:файл

          Представлен в GitLab 14. 1 и GitLab Runner 14.1.

          Используйте secrets:file для настройки сохранения секрета как файл или переменная тип переменная CI/CD

          По умолчанию секрет передается заданию как файл тип переменной CI/CD. Значение секрет хранится в файле, а переменная содержит путь к файлу.

          Если ваше программное обеспечение не может использовать переменные типа файла CI/CD, установите файл: ложь для хранения секретное значение непосредственно в переменной.

          Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

          Возможные входы :

          • true (по умолчанию) или false .

          Пример секретов: файл :

           задание:
            секреты:
              DATABASE_PASSWORD:
                хранилище: production/db/password@ops
                файл: ложь
           

          Дополнительные сведения :

          • Ключевое слово файла является настройкой для переменной CI/CD и должно быть вложено в имя переменной CI/CD, не в разделе хранилища .

          услуги

          Используйте службы , чтобы указать дополнительный образ Docker для запуска сценариев. услуги изображение связано к изображению, указанному в ключевом слове image .

          Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

          Возможные входные данные : Имя образа службы, включая путь реестра, если необходимо, в одном из следующих форматов:

          • (То же, что и при использовании с последним тегом )
          • :
          • @

          Переменные CI/CD поддерживаются, но не для псевдонима .

          Пример службы :

           по умолчанию:
            изображение:
              имя: рубин: 2,6
              точка входа: ["/bin/bash"]
            Сервисы:
              - имя: my-postgres:11. 7
                псевдоним: db-postgres
                точка входа: ["/usr/local/bin/db-postgres"]
                команда: ["старт"]
            до_скрипта:
              - пакетная установка
          тест:
            сценарий:
              - пакетная спецификация рейка exec
           

          В этом примере задание запускает контейнер Ruby. Затем из этого контейнера запускается задание другой контейнер, на котором работает PostgreSQL. Затем задание запускает сценарии в этом контейнере.

          Похожие темы :

          • Доступные настройки для сервисов .
          • Определите службы в файле .gitlab-ci.yml .
          • Запускайте задания CI/CD в контейнерах Docker.
          • Используйте Docker для создания образов Docker.
          служба: pull_policy

          История версий

          • Представлен в GitLab 15.1 с флагом ci_docker_image_pull_policy . Отключено по умолчанию.
          • Включено на GitLab.com и самостоятельно управляется в GitLab 15. 2.
          • Обычно доступно в GitLab 15.4. Флаг функции ci_docker_image_pull_policy удален.
          • Требуется GitLab Runner 15.1 или новее.

          Политика извлечения, используемая исполнителем для получения образа Docker.

          Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть задания или в разделе по умолчанию .

          Возможные входные данные :

          • Одна политика извлечения или несколько политик извлечения в массиве. Может быть всегда , если нет , или никогда .

          Примеры service:pull_policy :

           job1:
            script: echo "Единая политика извлечения".
            Сервисы:
              - имя: postgres:11.6
                pull_policy: если нет
          задание2:
            script: echo "Несколько политик извлечения".
            Сервисы:
              - имя: postgres:11.6
                pull_policy: [всегда, если нет]
           

          Дополнительные сведения :

          • Если средство выполнения не поддерживает заданную политику извлечения, задание завершается с ошибкой, подобной следующей: ОШИБКА: Сбой задания (сбой системы): настроенные политики PullPolicies ([всегда]) не разрешены AllowedPullPolicies ([никогда]) .

          Похожие темы :

          • Запускайте задания CI/CD в контейнерах Docker.
          • Как работают политики вытягивания бегунов.
          • Использование нескольких политик вытягивания.

          этап

          Используйте stage , чтобы определить, на каком этапе выполняется задание. стадия может выполняться параллельно (см. Дополнительные сведения ).

          Если стадия не определена, задание по умолчанию использует тестовую стадию .

          Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

          Возможные входные данные : Массив, включающий любое количество имен этапов. Сценические имена могут быть:

          • Стадии по умолчанию.
          • Определяемые пользователем этапы.

          Пример ступени :

           ступеней:
            - строить
            - тест
            - развертывать
          задание1:
            этап: сборка
            сценарий:
              - echo "Это задание компилирует код. "
          задание2:
            этап: тест
            сценарий:
              - echo "Это задание проверяет скомпилированный код. Оно запускается после завершения этапа сборки."
          задание3:
            сценарий:
              - echo "Это задание также выполняется на этапе тестирования".
          задание4:
            этап: развертывание
            сценарий:
              - echo "Это задание развертывает код. Оно запускается после завершения этапа тестирования."
            среда: производство
           

          Дополнительные сведения :

          • Задания могут выполняться параллельно, если они выполняются на разных исполнителях.
          • Если у вас есть только один бегун, задания могут выполняться параллельно, если бегун одновременная настройка больше, чем 1 .
          этап: .до

          Представлено в GitLab 12.4.

          Используйте этап .pre , чтобы запустить задание в начале конвейера. .до всегда первый этап в конвейере. Определяемые пользователем этапы выполняются через .до . Вам не нужно определять .pre в этапах .

          Если конвейер содержит только задания на этапах .pre или .post , он не запускается. На другом этапе должна быть хотя бы одна другая работа.

          Тип ключевого слова : Вы можете использовать его только с ключевым словом задания этапа .

          Пример этапа : .pre :

           этапов:
            - строить
            - тест
          задание1:
            этап: сборка
            сценарий:
              - echo "Это задание выполняется на этапе сборки."
          Первая работа:
            этап: .pre
            сценарий:
              - echo "Это задание выполняется на этапе .pre перед всеми остальными этапами."
          задание2:
            этап: тест
            сценарий:
              - echo "Это задание выполняется на этапе тестирования."
           
          этап: .post

          Представлено в GitLab 12.4.

          Используйте этап .post , чтобы запустить задание в конце конвейера. .пост всегда является последней стадией конвейера. Определяемые пользователем этапы выполняются до .post . Вам не нужно определять .post в этапах .

          Если конвейер содержит только задания на этапах .pre или .post , он не запускается. На другом этапе должна быть хотя бы одна другая работа.

          Тип ключевого слова : Вы можете использовать его только с ключевым словом задания этапа .

          Пример этапа : .post :

           этапов:
            - строить
            - тест
          задание1:
            этап: сборка
            сценарий:
              - echo "Это задание выполняется на этапе сборки."
          Последнее место работы:
            этап: .post
            сценарий:
              - echo "Это задание выполняется на этапе .post после всех остальных этапов."
          задание2:
            этап: тест
            сценарий:
              - echo "Это задание выполняется на этапе тестирования."
           

          теги

          История версий

          • Ограничение в 50 тегов на задание включено на GitLab. com в GitLab 14.3.
          • Ограничение в 50 тегов на задание, включенное для самостоятельного управления в GitLab 14.3.

          Используйте теги для выбора конкретного бегуна из списка всех бегунов, которые доступны для проекта.

          При регистрации бегуна можно указать теги бегуна, для пример ruby ​​ , postgres или development . Чтобы взяться за дело и запустить его, бегун должен быть присвоен каждому тегу, указанному в задании.

          Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

          Возможные входные данные :

          • Массив имен тегов.
          • Переменные CI/CD поддерживаются в GitLab 14.1 и выше.

          Пример тегов :

           задание:
            теги:
              - Рубин
              - постгрес
           

          В этом примере только полозья с и и рубинами и теги postgres могут выполнять задание.

          Дополнительные сведения :

          • В GitLab 14.3 и более поздних версиях количество тегов должно быть меньше 50 .

          Похожие темы :

          • Используйте теги, чтобы контролировать, какие задания может выполнять бегун.
          • Выберите разные теги бегуна для каждого параллельного матричного задания.

          тайм-аут

          Представлено в GitLab 12.3.

          Использовать тайм-аут , чтобы настроить тайм-аут для определенного задания. Если работа длится дольше чем тайм-аут, задание не выполняется.

          Время ожидания на уровне задания может превышать время ожидания на уровне проекта. но не может быть больше тайм-аута бегуна.

          Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы или в раздел по умолчанию .

          Возможные входные данные : Период времени, записанный на естественном языке. Например, все они эквивалентны:

          • 3600 секунд
          • 60 минут
          • один час

          скрипт: build.sh тайм-аут: 3 часа 30 минут тест: сценарий: rspec тайм-аут: 3 часа 30 минут

          триггер

          Используйте триггер , чтобы объявить задание «триггерным заданием», которое запускает нисходящий трубопровод:

          • Многопроектный пайплайн.
          • Дочерний конвейер.

          Триггерные задания могут использовать только ограниченный набор ключевых слов конфигурации GitLab CI/CD. Ключевые слова, доступные для использования в триггерных заданиях:

          • триггер .
          • этап .
          • разрешить_сбой .
          • правила .
          • только и кроме .
          • при (только со значением on_success , on_failure или всегда ).
          • расширяет .
          • нужно , но не нужно: проект .

          Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

          Возможные входные данные :

          • Для конвейеров с несколькими проектами — путь к нижестоящему проекту. Поддерживаются переменные CI/CD в GitLab 15.3 и более поздних версиях, но не сохраняемые переменные уровня задания. В качестве альтернативы используйте `trigger:project.
          • Для дочерних конвейеров используйте триггер :include .

          Пример триггера :

           триггер-многопроектный-конвейер:
            триггер: моя группа/мой проект
           

          Дополнительные сведения :

          • Вы не можете использовать API для запуска , когда:ручной запуск заданий.
          • В GitLab 13.5 и более поздних версиях вы можно использовать , когда: вручную в том же задании, что и триггер . В GitLab 13.4 и ранее их совместное использование вызывало ошибку jobs:#{job-name}, когда должно быть on_success, on_failure или всегда .
          • Ручные переменные конвейера и запланированные переменные конвейера по умолчанию не передаются нижестоящим конвейерам. Использовать триггер: вперед для пересылки этих переменных в нижестоящие конвейеры.
          • Сохраняемые переменные уровня задания недоступны в триггерных заданиях.

          Похожие темы :

          • Примеры конфигурации многопроектного пайплайна.
          • Чтобы запустить конвейер для определенной ветки, тега или фиксации, вы можете использовать токен триггера. для аутентификации с помощью API триггеров конвейера. Токен триггера отличается от запускает ключевое слово .
          Триггер
          : включить

          Используйте триггер : включите , чтобы объявить задание «триггерным заданием», которое запускает дочерний трубопровод.

          Используйте trigger:include:artifact для запуска динамического дочернего конвейера.

          Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

          Возможные входные данные :

          • Путь к файлу конфигурации дочернего конвейера.

          Пример триггера : включить :

           триггер-дочерний конвейер:
            курок:
              включают: путь/к/child-pipeline.gitlab-ci.yml
           

          Похожие темы :

          • Примеры конфигурации дочернего конвейера.
          Триггер
          : проект

          Используйте trigger:project , чтобы объявить задание «триггерным заданием», которое запускает многопроектный пайплайн.

          По умолчанию многопроектный конвейер запускается для ветви по умолчанию. Используйте триггер: ветвь чтобы указать другую ветвь.

          Тип ключевого слова : Ключевое слово работы. Вы можете использовать его только как часть работы.

          Возможные входы :

          • Путь к нижестоящему проекту. Поддерживаются переменные CI/CD в GitLab 15.3 и более поздних версиях, но не сохраняемые переменные уровня задания.

          Пример триггера : проект :

           триггер-мультипроект-конвейер:
            курок:
              проект: моя группа/мой проект
           

          Пример триггера : проект для другой ветки :

           триггер-мультипроект-конвейер:
            курок:
              проект: моя группа/мой проект
              отрасль: разработка
           

          Похожие темы :

          • Примеры конфигурации многопроектного пайплайна.
          • Чтобы запустить конвейер для определенной ветки, тега или фиксации, вы также можете использовать токен триггера. для аутентификации с помощью API триггеров конвейера. Токен триггера отличается от запускает ключевое слово .
          триггер:стратегия

          Используйте триггер : стратегия , чтобы заставить задание триггера ожидать завершения нисходящего конвейера прежде чем он будет помечен как , успех .

          Это поведение отличается от поведения по умолчанию, которое заключается в том, что задание триггера помечается как успех , как только нижестоящий конвейер будет создан.

          Этот параметр делает выполнение конвейера линейным, а не параллельным.

          Пример триггера : стратегия :

           trigger_job:
            курок:
              включают: путь/к/child-pipeline.yml
              стратегия: зависеть
           

          В этом примере задания из последующих стадий ожидают запуска запущенного конвейера. успешно завершить перед началом.

          Дополнительная информация :

          • Дополнительные ручные задания в нисходящем конвейере не влияют на состояние нижестоящего конвейера или вышестоящего триггерного задания. Нисходящий конвейер может успешно завершиться без выполнения каких-либо дополнительных ручных заданий.
          • Блокирование ручных заданий в нисходящем конвейере должен выполняться до того, как задание триггера будет помечено как успешное или неудачное. Триггерная работа показывает в ожидании (), если статус нижестоящего конвейера ожидание ручного действия () из-за ручных заданий. По умолчанию, задания на более поздних этапах не запускаются до тех пор, пока не завершится задание триггера.
          триггер:вперед

          История версий

          • Представлен в GitLab 14.9 с флагом 9.0031 ci_trigger_forward_variables . Отключено по умолчанию.
          • Включено на GitLab.com и самоуправляемо в GitLab 14.10.
          • Общедоступно в GitLab 15.1. Флаг функции ci_trigger_forward_variables удален.

          Используйте триггер :forward , чтобы указать, что пересылать в нижестоящий конвейер. Вы можете контролировать что пересылается в оба родительско-дочерних конвейера и многопроектные пайплайны.

          Возможные входы :

          • yaml_variables : true (по умолчанию) или false . Когда true , определены переменные в задании триггера передаются нижестоящим конвейерам.
          • pipe_variables : true или false (по умолчанию). Когда true , ручные переменные конвейера и запланированные переменные конвейера передаются в нисходящие трубопроводы.

          Пример триггера :вперед :

          Запустить этот конвейер вручную с помощью переменная CI/CD MYVAR = мое значение :

           переменных: # переменные по умолчанию для каждого задания
            ВАР: значение
          # Поведение по умолчанию:
          # - VAR передается потомку
          # - MYVAR не передается потомку
          ребенок1:
            курок:
              включают: .child-pipeline.yml
          # Переменные прямого конвейера:
          # - VAR передается потомку
          # - MYVAR передается потомку
          ребенок2:
            курок:
              включают: .child-pipeline.yml
              вперед:
                pipe_variables: правда
          # Не пересылать переменные YAML:
          # - VAR не передается потомку
          # - MYVAR не передается потомку
          ребенок3:
            курок:
              включают: . child-pipeline.yml
              вперед:
                yaml_variables: ложь
           

          переменные

          Переменные CI/CD — это настраиваемые значения, которые передаются заданиям. Используйте переменные для создания пользовательских переменных.

          Переменные всегда доступны в командах script , before_script и after_script . Вы также можете использовать переменные в качестве входных данных в некоторых ключевых словах работы.

          Тип ключевого слова : Глобальное и рабочее ключевое слово. Вы можете использовать его на глобальном уровне, а также на уровне работы.

          Если вы определяете переменные на глобальном уровне, каждая переменная копируется в каждой конфигурации задания при создании конвейера. Если работа уже имеет это определена переменная, переменная уровня задания имеет приоритет.

          Возможные входные данные : Пары имени и значения переменной:

          • Имя может использовать только цифры, буквы и знаки подчеркивания ( _ ). В некоторых оболочках первый символ должен быть буквой.
          • Значение должно быть строкой.

          Поддерживаются переменные CI/CD.

          Примеры переменных :

           переменных:
            DEPLOY_SITE: "https://example.com/"
          развертывание_работа:
            этап: развертывание
            сценарий:
              --deploy-script --url $DEPLOY_SITE --path "/"
            среда: производство
          deploy_review_job:
            этап: развертывание
            переменные:
              REVIEW_PATH: "/обзор"
            сценарий:
              --deploy-review-script --url $DEPLOY_SITE --path $REVIEW_PATH
            среда: производство
           

          Дополнительная информация :

          • Все переменные, определенные YAML, также устанавливаются для любых связанных сервисных контейнеров Docker.
          • Переменные, определенные в YAML, предназначены для неконфиденциальной конфигурации проекта. Хранить конфиденциальную информацию в защищенных переменных или секретах CI/CD.
          • Ручные переменные конвейера и запланированные переменные конвейера по умолчанию не передаются нижестоящим конвейерам. Использовать триггер: вперед для пересылки этих переменных в нижестоящие конвейеры.

          Похожие темы :

          • Вы можете использовать привязки YAML для переменных.
          • Предопределенные переменные — это переменные, которые бегун автоматически создает и делает доступными в задании.
          • Вы можете настроить поведение бегуна с помощью переменных.
          переменные:описание

          Представлено в GitLab 13.7.

          Используйте ключевое слово description для определения предварительно заполненной переменной конвейерного уровня (глобальной). при запуске конвейера вручную.

          Должен использоваться со значением для значения переменной.

          Тип ключевого слова : Глобальное ключевое слово. Вы не можете установить переменные уровня задания для предварительного заполнения при запуске конвейера вручную.

          Возможные входы :

          • Строка.

          Пример переменных: описание :

           переменных:
            РАЗВЕРТЫВАНИЕ_СРЕДЫ:
              значение: "постановка"
              description: "Цель развертывания. При необходимости измените эту переменную на "canary" или "production".
           

          когда

          Используйте вместо , чтобы настроить условия запуска заданий. Если не определено в задании, значение по умолчанию , когда: on_success .

          Тип ключевого слова : Ключевое слово работы. Вы можете использовать его как часть работы. когда: всегда и когда: никогда также можно использовать в рабочем процессе : правила .

          Возможные входы :

          • on_success (по умолчанию): выполнение задания только в том случае, если все задания на более ранних этапах завершатся успешно. или есть allow_failure: правда .
          • manual : Запуск задания только при ручном запуске.
          • всегда : Запускать задание независимо от состояния заданий на более ранних этапах. Также может использоваться в рабочем процессе : правила .
          • on_failure : Запускать задание только в случае сбоя хотя бы одного задания на более раннем этапе.
          • задержано : Задержка выполнения задания на указанную продолжительность.
          • никогда : Не запускать задание. Можно использовать только в раздел правил или рабочий процесс : правила .

          Пример при :

           ступеней:
            - строить
            - cleanup_build
            - тест
            - развертывать
            - уборка
          build_job:
            этап: сборка
            сценарий:
              - сделать сборку
          cleanup_build_job:
            этап: cleanup_build
            сценарий:
              - сборка очистки при сбое
            когда: on_failure
          test_job:
            этап: тест
            сценарий:
              - сделать тест
          развертывание_работа:
            этап: развертывание
            сценарий:
              - сделать развертывание
            когда: вручную
            среда: производство
          задание_очистки:
            этап: уборка
            сценарий:
              - уборка после работы
            когда: всегда
           

          В этом примере сценарий:

          1. Выполняет cleanup_build_job только в случае сбоя build_job .
          2. Всегда выполняет cleanup_job как последний шаг в конвейере, независимо от успех или неудача.
          3. Выполняет deploy_job , когда вы запускаете его вручную в пользовательском интерфейсе GitLab.

          Дополнительные сведения :

          • В GitLab 13.5 и более поздних версиях вы можно использовать , когда: вручную в том же задании, что и триггер . В GitLab 13.4 и ранее их совместное использование вызывало ошибку jobs:#{job-name}, когда должно быть on_success, on_failure или всегда .
          • Поведение по умолчанию allow_failure изменяется на true с , когда: вручную . Однако, если вы используете , когда: вручную с правилами , allow_failure по умолчанию к ложный .

          Похожие темы :

          • , когда можно использовать с правилами для более динамичного управления заданиями.
          • , когда можно использовать с рабочим процессом для управления запуском конвейера.

          Устаревшие ключевые слова

          Следующие ключевые слова устарели.

          Глобально определенный

          образ , службы , кэш , before_script , after_script

          Определение изображения , услуги , кэш , before_script и after_script глобально устарел. Поддержка может быть удалена из будущего выпуска.

          Вместо этого используйте по умолчанию . Например:

           по умолчанию:
            изображение: рубин: 3.0
            Сервисы:
              - докер: дин
            кеш:
              пути: [поставщик/]
            до_скрипта:
              - Конфигурация пакета устанавливает путь поставщика/пакета
              - пакетная установка
            после_скрипта:
              -гм -рф тмп/
           

          Безопасность и защита | мое социальное обеспечение

          Проверка личности

          Мы стремимся защищать вашу информацию и льготы и серьезно относимся к этой ответственности. Вот почему мы просим вас подтвердить свою личность, чтобы создать личную учетную запись my Social Security. Мы работаем с внешними партнерами для надежной проверки вашей личности. Мы делаем это, чтобы защитить ваши данные и упростить использование наших онлайн-сервисов.

          Готовы зарегистрироваться? Теперь вы можете создать новую учетную запись my Social Security через нашего партнера по учетным данным, Login.gov, или вы можете получить доступ к своей информации, используя свою учетную запись ID.me, если она у вас есть.

          • Login.gov — это ваша единственная государственная учетная запись для простого, безопасного и частного доступа к участвующим правительственным учреждениям США.
          • ID.me — это поставщик услуг единого входа, который соответствует требованиям правительства США к онлайн-подтверждению личности и аутентификации.

          Учетные данные включают ваше имя пользователя, пароль и факторы двухэтапной проверки. Надежный партнер по учетным данным помогает нам безопасно подтвердить вашу личность в Интернете.

          Создать учетную запись Войти

          Щелкните здесь для получения дополнительной информации о том, как войти в систему или создать учетную запись.

          Защита вашей учетной записи

          Интернет-мошенники используют хитрые «фишинговые» схемы, чтобы ежегодно обманывать миллионы людей. Фишинг — это практика использования методов социальной инженерии по электронной почте, чтобы заставить получателя раскрыть личную информацию, щелкнуть вредоносную ссылку или открыть вредоносное вложение.

          Как обнаружить фишинговое письмо, выдающее себя за Social Security?

          • Большинство электронных писем от Службы социального обеспечения приходят с адреса электронной почты «.gov». Если адрес электронной почты не заканчивается на «.gov», соблюдайте осторожность, прежде чем открывать вложения или нажимать изображения или ссылки в электронном письме. В настоящее время Служба социального обеспечения отправляет электронные письма с адресов [email protected], [email protected], [email protected], [email protected] и echosign.com.
            • В некоторых случаях мы используем маркетинговые фирмы для повышения осведомленности об онлайн-услугах Social Security, включая создание моей учетной записи Social Security. Мы разрешаем этим фирмам отправлять электронную почту напрямую физическим лицам. Любые ссылки, которые вы найдете в этих электронных письмах, всегда должны указывать на веб-адрес «.gov/».
          • Ссылки, логотипы или изображения в теле официального электронного письма службы социального обеспечения всегда ведут на официальный веб-сайт службы социального обеспечения. Вместо того, чтобы полагаться на то, как выглядит ссылка, выполните следующие действия, чтобы подтвердить подлинность ссылки:
            • Чтобы проверить веб-адрес ссылки или изображения, наведите на них указатель мыши, пока не появится текстовое поле с веб-адресом. Это фактический адрес, на который вас перенаправят, и он всегда должен включать «.gov/». Косая черта всегда должна следовать за доменом «.gov».
            • Пример — https://www.ssa.gov/myaccount/
            • Ссылки на официальный сайт социального обеспечения всегда начинаются с https://www.ssa.gov/ или https://secure.ssa.gov/.
          • Ниже приведены примеры мошеннических веб-сайтов, якобы направляющих вас в Службу социального обеспечения. Обратите внимание на расположение косой черты.
            • https://www.socialsecurity.gov.gmx.de/
            • http://www.socialsecurity.gov.bx.co.rx/setup

          Что делать, если я получил фишинговое электронное письмо, якобы отправленное Службой социального обеспечения?

          • Если вы не уверены, что электронное письмо, которое вы получили, поступило от Службы социального обеспечения или одной из наших маркетинговых фирм, НЕ НЕ отвечайте на электронное письмо и не нажимайте на любые ссылки, содержащиеся в электронном письме.
          • Сообщите об инциденте, переслав подозрительное электронное письмо в Группу готовности к компьютерным чрезвычайным ситуациям США (US-CERT) по адресу [email protected]. (http://www.us-nocert.gov/nav/report_phishing.html).

          Какие еще советы я могу использовать для обнаружения фишинговых писем?

          • Проверить отправителя. Будьте осторожны при получении электронной почты от отправителя, которого вы не знаете или о котором давно не слышали. Наведите указатель мыши на адрес электронной почты «От», чтобы убедиться, что он совпадает с отображаемым адресом электронной почты или именем отправителя.
          • Ищите неправильный выбор формулировки, формулировки или правописания.
          • Если электронное письмо содержит название компании, номер телефона или ссылку на веб-сайт, проверьте легитимность этих элементов, выполнив поиск официального номера или веб-сайта в поисковой системе.
          • Не отвечайте на электронные письма с запросом личной информации. Компании с хорошей репутацией и государственные учреждения не будут запрашивать у вас личную информацию по электронной почте.

          Есть ли другие ресурсы, которые я могу использовать, чтобы узнать больше о фишинге?

          Во избежание проблем с безопасностью обновляйте веб-браузер. Для получения дополнительной информации о «фишинге» перейдите на сайт OnGuard Online.

          Other Common Sources // Purdue Writing Lab

          Резюме:

          Стиль MLA (Modern Language Association) чаще всего используется для написания статей и цитирования источников в области гуманитарных и гуманитарных наук. Этот ресурс, обновленный с учетом Справочника MLA (8 th ed.), предлагает примеры для общего формата исследовательских работ MLA, цитирования в тексте, примечаний/сносок и страницы цитируемых работ.

          Несколько источников имеют несколько способов цитирования, особенно те, которые появляются в различных форматах: фильмы, DVD, телешоу, музыка, опубликованные и неопубликованные интервью, интервью по электронной почте, опубликованные и неопубликованные материалы конференций. В следующем разделе обсуждаются эти виды цитат, а также другие, не охваченные в разделах печатных, периодических и электронных источников.

          Используйте следующий формат для всех источников:

          Автор. Заголовок. Название контейнера (автономное, если книга), Другие участники (переводчики или редакторы), Версия (издание), Номер (том и/или №), Издатель, Дата публикации, Местоположение (страницы, абзацы URL или DOI). 2 и название контейнера, другие участники, версия, номер, издатель, дата публикации, местоположение, дата доступа (если применимо).

          Интервью

          Интервью обычно делятся на две категории: печатные или опубликованные в эфире и неопубликованные (личные) интервью, хотя интервью могут также появляться в других подобных форматах, например, в формате электронной почты или в виде веб-документа.

          Личные беседы

          Личные беседы — это те беседы, которые вы проводите сами. Перечислите интервью по имени интервьюируемого. Включите дескриптор Личное интервью и дату интервью.

          Смит, Джейн. Личное интервью. 19 мая 2014 г.

          Опубликованные интервью (в печати или в эфире)

          Перечислите интервью по полному имени интервьюируемого. Если название интервью является частью более крупного произведения, такого как книга, телевизионная программа или серия фильмов, поместите название интервью в кавычки, а название более крупного произведения — курсивом. Если интервью появляется как самостоятельный заголовок, выделите его курсивом. Для книг укажите имя автора или редактора после названия книги.

          Примечание. Если интервью, из которого вы цитируете, не имеет заголовка, добавьте дескриптор Интервью по (неформатированный) после имени интервьюируемого и перед именем интервьюера.

          Гейтскилл, Мэри. Интервью с Чарльзом Боком. Mississippi Review , vol. 27, нет. 3, 1999, стр. 129-50.

          Эмис, Кингсли. «Мимик и моралист». Интервью с британскими разгневанными молодыми людьми , Дейл Салвак, Борго П. , 1984.

          Интервью, опубликованные только в Интернете

          Перечислите интервью по имени интервьюируемого. Если у интервью есть название, поместите его в кавычки. Цитируйте оставшуюся часть статьи так же, как и любой другой эксклюзивный веб-контент. Выделите название веб-сайта курсивом, укажите имя издателя (или спонсора), дату публикации и URL-адрес.

          Примечание. Если интервью, из которого вы цитируете, не имеет заголовка, добавьте дескриптор Интервью (неформатированный) после имени интервьюируемого и перед именем интервьюера.

          Зинкевич, Крейг. Интервью Гарета фон Калленбаха. Skewed & Reviewed , 27 апреля 2009 г., www.arcgames.com/en/games/star-trek-online/news/detail/1056940-skewed-%2526-reviewed-interviews-craig. По состоянию на 15 мая 2009 г.

          Речи, лекции или другие устные презентации (включая презентации на конференциях)

          Начните с имени докладчика. Затем дайте название выступления (если есть) в кавычках. Затем укажите название конкретной конференции или встречи, а затем название организации. Назовите место проведения и его город (если название города не указано в названии места проведения). Используйте дескриптор, который надлежащим образом выражает тип презентации (например, обращение, лекция, чтение, программная речь, гостевая лекция, презентация на конференции).

          Стейн, Боб. «Чтение и письмо в цифровую эпоху». Конференция «Открытие цифровых измерений, компьютеров и письма», 23 мая 2003 г., отель Union Club, Вест-Лафайет, Индиана. Основной доклад.

          Панельные дискуссии и сеансы вопросов и ответов

          Справочник MLA проводит различие между формальной, отрепетированной частью презентации и неформальным обсуждением, которое часто происходит после нее. Чтобы отформатировать запись для панельной дискуссии или сеанса вопросов и ответов, относитесь к участникам панели или спикерам как к авторам, указав их первыми. Если эти люди официально указаны в качестве участников дискуссии, укажите это, поставив после их имен запятую и назвав их «участник(и) панели». Далее укажите название обсуждения или, если его нет, простое описание. В последнем случае не используйте заглавные буквы в описании. После этого укажите название конференции или мероприятия. Закончите датой и местом.

          Бавис, Джим и Штейн, Тамми, участники дискуссии. Панельная дискуссия. Конференция Dawn or Doom, 4 ноября 2018 г., Стюарт Холл, Университет Пердью, Уэст-Лафайет, Индиана.

          Рассматривайте записанные обсуждения как экземпляры соответствующего носителя (например, если вы хотите процитировать запись панельной дискуссии, размещенную на YouTube, цитируйте ее так же, как обычное онлайн-видео).

          Опубликованные материалы конференции

          Цитируйте опубликованные материалы конференции как книгу. Если дата и место проведения конференции не являются частью опубликованного названия, добавьте эту информацию после названия опубликованного материала.

          Фамилия, Имя, редактор. Название конференции , Дата и место проведения конференции, Издатель, Дата публикации.

          Чтобы процитировать презентацию из опубликованных материалов конференции, начните с имени докладчика. Поместите название презентации в кавычки. Следите за публикацией информации о материалах конференции.

          Фамилия, Имя. «Название доклада конференции». Название конференции, включающее дату и место проведения конференции , отредактировано редактором(ами) конференции, издателем, датой публикации.

          Картина, скульптура или фотография

          Укажите имя художника, название произведения курсивом и дату создания. Наконец, укажите название учреждения, в котором хранится произведение искусства, а затем местонахождение учреждения (если это место не указано в названии учреждения, например, Художественный институт Чикаго).

          Гойя, Франциско. Семья Карла IV . 1800 г., Музей Прадо, Мадрид.

          Если носитель и/или материалы (например, холст, масло) важны для ссылки, вы можете указать эту информацию в конце статьи. Однако это не обязательно.

          Для фотографических репродукций произведений искусства (например, изображений произведений искусства в книге) относитесь к книге или веб-сайту как к контейнеру. Помните, что для второго контейнера заголовок указывается первым, перед вкладчиками. Процитируйте библиографическую информацию, как указано выше, а затем информацию об источнике, в котором появляется фотография, включая страницы или номера ссылок (табличка, рисунок и т. д.).

          Гойя, Франциско. Семья Карла IV . 1800 г., Музей Прадо, Мадрид. Gardener’s Art Through the Ages , 10 th ed., Ричард Г. Тэнси и Фред С. Кляйнер, Harcourt Brace, p. 939.

          Если вы просматривали произведение искусства на веб-сайте музея, используйте название веб-сайта как контейнер и укажите издателя веб-сайта и URL-адрес в конце цитаты. Не указывайте информацию об издателе, если она совпадает с названием веб-сайта. Обратите внимание на точку после даты ниже, а не на запятую: это потому, что дата относится к оригинальному созданию картины, а не к ее публикации на веб-сайте. Таким образом, формат MLA считает его «необязательным элементом».

          Гойя, Франциско. Семья Карла IV . 1800. Музей Прадо,

          Песня или альбом

          Музыку можно цитировать несколькими способами. В основном это зависит от контейнера, из которого вы получили доступ к музыке. Как правило, цитаты начинаются с имени исполнителя. Они также могут быть перечислены композиторами или исполнителями. В противном случае укажите информацию о композиторе и исполнителе после названия альбома. Поместите названия отдельных песен в кавычки. Названия альбомов выделены курсивом. Укажите название производителя записи, а затем дату публикации.

          Если такая информация, как лейбл звукозаписи или название альбома, недоступна из вашего источника, не указывайте эту информацию.

          Spotify

          Рэй Моррис. «Кожа.» Cold, Atlantic Records, 2014. Spotify , open.spotify.com/track/0OPES3Tw5r86O6fudK8gxi.

          Интернет-альбом

          Бейонсе. «Молись, поймай меня». Lemonade, Parkwood Entertainment, 2016, www.beyonce.com/album/lemonade-visual-album/.

          CD

          Нирвана. «Smells Like Teen Spirit.» Nevermind , Геффен, 1991.

          Фильмы или фильмы

          Список фильмов по названию. Укажите имя режиссера, киностудии или дистрибьютора и год выпуска. Если уместно, перечислите имена исполнителей после имени режиссера.

          Скоростной гонщик . Режиссеры Лана Вачовски и Лилли Вачовски, выступления Эмиля Хирша, Николаса Элиа, Сьюзан Сарандон, Ариэля Винтера и Джона Гудмана, Warner Brothers, 2008 г.

          Чтобы выделить конкретных исполнителей или режиссеров, начните цитату с имени желаемого исполнителя или режиссера, за которым следует соответствующий титул для этого человека.

          Лукас, Джордж, директор. Звёздные войны. Эпизод IV: Новая надежда . Twentieth Century Fox, 1977.

          Телешоу

          Записанные телевизионные эпизоды

          Цитируйте записанные телевизионные эпизоды, такие как фильмы (см. выше). Начните с названия эпизода в кавычках. Далее следует название серии, выделенное курсивом. Если название коллекции записей отличается от оригинальной серии (например, шоу «Друзья» выходит на DVD под названием «Друзья: полный шестой сезон»), укажите название, которое поможет исследователям найти запись. Укажите имя дистрибьютора, а затем дату распространения.

          «Эпизод, в котором Чендлер не может плакать». Friends: The Complete Sixth Season , сценарий Эндрю Рейха и Теда Коэна, режиссер Кевин Брайт, Warner Brothers, 2004 г. Укажите название сериала или программы курсивом. Также укажите название сети, позывные станции, дату трансляции и город.

          «Путь Благословения». Секретные материалы . Fox, WXIA, Атланта, 19 июля 1998 г.

          Netflix, Hulu, Google Play

          Как правило, цитируя конкретный эпизод, придерживайтесь приведенного ниже формата.

          «94 встречи». Парки и зоны отдыха, сезон 2, серия 21, NBC, 29 апреля 2010 г. Netflix, www.netflix.com/watch/70152031.

          Весь телесериал

          При цитировании всего телесериала используйте следующий формат.

          Дэниелс, Грег и Майкл Шур, создатели. Парки и зоны отдыха . Deedle-Dee Productions и Universal Media Studios, 2015.

          Конкретное выступление или аспект телешоу

          Если вы хотите подчеркнуть определенный аспект шоу, включите эту конкретную информацию. Например, если вы пишете о конкретном персонаже в определенном эпизоде, укажите имя исполнителя, а также имя создателя.

          «94 встречи». Парки и зоны отдыха, , созданные Грегом Дэниэлсом и Майклом Шуром, перформанс Эми Полер, сезон 2, серия 21, Deedle-Dee Productions и Universal Media Studios, 2010 г.

          Если вы хотите выделить определенного персонажа на протяжении всего шоу, используйте этот формат.

          Полер, Эми, исполнитель. Парки и зоны отдыха. Deedle-Dee Productions и Universal Media Studios, 2009–2015 гг.

          Подкасты

          Начните с названия эпизода в кавычках. Напишите название серии курсивом. Затем следуйте обычному формату MLA.

          «Лучшие музыканты не по моей работе». Подожди, подожди… Не говори мне! из NPR, 4 июня 2016 г., www.npr.org/podcasts/34409.8539/подожди-подожди-не-говори-мне.

          Разговорные альбомы, такие как комедийные альбомы

          С разговорными альбомами следует обращаться так же, как с музыкальными альбомами.

          Хедберг, Митч. Стратегические гриль-бары . Comedy Central, 2003.

          Цифровые файлы (PDF, MP3, JPEG)

          Определите тип цитируемого произведения (например, статья, изображение, звукозапись) и цитируйте надлежащим образом. Завершите запись названием цифрового формата (например, PDF, файл JPEG, файл Microsoft Word , MP3). Если работа не соответствует традиционным параметрам цитирования, укажите имя автора, название работы, дату создания и местонахождение.

          Бетховен, Людвиг ван. Лунная соната .

          Добавить комментарий

          Ваш адрес email не будет опубликован. Обязательные поля помечены *