Skip to content

Community build: split into 3 concurrent jobs #10731

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 19, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 43 additions & 3 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,46 @@ jobs:
git submodule update --init --recursive --jobs 7
./project/scripts/sbt "community-build/testOnly dotty.communitybuild.CommunityBuildTestB"
community_build_c:
runs-on: [self-hosted, Linux]
container:
image: lampepfl/dotty:2020-11-19
options: --cpu-shares 4096
volumes:
- ${{ github.workspace }}/../../cache/sbt:/root/.sbt
- ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
- ${{ github.workspace }}/../../cache/general:/root/.cache
if: "github.event_name == 'schedule' && github.repository == 'lampepfl/dotty'
|| github.event_name == 'push'
|| (
github.event_name == 'pull_request'
&& !contains(github.event.pull_request.body, '[skip ci]')
&& !contains(github.event.pull_request.body, '[skip community_build]')
)
|| (
github.event_name == 'workflow_dispatch'
&& github.repository == 'lampepfl/dotty'
)"

steps:
- name: Checkout cleanup script
uses: actions/checkout@v2

- name: Cleanup
run: .github/workflows/cleanup.sh

- name: Git Checkout
uses: actions/checkout@v2

- name: Add SBT proxy repositories
run: cp -vf .github/workflows/repositories /root/.sbt/ ; true

- name: Test
run: |
git submodule sync
git submodule update --init --recursive --jobs 7
./project/scripts/sbt "community-build/testOnly dotty.communitybuild.CommunityBuildTestC"
test_sbt:
runs-on: [self-hosted, Linux]
container:
Expand Down Expand Up @@ -344,7 +384,7 @@ jobs:
- ${{ github.workspace }}/../../cache/sbt:/root/.sbt
- ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
- ${{ github.workspace }}/../../cache/general:/root/.cache
needs: [test_non_bootstrapped, test, community_build_a, community_build_b, test_sbt, test_java8]
needs: [test_non_bootstrapped, test, community_build_a, community_build_b, community_build_c, test_sbt, test_java8]
if: "(github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && github.repository == 'lampepfl/dotty'"
env:
NIGHTLYBUILD: yes
Expand Down Expand Up @@ -421,7 +461,7 @@ jobs:
- ${{ github.workspace }}/../../cache/sbt:/root/.sbt
- ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
- ${{ github.workspace }}/../../cache/general:/root/.cache
needs: [test_non_bootstrapped, test, community_build_a, community_build_b, test_sbt, test_java8]
needs: [test_non_bootstrapped, test, community_build_a, community_build_b, community_build_c, test_sbt, test_java8]
if: "github.event_name == 'push'
&& startsWith(github.event.ref, 'refs/tags/')
&& !startsWith(github.event.ref, 'refs/tags/sbt-dotty-')"
Expand Down Expand Up @@ -549,7 +589,7 @@ jobs:
- ${{ github.workspace }}/../../cache/sbt:/root/.sbt
- ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
- ${{ github.workspace }}/../../cache/general:/root/.cache
needs: [community_build_a, community_build_b, test_sbt]
needs: [community_build_a, community_build_b, community_build_c, test_sbt]
if: "github.event_name == 'push'
&& startsWith(github.event.ref, 'refs/tags/sbt-dotty-')"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,34 +84,14 @@ abstract class CommunityBuildTest:
}
end CommunityBuildTest

class TestCategory

@Category(Array(classOf[TestCategory]))
class CommunityBuildTestA extends CommunityBuildTest:
@Test def akka = projects.akka.run()
@Test def endpoints4s = projects.endpoints4s.run()
@Test def fansi = projects.fansi.run()
@Test def fastparse = projects.fastparse.run()
@Test def geny = projects.geny.run()
@Test def izumiReflect = projects.izumiReflect.run()
@Test def oslib = projects.oslib.run()
// @Test def oslibWatch = projects.oslibWatch.run()
@Test def pprint = projects.pprint.run()
@Test def requests = projects.requests.run()
@Test def scalacheck = projects.scalacheck.run()
@Test def scalaCollectionCompat = projects.scalaCollectionCompat.run()
@Test def scalaParallelCollections = projects.scalaParallelCollections.run()
@Test def scalaSTM = projects.scalaSTM.run()
@Test def scalatest = projects.scalatest.run()
@Test def scalatestplusScalacheck = projects.scalatestplusScalacheck.run()
@Test def scalaz = projects.scalaz.run()
@Test def sourcecode = projects.sourcecode.run()
@Test def stdLib213 = projects.stdLib213.run()
@Test def ujson = projects.ujson.run()
@Test def upickle = projects.upickle.run()
@Test def utest = projects.utest.run()
@Test def zio = projects.zio.run()
@Test def protoquill = projects.protoquill.run()
@Test def onnxScala = projects.onnxScala.run()

// 'scala-stm' and 'Sciss/Lucre':
// 'Sciss/Lucre' dependencies:
// @Test def scissEqual = projects.scissEqual .run()
// @Test def scissFingerTree = projects.scissFingerTree.run()
// @Test def scissLog = projects.scissLog .run()
Expand All @@ -120,15 +100,12 @@ class CommunityBuildTestA extends CommunityBuildTest:
// @Test def scissSerial = projects.scissSerial .run()
// @Test def scissAsyncFile = projects.scissAsyncFile .run()
// @Test def scissSpan = projects.scissSpan .run()
@Test def scalaSTM = projects.scalaSTM .run()
@Test def scissLucre = projects.scissLucre .run()

@Test def scissLucre = projects.scissLucre.run()
@Test def zio = projects.zio.run()
end CommunityBuildTestA

@Category(Array(classOf[TestCategory]))
class CommunityBuildTestB extends CommunityBuildTest:
@Test def algebra = projects.algebra.run()
@Test def betterfiles = projects.betterfiles.run()
@Test def cats = projects.cats.run()
@Test def catsEffect2 = projects.catsEffect2.run()
@Test def catsEffect3 = projects.catsEffect3.run()
Expand All @@ -137,26 +114,51 @@ class CommunityBuildTestB extends CommunityBuildTest:
@Test def discipline = projects.discipline.run()
@Test def disciplineMunit = projects.disciplineMunit.run()
@Test def disciplineSpecs2 = projects.disciplineSpecs2.run()
@Test def munit = projects.munit.run()
@Test def perspective = projects.perspective.run()
@Test def scodec = projects.scodec.run()
@Test def scodecBits = projects.scodecBits.run()
@Test def simulacrumScalafixAnnotations = projects.simulacrumScalafixAnnotations.run()
end CommunityBuildTestB

@Category(Array(classOf[TestCategory]))
class CommunityBuildTestC extends CommunityBuildTest:
@Test def akka = projects.akka.run()
@Test def algebra = projects.algebra.run()
@Test def betterfiles = projects.betterfiles.run()
@Test def cask = projects.cask.run()
// Temporarily disabled until problem discovered in comments to #9449 is fixed
// @Test def dottyCpsAsync = projects.dottyCpsAsync.run()
@Test def effpi = projects.effpi.run()
@Test def endpoints4s = projects.endpoints4s.run()
@Test def fansi = projects.fansi.run()
@Test def fastparse = projects.fastparse.run()
@Test def geny = projects.geny.run()
@Test def intent = projects.intent.run()
@Test def minitest = projects.minitest.run()
@Test def munit = projects.munit.run()
@Test def scodec = projects.scodec.run()
@Test def scodecBits = projects.scodecBits.run()
@Test def onnxScala = projects.onnxScala.run()
@Test def oslib = projects.oslib.run()
// @Test def oslibWatch = projects.oslibWatch.run()
@Test def pprint = projects.pprint.run()
@Test def protoquill = projects.protoquill.run()
@Test def requests = projects.requests.run()
@Test def scalacheck = projects.scalacheck.run()
@Test def scalaCollectionCompat = projects.scalaCollectionCompat.run()
@Test def scalap = projects.scalap.run()
@Test def scalaParallelCollections = projects.scalaParallelCollections.run()
@Test def scalaParserCombinators = projects.scalaParserCombinators.run()
@Test def scalaPB = projects.scalaPB.run()
@Test def scalatestplusScalacheck = projects.scalatestplusScalacheck.run()
@Test def scalaXml = projects.scalaXml.run()
@Test def scalaz = projects.scalaz.run()
@Test def scas = projects.scas.run()
@Test def sconfig = projects.sconfig.run()
@Test def shapeless = projects.shapeless.run()
@Test def simulacrumScalafixAnnotations = projects.simulacrumScalafixAnnotations.run()
@Test def sourcecode = projects.sourcecode.run()
@Test def stdLib213 = projects.stdLib213.run()
@Test def ujson = projects.ujson.run()
@Test def upickle = projects.upickle.run()
@Test def utest = projects.utest.run()
@Test def verify = projects.verify.run()
@Test def xmlInterpolator = projects.xmlInterpolator.run()
@Test def perspective = projects.perspective.run()

end CommunityBuildTestB

class TestCategory
end CommunityBuildTestC