Delete ctx.file_action

The function has been deprecated for a long time and is disabled by --incompatible_new_actions_api.

RELNOTES: None.
PiperOrigin-RevId: 318279072
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java
index 1e8de4e..7fa6f5b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleContext.java
@@ -76,7 +76,6 @@
 import com.google.devtools.build.lib.packages.Type.LabelClass;
 import com.google.devtools.build.lib.shell.ShellUtils;
 import com.google.devtools.build.lib.shell.ShellUtils.TokenizationException;
-import com.google.devtools.build.lib.skylarkbuildapi.FileApi;
 import com.google.devtools.build.lib.skylarkbuildapi.StarlarkRuleContextApi;
 import com.google.devtools.build.lib.syntax.ClassObject;
 import com.google.devtools.build.lib.syntax.Dict;
@@ -955,16 +954,6 @@
   }
 
   @Override
-  public NoneType fileAction(
-      FileApi output, String content, Boolean executable, StarlarkThread thread)
-      throws EvalException {
-    checkDeprecated("ctx.actions.write", "ctx.file_action", thread.getSemantics());
-    checkMutable("file_action");
-    actions().write(output, content, executable);
-    return Starlark.NONE;
-  }
-
-  @Override
   public Runfiles runfiles(
       Sequence<?> files,
       Object transitiveFiles,
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/StarlarkRuleContextApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/StarlarkRuleContextApi.java
index 8427b22..b7b398b 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/StarlarkRuleContextApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/StarlarkRuleContextApi.java
@@ -717,30 +717,6 @@
       throws EvalException;
 
   @StarlarkMethod(
-      name = "file_action",
-      doc =
-          "DEPRECATED. Use <a href =\"actions.html#write\">ctx.actions.write</a> instead. <br>"
-              + "Creates a file write action.",
-      parameters = {
-        @Param(name = "output", type = FileApi.class, named = true, doc = "The output file."),
-        @Param(
-            name = "content",
-            type = String.class,
-            named = true,
-            doc = "The contents of the file."),
-        @Param(
-            name = "executable",
-            type = Boolean.class,
-            defaultValue = "False",
-            named = true,
-            doc = "Whether the output file should be executable (default is False).")
-      },
-      allowReturnNones = true,
-      useStarlarkThread = true)
-  NoneType fileAction(FileApi output, String content, Boolean executable, StarlarkThread thread)
-      throws EvalException;
-
-  @StarlarkMethod(
       name = "runfiles",
       doc = "Creates a runfiles object.",
       parameters = {
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/StarlarkRuleContextTest.java b/src/test/java/com/google/devtools/build/lib/skylark/StarlarkRuleContextTest.java
index 32d63bf..953edf1 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/StarlarkRuleContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/StarlarkRuleContextTest.java
@@ -2398,7 +2398,6 @@
           "actions.write(file, 'foo')",
           "check_placeholders('foo', [])",
           "action(command = 'foo', outputs = [file])",
-          "file_action(file, 'foo')",
           "runfiles()",
           "resolve_command(command = 'foo')",
           "resolve_tools()");
@@ -2500,8 +2499,7 @@
       ImmutableList.of(
           "new_file('foo.txt')",
           "new_file(file, 'foo.txt')",
-          "action(command = 'foo', outputs = [file])",
-          "file_action(file, 'foo')");
+          "action(command = 'foo', outputs = [file])");
 
   @Test
   public void testIncompatibleNewActionsApi() throws Exception {