Skip to content

Commit

Permalink
feat: add compileAll task, MISC-483
Browse files Browse the repository at this point in the history
Motivation:
We define this helper in different projects

Modifications:
 * Add a plugin to declare this

Result:
The developer can now launch `sbt compileAll` or better `sbt ~compileAll` in
order to compile all configurations for all projects (if root is the aggregated
projects)
  • Loading branch information
Isammoc committed Nov 6, 2024
1 parent 7051294 commit 0a2f0aa
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/main/scala/io/gatling/build/GatlingCorpPlugin.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
package io.gatling.build

import io.gatling.build.automated.{ GatlingAutomatedScalafixPlugin, GatlingAutomatedScalafmtPlugin }
import io.gatling.build.basic.GatlingBasicInfoPlugin
import io.gatling.build.basic.{ GatlingBasicInfoPlugin, GatlingCompileAllPlugin }
import io.gatling.build.compile.GatlingCompilerSettingsPlugin
import io.gatling.build.environment.GatlingEnvPlugin
import io.gatling.build.license._
Expand All @@ -37,6 +37,7 @@ object GatlingCorpPlugin extends AutoPlugin {
GatlingAutomatedScalafmtPlugin &&
GatlingVersioningPlugin &&
GatlingBasicInfoPlugin &&
GatlingCompileAllPlugin &&
GatlingCompilerSettingsPlugin &&
GatlingPublishPlugin &&
GatlingReleasePlugin &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package io.gatling.build

import io.gatling.build.automated.{ GatlingAutomatedScalafixPlugin, GatlingAutomatedScalafmtPlugin }
import io.gatling.build.basic.GatlingCompileAllPlugin
import io.gatling.build.compile.GatlingCompilerSettingsPlugin
import io.gatling.build.environment.GatlingEnvPlugin
import io.gatling.build.license._
Expand All @@ -38,6 +39,7 @@ object GatlingEnterpriseComponentPlugin extends AutoPlugin {
GatlingAutomatedScalafmtPlugin &&
GatlingVersioningPlugin &&
GatlingCompilerSettingsPlugin &&
GatlingCompileAllPlugin &&
AutomateHeaderPlugin &&
GatlingEnvPlugin &&
GatlingEnterpriseComponentLicenseFilePlugin &&
Expand Down
2 changes: 2 additions & 0 deletions src/main/scala/io/gatling/build/GatlingOssPlugin.scala
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package io.gatling.build

import io.gatling.build.automated.GatlingAutomatedScalafixPlugin
import io.gatling.build.automated.GatlingAutomatedScalafmtPlugin
import io.gatling.build.basic.GatlingCompileAllPlugin
import io.gatling.build.compile.GatlingCompilerSettingsPlugin
import io.gatling.build.license._
import io.gatling.build.sonatype.GatlingSonatypePlugin
Expand All @@ -35,6 +36,7 @@ object GatlingOssPlugin extends AutoPlugin {
GatlingAutomatedScalafmtPlugin &&
GatlingVersioningPlugin &&
GatlingCompilerSettingsPlugin &&
GatlingCompileAllPlugin &&
AutomateHeaderPlugin &&
Apache2LicenseFilePlugin &&
GatlingSonatypePlugin
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Copyright 2011-2024 GatlingCorp (https://gatling.io)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package io.gatling.build.basic

import sbt._
import sbt.Keys._

object GatlingCompileAllPlugin extends AutoPlugin {
override def requires = empty

override def trigger = allRequirements

trait GatlingCompileAllKeys {
val compileAll = taskKey[Unit]("compile all configurations")
}
object GatlingCompileAllKeys extends GatlingCompileAllKeys
object autoImport extends GatlingCompileAllKeys

import autoImport._

override def projectSettings: Seq[Def.Setting[_]] = Seq(
compileAll := compile.?.all(
ScopeFilter(
configurations = inAnyConfiguration
)
).value
)
}

0 comments on commit 0a2f0aa

Please sign in to comment.