Чтобы получить доступ к использованию docker-server для текущего пользователя системы, необходимо добавить его в группу docker
:
sudo groupadd docker
sudo usermod -aG docker $USER
# 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.2 alpha --as-file)
werf version
...
echo '. $(multiwerf use 1.2 alpha --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.2 beta --as-file)
werf version
...
echo '. $(multiwerf use 1.2 beta --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.2 ea --as-file)
werf version
...
echo '. $(multiwerf use 1.2 ea --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.2 stable --as-file)
werf version
...
echo '. $(multiwerf use 1.2 stable --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.2 rock-solid --as-file)
werf version
...
echo '. $(multiwerf use 1.2 rock-solid --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.1 alpha --as-file)
werf version
...
echo '. $(multiwerf use 1.1 alpha --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.1 beta --as-file)
werf version
...
echo '. $(multiwerf use 1.1 beta --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.1 ea --as-file)
werf version
...
echo '. $(multiwerf use 1.1 ea --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.1 stable --as-file)
werf version
...
echo '. $(multiwerf use 1.1 stable --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.1 rock-solid --as-file)
werf version
...
echo '. $(multiwerf use 1.1 rock-solid --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.0 alpha --as-file)
werf version
...
echo '. $(multiwerf use 1.0 alpha --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.0 beta --as-file)
werf version
...
echo '. $(multiwerf use 1.0 beta --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.0 ea --as-file)
werf version
...
echo '. $(multiwerf use 1.0 ea --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.0 stable --as-file)
werf version
...
echo '. $(multiwerf use 1.0 stable --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.0 rock-solid --as-file)
werf version
...
echo '. $(multiwerf use 1.0 rock-solid --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.2 alpha --as-file)
werf version
...
echo '. $(multiwerf use 1.2 alpha --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.2 beta --as-file)
werf version
...
echo '. $(multiwerf use 1.2 beta --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.2 ea --as-file)
werf version
...
echo '. $(multiwerf use 1.2 ea --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.2 stable --as-file)
werf version
...
echo '. $(multiwerf use 1.2 stable --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.2 rock-solid --as-file)
werf version
...
echo '. $(multiwerf use 1.2 rock-solid --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.1 alpha --as-file)
werf version
...
echo '. $(multiwerf use 1.1 alpha --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.1 beta --as-file)
werf version
...
echo '. $(multiwerf use 1.1 beta --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.1 ea --as-file)
werf version
...
echo '. $(multiwerf use 1.1 ea --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.1 stable --as-file)
werf version
...
echo '. $(multiwerf use 1.1 stable --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.1 rock-solid --as-file)
werf version
...
echo '. $(multiwerf use 1.1 rock-solid --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.0 alpha --as-file)
werf version
...
echo '. $(multiwerf use 1.0 alpha --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.0 beta --as-file)
werf version
...
echo '. $(multiwerf use 1.0 beta --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.0 ea --as-file)
werf version
...
echo '. $(multiwerf use 1.0 ea --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.0 stable --as-file)
werf version
...
echo '. $(multiwerf use 1.0 stable --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл 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
Следующий вызов создаст shell-функцию werf
, которая вызывает бинарный файл той версии werf, которую multiwerf скачал и активировал:
source $(multiwerf use 1.0 rock-solid --as-file)
werf version
...
echo '. $(multiwerf use 1.0 rock-solid --as-file)' >> ~/.bashrc
Во-первых необходимо удостовериться, что бинарный файл multiwerf
доступен для исполнения с помощью команды type
. Данная команда печатает сообщение в поток вывода ошибок в случае, если multiwerf
по каким-то причинам недоступен для использования, тем самым упрощая диагностику проблем в CI/CD системах.
Во-вторых необходимо активировать исполняемую команду werf
в текущем экземпляре shell в CI/CD.
type multiwerf && . $(multiwerf use 1.0 rock-solid --as-file)
# Теперь можно использовать werf
werf ...
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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%
$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")
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
от имени администратора и затем выполнить следующие команды:
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
, чтобы начать пользоваться werf.
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
$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")
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%"
go get github.com/werf/werf/cmd/werf
При использовании каналов стабильности не требуется указывать конкретную версию, т.к. конкретную версию активирует multiwerf, выступая в роли менеджера версий. Это позволяет автоматически и непрерывно получать как исправления проблем, так и новые возможности, оперативно откатывать проблемные изменения. В целом такая схема даёт баланс между достаточно высоким уровнем стабильности софта и быстрой разработкой новых возможностей.
Связи между каналом стабильности и конкретной версией werf описываются в специально файле multiwerf.json.
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).