Continuous Integration
CI/CD solutions are a common way to manage release builds and testing for serious software projects.
This reference material provides the basics to get arc
running in a headless build environment, along with tips to improve the CI experience.
Build dependencies
As described in the normal install instructions, we depend on nodejs
and yarn
.
-
Linux, your package manager will likely provide node,
apt install nodejs
or similar. -
macOS, invoke
brew install node
. -
Windows, If your build worker has Chocolatey, invoke
choco install nodejs-lts
.
Yarn recommends installing via npm after nodejs
is installed.
npm install --global yarn
Installing arc
Bash-like shells
This applies to macOS, and the Linux distro's we've tested (Ubuntu, Arch, Solus)
Just run the normal install setup script to download the latest copy of arc
from our server.
curl https://install.electricui.com | bash
Otherwise, you can download the arc
binary directly from our server:
https://registry.eui.io/arc/latest/arc_latest_linux_amd64.tar.gz
https://registry.eui.io/arc/latest/arc_latest_darwin_amd64.tar.gz
and add it to your PATH by adding an entry into .profile
or .bashrc
as you see fit.
Alternatively, add it temporarily to your system's PATH by appending it to the current path:
export PATH="$PATH:~/electricui-arc-location"
Windows Powershell
Download arc.exe
directly from our server, and add the folder to PATH
.
Invoke-WebRequest -Uri "https://registry.eui.io/arc/latest/arc_latest_windows_amd64.zip" -OutFile "arc_latest_windows_amd64.zip"expand-archive -path 'arc_latest_windows_amd64.zip' -destinationpath 'electricui-arc'
In following stages of the build job, either invoke the arc executable with a fully resolved location, or add it to your PATH (temporarily, or permanently depending on your build environment).
Here are a few different ways to do this:
echo "electricui-arc" | Out-File -Append -FilePath $env:Path -Encoding utf8
$env:Path += ";C:\my-working-directory\electricui-arc"
[System.Environment]::SetEnvironmentVariable('C:\working-dir\electricui-arc',$Value,[System.EnvironmentVariableTarget]::Process);
Using arc
We offer specific CI/CD accounts and tokens to commercial users.
Before continuing, you need to login to arc
with your Electric UI credentials.
Normally this is done by following the prompts after arc login
, but this process is non-trivial in a scripted environment. Instead, we suggest using the environment variable support built into arc
.
Set the environment variables ARC_EMAIL
and ARC_PASSWORD
. We recommend storing these strings in your CI solutions secret key tooling to prevent leakage through configuration files or logs.
Checking the build setup
The best way to validate the setup is to run arc info
.
The output will display the active version of arc
, nodejs
and yarn
, as well as displaying if a login is active.
Running a production build
In situations where the repository has been pulled into a fresh machine/VM, the project will likely be missing dependencies.
- Set your working directory to the interface directory in your repo.
arc install
to fetch the libraries and deps listed in thepackage.json
andelectricui.json
files.arc build
.
This process typically takes 2-4 minutes on a standard low-mid range cloud CI instance, and will typically download about 80-120MB of files.
Build artifacts
The build products will be emitted into the release
folder.
Generally the premade .zip
is the most useful, though unpacked copies are also available alongside.
End-to-End Tests
The default Electric UI template includes stubs for e2e testing.
This section will be detailed at a later date.
For assistance running e2e tests in a CI environment, get in touch.