2222 - ' lts-**'
2323 pull_request :
2424 merge_group :
25- schedule :
26- - cron : ' 0 3 * * *' # Every day at 3 AM
2725 workflow_dispatch :
2826
2927# Cancels any in-progress runs within the same group identified by workflow name and GH reference (branch or tag)
@@ -151,67 +149,14 @@ jobs:
151149 - name : Cmd Tests
152150 run : |
153151 ./project/scripts/buildScalaBinary
154- ./project/scripts/sbt ";scala3-bootstrapped/compile ;scala3-bootstrapped/test ; sbt-test/scripted scala2-compat/* ;scala3-compiler-bootstrapped/scala3CompilerCoursierTest:test"
152+ ./project/scripts/sbt ";scala3-bootstrapped/compile ;sbt-test/scripted scala2-compat/* ;scala3-compiler-bootstrapped/scala3CompilerCoursierTest:test"
155153 ./project/scripts/cmdTests
156154 ./project/scripts/bootstrappedOnlyCmdTests
157155
158156 - name : Scala.js Test
159157 run : |
160158 ./project/scripts/sbt ";sjsSandbox/run ;sjsSandbox/test ;sjsJUnitTests/test ;set sjsJUnitTests/scalaJSLinkerConfig ~= switchToESModules ;sjsJUnitTests/test ;sjsCompilerTests/test"
161159
162- - name : Test with Scala 2 library TASTy (fast)
163- run : ./project/scripts/sbt ";set ThisBuild/Build.scala2Library := Build.Scala2LibraryTasty ;scala3-bootstrapped/testCompilation i5; scala3-bootstrapped/testCompilation tests/run/typelevel-peano.scala; scala3-bootstrapped/testOnly dotty.tools.backend.jvm.DottyBytecodeTests" # only test a subset of test to avoid doubling the CI execution time
164-
165- - name : Test with Scala 2 library with CC TASTy (fast)
166- run : ./project/scripts/sbt ";set ThisBuild/Build.scala2Library := Build.Scala2LibraryCCTasty; scala2-library-cc/compile; scala2-library-cc-tasty/compile; scala3-bootstrapped/testCompilation i3"
167-
168- test_scala2_library_tasty :
169- runs-on : [self-hosted, Linux]
170- container :
171- image : lampepfl/dotty:2024-10-18
172- options : --cpu-shares 4096
173- volumes :
174- - ${{ github.workspace }}/../../cache/sbt:/root/.sbt
175- - ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
176- - ${{ github.workspace }}/../../cache/general:/root/.cache
177- if : " github.event_name == 'schedule' && github.repository == 'scala/scala3'
178- || (
179- github.event_name == 'pull_request'
180- && contains(github.event.pull_request.body, '[test_scala2_library_tasty]')
181- )
182- || (
183- github.event_name == 'workflow_dispatch'
184- && github.repository == 'scala/scala3'
185- )"
186-
187- steps :
188- - name : Set JDK 17 as default
189- run : echo "/usr/lib/jvm/java-17-openjdk-amd64/bin" >> $GITHUB_PATH
190-
191- - name : Reset existing repo
192- run : |
193- git config --global --add safe.directory $GITHUB_WORKSPACE
194- git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
195-
196- - name : Checkout cleanup script
197- uses : actions/checkout@v5
198-
199- - name : Cleanup
200- run : .github/workflows/cleanup.sh
201-
202- - name : Git Checkout
203- uses : actions/checkout@v5
204-
205- - name : Add SBT proxy repositories
206- run : cp -vf .github/workflows/repositories /root/.sbt/ ; true
207-
208- - name : Test with Scala 2 library TASTy
209- run : ./project/scripts/sbt ";set ThisBuild/Build.scala2Library := Build.Scala2LibraryTasty ;scala3-bootstrapped/test"
210-
211- - name : Test with Scala 2 library with CC TASTy
212- run : ./project/scripts/sbt ";set ThisBuild/Build.scala2Library := Build.Scala2LibraryCCTasty ;scala3-bootstrapped/test"
213-
214-
215160 test_windows_fast :
216161 runs-on : [self-hosted, Windows]
217162 if : " (
@@ -236,7 +181,7 @@ jobs:
236181 uses : actions/checkout@v5
237182
238183 - name : Test
239- run : sbt ";scala3-bootstrapped/compile; scala3-bootstrapped/testCompilation; scala3- presentation-compiler/test; scala3-language-server/test"
184+ run : sbt ";scala3-bootstrapped/compile; scala3-presentation-compiler/test; scala3-language-server/test"
240185 shell : cmd
241186
242187 - name : build binary
@@ -291,58 +236,6 @@ jobs:
291236 run : sbt ";sjsJUnitTests/test ;set sjsJUnitTests/scalaJSLinkerConfig ~= switchToESModules ;sjsJUnitTests/test ;sjsCompilerTests/test"
292237 shell : cmd
293238
294- mima :
295- name : MiMa
296- runs-on : [self-hosted, Linux]
297- container :
298- image : lampepfl/dotty:2024-10-18
299- options : --cpu-shares 4096
300- volumes :
301- - ${{ github.workspace }}/../../cache/sbt:/root/.sbt
302- - ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
303- - ${{ github.workspace }}/../../cache/general:/root/.cache
304- if : " github.event_name == 'schedule' && github.repository == 'scala/scala3'
305- || github.event_name == 'push'
306- || github.event_name == 'merge_group'
307- || (
308- github.event_name == 'pull_request'
309- && !contains(github.event.pull_request.body, '[skip ci]')
310- && !contains(github.event.pull_request.body, '[skip mima]')
311- )
312- || (
313- github.event_name == 'workflow_dispatch'
314- && github.repository == 'scala/scala3'
315- )"
316- steps :
317- - name : Set JDK 17 as default
318- run : echo "/usr/lib/jvm/java-17-openjdk-amd64/bin" >> $GITHUB_PATH
319-
320- - name : Reset existing repo
321- run : |
322- git config --global --add safe.directory $GITHUB_WORKSPACE
323- git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
324-
325- - name : Checkout cleanup script
326- uses : actions/checkout@v5
327-
328- - name : Cleanup
329- run : .github/workflows/cleanup.sh
330-
331- - name : Git Checkout
332- uses : actions/checkout@v5
333-
334- - name : Add SBT proxy repositories
335- run : cp -vf .github/workflows/repositories /root/.sbt/ ; true
336-
337- - name : MiMa
338- run : |
339- ./project/scripts/sbt ";scala3-interfaces/mimaReportBinaryIssues ;scala3-library-bootstrapped/mimaReportBinaryIssues ;scala3-library-bootstrappedJS/mimaReportBinaryIssues; tasty-core-bootstrapped/mimaReportBinaryIssues; scala2-library-bootstrapped/mimaReportBinaryIssues"
340-
341- - name : TASTy MiMa
342- run : |
343- # This script cleans the compiler and recompiles it from scratch (keep as last run)
344- ./project/scripts/scala2-library-tasty-mima.sh
345-
346239 community_build_a :
347240 runs-on : [self-hosted, Linux]
348241 container :
@@ -559,188 +452,6 @@ jobs:
559452 - name : Test sbt
560453 run : ./project/scripts/sbt "sbt-test/scripted; sbt-community-build/scripted"
561454
562- test_java8 :
563- runs-on : [self-hosted, Linux]
564- container :
565- image : lampepfl/dotty:2024-10-18
566- options : --cpu-shares 4096
567- volumes :
568- - ${{ github.workspace }}/../../cache/sbt:/root/.sbt
569- - ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
570- - ${{ github.workspace }}/../../cache/general:/root/.cache
571-
572- if : " github.event_name == 'schedule' && github.repository == 'scala/scala3'
573- || (
574- github.event_name == 'push'
575- && startsWith(github.event.ref, 'refs/tags/')
576- )
577- || (
578- github.event_name == 'pull_request'
579- && !contains(github.event.pull_request.body, '[skip ci]')
580- && contains(github.event.pull_request.body, '[test_java8]')
581- )
582- || (
583- github.event_name == 'workflow_dispatch'
584- && github.repository == 'scala/scala3'
585- )"
586-
587- steps :
588- # ###################################################################################
589- # # WARNING: DO NOT CHANGE THE JAVA VERSION HERE. THIS TEST IS SPECIFIC FOR JAVA 8 ##
590- # ###################################################################################
591- - name : Set JDK 8 as default
592- run : echo "/usr/lib/jvm/java-8-openjdk-amd64/bin" >> $GITHUB_PATH
593-
594- - name : Reset existing repo
595- run : |
596- git config --global --add safe.directory $GITHUB_WORKSPACE
597- git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
598-
599- - name : Checkout cleanup script
600- uses : actions/checkout@v5
601-
602- - name : Cleanup
603- run : .github/workflows/cleanup.sh
604-
605- - name : Git Checkout
606- uses : actions/checkout@v5
607-
608- - name : Add SBT proxy repositories
609- run : cp -vf .github/workflows/repositories /root/.sbt/ ; true
610-
611- - name : Test
612- run : |
613- ./project/scripts/buildScalaBinary
614- ./project/scripts/sbt ";scala3-bootstrapped/compile ;scala3-bootstrapped/test ;sbt-test/scripted scala2-compat/*"
615- ./project/scripts/cmdTests
616- ./project/scripts/bootstrappedOnlyCmdTests
617-
618- - name : Scala.js Test
619- run : |
620- ./project/scripts/sbt ";sjsSandbox/run ;sjsSandbox/test ;sjsJUnitTests/test ;set sjsJUnitTests/scalaJSLinkerConfig ~= switchToESModules ;sjsJUnitTests/test ;sjsCompilerTests/test"
621-
622- publish_nightly :
623- runs-on : [self-hosted, Linux]
624- container :
625- image : lampepfl/dotty:2024-10-18
626- options : --cpu-shares 4096
627- volumes :
628- - ${{ github.workspace }}/../../cache/sbt:/root/.sbt
629- - ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
630- - ${{ github.workspace }}/../../cache/general:/root/.cache
631- strategy :
632- matrix :
633- series : [
634- {repository: scala/scala3, branch: main}, # Scala Next nightly
635- {repository: scala/scala3-lts, branch: lts-3.3} # Scala LTS nightly
636- ]
637- needs : [test_non_bootstrapped, test, mima, community_build_a, community_build_b, community_build_c, test_sbt, test_java8]
638- if : " (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && github.repository == 'scala/scala3'"
639- env :
640- NIGHTLYBUILD : yes
641- PGP_PW : ${{ secrets.PGP_PW }} # PGP passphrase
642- PGP_SECRET : ${{ secrets.PGP_SECRET }} # Export your private and public PGP key to an *.asc file, take the file's contents as a string
643- SONATYPE_PW : ${{ secrets.SONATYPE_PW_ORGSCALALANG }}
644- SONATYPE_USER : ${{ secrets.SONATYPE_USER_ORGSCALALANG }}
645-
646- steps :
647- # #####################################################################################
648- # # WARNING: DO NOT CHANGE THE JAVA VERSION HERE. SCALA IS DISTRIBUTED USING JAVA 8. ##
649- # #####################################################################################
650- - name : Set JDK 8 as default
651- run : echo "/usr/lib/jvm/java-8-openjdk-amd64/bin" >> $GITHUB_PATH
652- - name : Reset existing repo
653- run : |
654- git config --global --add safe.directory $GITHUB_WORKSPACE
655- git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
656-
657- - name : Checkout cleanup script
658- uses : actions/checkout@v5
659-
660- - name : Cleanup
661- run : .github/workflows/cleanup.sh
662-
663- - name : Git Checkout
664- uses : actions/checkout@v5
665- with :
666- repository : ${{ matrix.series.repository }}
667- ref : ${{ matrix.series.branch }}
668-
669- - name : Add SBT proxy repositories
670- run : cp -vf .github/workflows/repositories /root/.sbt/ ; true
671-
672- - name : Get version string for this build
673- run : |
674- ver=$(./project/scripts/sbt "print scala3-compiler-bootstrapped/version" | tail -n1)
675- echo "This build version: $ver"
676- echo "THISBUILD_VERSION=$ver" >> $GITHUB_ENV
677-
678- - name : Check is version matching pattern
679- shell : bash
680- run : |
681- if ! grep -Eo "3\.[0-9]+\.[0-9]+-RC[0-9]+-bin-[0-9]{8}-[a-zA-Z0-9]{7}-NIGHTLY" <<< "${{ env.THISBUILD_VERSION }}"; then
682- echo "Version used by compiler to publish nightly release does not match expected pattern"
683- exit 1
684- fi
685-
686- - name : Check whether not yet published
687- id : not_yet_published
688- continue-on-error : true
689- run : |
690- ! ./project/scripts/is-version-published.sh "$THISBUILD_VERSION"
691-
692- - name : Publish Nightly
693- if : " steps.not_yet_published.outcome == 'success'"
694- run : |
695- ./project/scripts/sbtPublish ";project scala3-bootstrapped ;publishSigned ;sonaRelease"
696-
697- nightly_documentation :
698- runs-on : [self-hosted, Linux]
699- container :
700- image : lampepfl/dotty:2024-10-18
701- options : --cpu-shares 4096
702- volumes :
703- - ${{ github.workspace }}/../../cache/sbt:/root/.sbt
704- - ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
705- - ${{ github.workspace }}/../../cache/general:/root/.cache
706- needs : [publish_nightly]
707- if : " (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && github.repository == 'scala/scala3'"
708- env :
709- NIGHTLYBUILD : yes
710- steps :
711- - name : Reset existing repo
712- run : |
713- git config --global --add safe.directory $GITHUB_WORKSPACE
714- git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
715-
716- - name : Checkout cleanup script
717- uses : actions/checkout@v5
718-
719- - name : Cleanup
720- run : .github/workflows/cleanup.sh
721-
722- - name : Set JDK 17 as default
723- run : echo "/usr/lib/jvm/java-17-openjdk-amd64/bin" >> $GITHUB_PATH
724-
725- - name : Git Checkout
726- uses : actions/checkout@v5
727-
728- - name : Add SBT proxy repositories
729- run : cp -vf .github/workflows/repositories /root/.sbt/ ; true
730-
731- - name : Generate Website
732- run : |
733- git config --global --add safe.directory $GITHUB_WORKSPACE
734- ./project/scripts/genDocs -doc-snapshot
735-
736- - name : Deploy Website to https://dotty.epfl.ch
737- uses : peaceiris/actions-gh-pages@v4
738- with :
739- personal_token : ${{ secrets.DOTTYBOT_TOKEN }}
740- publish_dir : docs/_site
741- external_repository : scala/dotty.epfl.ch
742- publish_branch : main
743-
744455 publish_release :
745456 permissions :
746457 contents : write # for GH CLI to create a release
@@ -752,7 +463,7 @@ jobs:
752463 - ${{ github.workspace }}/../../cache/sbt:/root/.sbt
753464 - ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
754465 - ${{ github.workspace }}/../../cache/general:/root/.cache
755- needs : [test_non_bootstrapped, test, mima, community_build_a, community_build_b, community_build_c, test_sbt, test_java8 , build-sdk-package, build-msi-package]
466+ needs : [test_non_bootstrapped, test, community_build_a, community_build_b, community_build_c, test_sbt, build-sdk-package, build-msi-package]
756467 if : " github.event_name == 'push'
757468 && startsWith(github.event.ref, 'refs/tags/')"
758469
@@ -867,27 +578,6 @@ jobs:
867578 - name : Publish Release
868579 run : ./project/scripts/sbtPublish ";project scala3-bootstrapped ;publishSigned ;sonaUpload"
869580
870-
871- open_issue_on_failure :
872- runs-on : [self-hosted, Linux]
873- container :
874- image : lampepfl/dotty:2024-10-18
875- needs : [nightly_documentation, test_windows_full]
876- # The `failure()` expression is true iff at least one of the dependencies
877- # of this job (including transitive dependencies) has failed.
878- if : " failure() && github.event_name == 'schedule'"
879- steps :
880- - name : Checkout issue template
881- uses : actions/checkout@v5
882-
883- - name : Open an issue
884- uses : JasonEtco/create-an-issue@v2
885- env :
886- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
887- WORKFLOW_RUN_URL : ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
888- with :
889- filename : .github/workflows/issue_nightly_failed.md
890-
891581 build-msi-package :
892582 uses : ./.github/workflows/build-msi.yml
893583 if :
0 commit comments