Версия
Уровень стабильности
Операционная система

Установить werf
для

Установка зависимостей

Docker

Docker CE installation guide.

Чтобы получить доступ к использованию docker-server для текущего пользователя системы, необходимо добавить его в группу docker:

sudo groupadd docker
sudo usermod -aG docker $USER

Утилита Git

Git installation guide.

  • Минимальная требуемая версия: 1.9.0.
  • Минимальная версия для использования функционала Git Submodules: 2.14.0

Установка werf

Установка multiwerf

# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.2 alpha --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.2 alpha --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.2 alpha --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.2 beta --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.2 beta --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.2 beta --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.2 ea --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.2 ea --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.2 ea --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.2 stable --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.2 stable --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.2 stable --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.2 rock-solid --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.2 rock-solid --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.2 rock-solid --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.1 alpha --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.1 alpha --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.1 alpha --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.1 beta --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.1 beta --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.1 beta --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.1 ea --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.1 ea --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.1 ea --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.1 stable --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.1 stable --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.1 stable --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.1 rock-solid --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.1 rock-solid --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.1 rock-solid --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.0 alpha --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.0 alpha --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.0 beta --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.0 beta --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.0 beta --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.0 ea --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.0 ea --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.0 ea --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.0 stable --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.0 stable --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.0 stable --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.0 rock-solid --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.0 rock-solid --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.0 rock-solid --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.2 alpha --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.2 alpha --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.2 alpha --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.2 beta --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.2 beta --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.2 beta --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.2 ea --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.2 ea --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.2 ea --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.2 stable --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.2 stable --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.2 stable --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.2 rock-solid --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.2 rock-solid --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.2 rock-solid --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.1 alpha --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.1 alpha --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.1 alpha --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.1 beta --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.1 beta --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.1 beta --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.1 ea --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.1 ea --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.1 ea --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.1 stable --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.1 stable --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.1 stable --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.1 rock-solid --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.1 rock-solid --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.1 rock-solid --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.0 alpha --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.0 alpha --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.0 beta --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.0 beta --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.0 beta --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.0 ea --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.0 ea --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.0 ea --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.0 stable --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.0 stable --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.0 stable --as-file)
# Теперь можно использовать werf
werf ...
# add ~/bin into PATH
export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

# install multiwerf into ~/bin directory
mkdir -p ~/bin
cd ~/bin
curl -L https://raw.githubusercontent.com/werf/multiwerf/master/get.sh | bash
Использование werf в текущей сессии shell

Следующий вызов создаст shell-функцию werf, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:

source $(multiwerf use 1.0 rock-solid --as-file)
werf version
...
Опционально: автоматически активировать werf при запуске терминала
echo '. $(multiwerf use 1.0 rock-solid --as-file)' >> ~/.bashrc

Как использовать в CI/CD системе?

Во-первых необходимо удостовериться, что бинарный файл multiwerf доступен для исполнения с помощью команды type. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.

Во-вторых необходимо активировать исполняемую команду werf в текущем экземпляре shell в CI/CD.

type multiwerf && . $(multiwerf use 1.0 rock-solid --as-file)
# Теперь можно использовать werf
werf ...
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.2 alpha --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.2 alpha --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.2 beta --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.2 beta --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.2 ea --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.2 ea --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.2 stable --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.2 stable --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.2 rock-solid --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.2 rock-solid --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.1 alpha --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.1 alpha --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.1 beta --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.1 beta --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.1 ea --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.1 ea --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.1 stable --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.1 stable --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.1 rock-solid --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.1 rock-solid --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.0 alpha --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.0 alpha --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.0 beta --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.0 beta --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.0 ea --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.0 ea --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.0 stable --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.0 stable --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%
PowerShell
$MULTIWERF_BIN_PATH = "C:\ProgramData\multiwerf\bin"
mkdir $MULTIWERF_BIN_PATH

Invoke-WebRequest -Uri https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe -OutFile $MULTIWERF_BIN_PATH\multiwerf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$MULTIWERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Использование werf в текущей сессии shell
Invoke-Expression -Command "multiwerf use 1.0 rock-solid --as-file --shell powershell" | Out-String -OutVariable WERF_USE_SCRIPT_PATH
. $WERF_USE_SCRIPT_PATH.Trim()
cmd.exe

Необходимо запустить cmd.exe от имени администратора и затем выполнить следующие команды:

set MULTIWERF_BIN_PATH="C:\ProgramData\multiwerf\bin"
mkdir %MULTIWERF_BIN_PATH%
bitsadmin.exe /transfer "multiwerf" https://flant.bintray.com/multiwerf/v1.3.0/multiwerf-windows-amd64-v1.3.0.exe %MULTIWERF_BIN_PATH%\multiwerf.exe
setx /M PATH "%PATH%;%MULTIWERF_BIN_PATH%"

После этого можно открыть новую сессию cmd.exe и начать пользоваться multiwerf.

Использование werf в текущей сессии shell
FOR /F "tokens=*" %g IN ('multiwerf use 1.0 rock-solid --as-file --shell cmdexe') do (SET WERF_USE_SCRIPT_PATH=%g)
%WERF_USE_SCRIPT_PATH%

Как это работает?

Команда multiwerf use MAJOR.MINOR CHANNEL активирует определённую версию werf и автоматически обновляет werf до последней актуальной версии. Данную команду можно использовать как в CI/CD системе, так и на локальной машине. Команда печатает на экран скрипт (или путь до временного файла, содержащего скрипт — при использовании опции --as-file). Данный скрипт необходимо выполнить, например, с помощью директивы source в shell. В результате работы данного скрипта активируется определённая версия werf в данной shell-сессии.

Данный скрипт можно разбить на 2 логических этапа: обновление и создание символьного имени werf, которое связано с бинарным файлом определённой версии werf (в зависимости от используемого shell, это может быть shell-алиас или shell-функция). На этапе обновления происходит автоматическое обновление самого бинарника multiwerf, затем получение актуальной версии бинарника werf, соответствующего указанным параметрам MAJOR.MINOR и CHANNEL (см. больше информации про гарантии обратной совместимости версий werf. Этап обновления можно запустить отдельно командой multiwerf update.

В случае если скрипт был запущен впервые, он будет ожидать пока multiwerf скачает подходящую версию werf. Иначе, если на локальной машине уже есть какая-то версия werf, то скрипт активирует её, а обновление запустится в фоновом режиме. Соответственно при следующем запуске будет активирована уже обновлённая версия werf.

if multiwerf werf-path MAJOR.MINOR CHANNEL >~/.multiwerf/multiwerf_use_first_werf_path.log 2>&1; then
    multiwerf update MAJOR.MINOR CHANNEL --in-background --output-file=~/.multiwerf/multiwerf_use_background_update.log --with-cache
else
    multiwerf update MAJOR.MINOR CHANNEL
fi

WERF_PATH=$(multiwerf werf-path MAJOR.MINOR CHANNEL)
WERF_FUNC=$(cat <<EOF
werf()
{
    $WERF_PATH "\$@"
}
EOF
)

eval "$WERF_FUNC"
if ((Invoke-Expression -Command "multiwerf werf-path MAJOR.MINOR CHANNEL" | Out-String -OutVariable WERF_PATH) -and ($LastExitCode -eq 0)) {
    multiwerf update MAJOR.MINOR CHANNEL --in-background --output-file=~\.multiwerf\multiwerf_use_background_update.log --with-cache
} else {
    multiwerf update MAJOR.MINOR CHANNEL
    Invoke-Expression -Command "multiwerf werf-path MAJOR.MINOR CHANNEL" | Out-String -OutVariable WERF_PATH
}

function werf { & $WERF_PATH.Trim() $args }
FOR /F "tokens=*" %%g IN ('multiwerf werf-path MAJOR.MINOR CHANNEL') do (SET WERF_PATH=%%g)

IF %ERRORLEVEL% NEQ 0 (
    multiwerf update MAJOR.MINOR CHANNEL
    FOR /F "tokens=*" %%g IN ('multiwerf werf-path MAJOR.MINOR CHANNEL') do (SET WERF_PATH=%%g)
) ELSE (
    multiwerf update MAJOR.MINOR CHANNEL --in-background --output-file=~\.multiwerf\multiwerf_use_background_update.log --with-cache
)

DOSKEY werf=%WERF_PATH% $*

Во время этапа обновления, multiwerf попытается скачать требуемую версию werf на основе файла соответствия версий и каналов. По умолчанию multiwerf использует файл соответствия версий, который объявлен в репозитории werf: https://github.com/werf/werf/blob/multiwerf/multiwerf.json. Однако с помощью опции --channel-mapping-url можно указать любой url, по которому может быть доступен произвольный файл соответствия версий и каналов.

Данный подход позволяет пользователю не думать об обновлениях werf и получать исправления проблем и новые возможности автоматически как в CI/CD системе, так и на локальной машине.

Последний релиз может быть найден на данной странице

curl -L https://dl.bintray.com/flant/werf/v1.1.21+fix22/werf-linux-amd64-v1.1.21+fix22 -o /tmp/werf
chmod +x /tmp/werf
sudo mv /tmp/werf /usr/local/bin/werf
curl -L https://dl.bintray.com/flant/werf/v1.1.21+fix22/werf-darwin-amd64-v1.1.21+fix22 -o /tmp/werf
chmod +x /tmp/werf
sudo mv /tmp/werf /usr/local/bin/werf
PowerShell
$WERF_BIN_PATH = "C:\ProgramData\werf\bin"
mkdir $WERF_BIN_PATH

Invoke-WebRequest -Uri https://dl.bintray.com/flant/werf/v1.1.21+fix22/werf-windows-amd64-v1.1.21+fix22.exe -OutFile $WERF_BIN_PATH\werf.exe

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + "$WERF_BIN_PATH",
    [EnvironmentVariableTarget]::Machine)

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
cmd.exe (run as Administrator)
set WERF_BIN_PATH="C:\ProgramData\werf\bin"
mkdir %WERF_BIN_PATH%
bitsadmin.exe /transfer "werf" https://dl.bintray.com/flant/werf/v1.1.21+fix22/werf-windows-amd64-v1.1.21+fix22.exe %WERF_BIN_PATH%\werf.exe
setx /M PATH "%PATH%;%WERF_BIN_PATH%"

# open new cmd.exe session and start using werf
go get github.com/werf/werf/cmd/werf

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

  • Alpha
    быстро доставляет новые возможности
    однако может быть нестабильным
  • Beta
    для более широкого тестирования
    новых возможностей с целью
    обнаружить проблемы
  • Early-Access
    достаточно безопасен для использования
    в некритичных окружениях и для
    локальной разработки,
    позволяет раньше получать новые возможности
  • Stable
    безопасен и рекомендуется для широкого
    использования в любых окружениях,
    как вариант по умолчанию.
  • Rock-Solid
    наиболее стабильный канал,
    рекомендован для критичных окружений
    со строгими требованиями SLA. the most stable channel
    and recommended for usage
    in critical environments with tight SLA

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

Связи между каналом стабильности и конкретной версией werf описываются в специально файле multiwerf.json.

Мы гарантируем, что релиз из канал Early-Access попадёт в канал Stable не раньше, чем через 1 неделю после внутреннего тестирования.
Мы гарантируем, что релиз из канала Stable должен попасть в канал Rock-Solid не раньше, чем через 2 недели активного тестирования.

Гарантии обратной совместимости

werf использует семантическое версионирование. Мажорные релизы могут ломать обратную совместимость (совместимость между 1.0 и 2.0, между 2.0 и 3.0 и т.д.). Для werf следующий мажорный релиз может потребовать полный перезапуск приложений или других ручных действий, которые не могут быть выполнены автоматически.

Минорные релизы (1.1, 1.2, и т.д.) могут содержать новые глобальные возможности. Изменения, вносимые в минорных релизах не могут значительно менять обратную совместимость в рамках текущей мажорной ветки версий (например, 1.x). Для werf это означает, что обновление между минорными версиями происходит незаметно в большинстве случаев. Однако такое обновление может потребовать от пользователя запуска некоторых инструкций, которые должны быть предоставлены при выходе новой версии werf.

Патч релизы (1.1.0, 1.1.1, 1.1.2) могут содержать как исправления, так и новые возможности. Однако данные изменения обязаны быть полностью обратно совместимыми в рамках текущей минорной ветки версий (например, 1.1.х). Для werf это означает, что обновление на следующий патч релиз всегда происходит незаметно и может производится автоматически.

  • Мы не гарантируем обратную совместимость между:
    • alpha релизами;
    • beta релизами;
    • ea релизами.
  • Мы гарантируем обратную совместимость между:
    • stable релизами в рамках минорной ветки версий (например 1.1.x);
    • rock-solid релизами в рамках минорной ветки версий (например 1.1.x).