According to an answer on Unity Answers, you need to put the scripts used for building into a folder named Editor (specifically, ./Assets/Scripts/Editor). Here's a full working build script:
using UnityEditor;
using UnityEngine;
class BuildSrcipt
{
static string[] scenes = { "Assets/Scenes/MyScene.unityunity" };
static string name = "MyGame";
[MenuItem("Build/Build WebGL")]
static void BuildWebGL()
{
BuildPipeline.BuildPlayer(scenes, "./" + name + "_Web/" + name, BuildTarget.WebGL, BuildOptions.None);
}
[MenuItem("Build/Build Windows")]
static void BuildWindows()
{
BuildPipeline.BuildPlayer(scenes, "./" + name + "_Windows/" + name, BuildTarget.StandaloneWindows64, BuildOptions.None);
}
[MenuItem("Build/Build Linux")]
static void BuildLinux()
{
BuildPipeline.BuildPlayer(scenes, "./" + name + "_Linux/" + name, BuildTarget.StandaloneLinux64, BuildOptions.None);
}
[MenuItem("Build/Build All")]
static void BuildAll()
{
BuildLinux();
BuildWindows();
BuildWebGL();
}
}