Skip to content

Commit

Permalink
Merge branch 'lts-3.3' into scala-lts-3.3
Browse files Browse the repository at this point in the history
  • Loading branch information
WojciechMazur committed Jan 28, 2025
2 parents 80d111d + c189755 commit 824fe3d
Show file tree
Hide file tree
Showing 29 changed files with 834 additions and 75 deletions.
57 changes: 57 additions & 0 deletions .github/workflows/build-chocolatey.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
###################################################################################################
### THIS IS A REUSABLE WORKFLOW TO BUILD SCALA WITH CHOCOLATEY ###
### HOW TO USE: ###
### ###
### NOTE: ###
### ###
###################################################################################################


name: Build 'scala' Chocolatey Package
run-name: Build 'scala' (${{ inputs.version }}) Chocolatey Package

on:
workflow_call:
inputs:
version:
required: true
type : string
url:
required: true
type : string
digest:
required: true
type : string

jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Replace the version placeholder
uses: richardrigutins/replace-in-files@v2
with:
files: ./pkgs/chocolatey/scala.nuspec
search-text: '@LAUNCHER_VERSION@'
replacement-text: ${{ inputs.version }}
- name: Replace the URL placeholder
uses: richardrigutins/replace-in-files@v2
with:
files: ./pkgs/chocolatey/tools/chocolateyInstall.ps1
search-text: '@LAUNCHER_URL@'
replacement-text: ${{ inputs.url }}
- name: Replace the CHECKSUM placeholder
uses: richardrigutins/replace-in-files@v2
with:
files: ./pkgs/chocolatey/tools/chocolateyInstall.ps1
search-text: '@LAUNCHER_SHA256@'
replacement-text: ${{ inputs.digest }}
- name: Build the Chocolatey package (.nupkg)
run: choco pack ./pkgs/chocolatey/scala.nuspec --out ./pkgs/chocolatey
- name: Upload the Chocolatey package to GitHub
uses: actions/upload-artifact@v4
with:
name: scala.nupkg
path: ./pkgs/chocolatey/scala.${{ inputs.version }}.nupkg
if-no-files-found: error

58 changes: 58 additions & 0 deletions .github/workflows/build-sdk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
###################################################################################################
### THIS IS A REUSABLE WORKFLOW TO BUILD THE SCALA LAUNCHERS ###
### HOW TO USE: ###
### - THSI WORKFLOW WILL PACKAGE THE ALL THE LAUNCHERS AND UPLOAD THEM TO GITHUB ARTIFACTS ###
### ###
### NOTE: ###
### - SEE THE WORFLOW FOR THE NAMES OF THE ARTIFACTS ###
###################################################################################################


name: Build Scala Launchers
run-name: Build Scala Launchers

on:
workflow_call:
inputs:
java-version:
type : string
required : true
outputs:
universal-id:
description: ID of the `universal` package from GitHub Artifacts (Authentication Required)
value : ${{ jobs.build.outputs.universal-id }}
universal-digest:
description: The SHA256 of the uploaded artifact (universal)
value : ${{ jobs.build.outputs.universal-digest }}


jobs:
build:
runs-on: ubuntu-latest
outputs:
universal-id : ${{ steps.universal.outputs.artifact-id }}
universal-digest : ${{ steps.universal-digest.outputs.digest }}

steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ inputs.java-version }}
cache : sbt
- uses: sbt/setup-sbt@v1
- name: Build and pack the SDK (universal)
run : ./project/scripts/sbt dist/pack

- name: Upload zip archive to GitHub Artifact (universal)
uses: actions/upload-artifact@v4
id : universal
with:
path: ./dist/target/pack/*
name: scala3-universal

- name: Compute SHA256 of the uploaded artifact (universal)
id : universal-digest
run : |
curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -o artifact.zip -L https://api.github.com/repos/scala/scala3/actions/artifacts/${{ steps.universal.outputs.artifact-id }}/zip
echo "digest=$(sha256sum artifact.zip | cut -d " " -f 1)" >> "$GITHUB_OUTPUT"
64 changes: 45 additions & 19 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
## Workaround for https://github.com/actions/runner/issues/2033 (See https://github.com/scala/scala3/pull/19720)
- name: Reset existing repo
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Checkout cleanup script
Expand Down Expand Up @@ -125,7 +125,7 @@ jobs:

- name: Reset existing repo
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Checkout cleanup script
Expand Down Expand Up @@ -168,7 +168,7 @@ jobs:
- name: Reset existing repo
shell: cmd
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Git Checkout
Expand Down Expand Up @@ -212,7 +212,7 @@ jobs:
- name: Reset existing repo
shell: cmd
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Git Checkout
Expand Down Expand Up @@ -254,7 +254,7 @@ jobs:

- name: Reset existing repo
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Checkout cleanup script
Expand Down Expand Up @@ -301,7 +301,7 @@ jobs:
run: echo "/usr/lib/jvm/java-8-openjdk-amd64/bin" >> $GITHUB_PATH
- name: Reset existing repo
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Checkout cleanup script
Expand All @@ -318,7 +318,7 @@ jobs:

- name: Test
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git submodule sync
git submodule update --init --recursive --jobs 7
./project/scripts/sbt "community-build/testOnly dotty.communitybuild.CommunityBuildTestA"
Expand Down Expand Up @@ -355,7 +355,7 @@ jobs:
run: echo "/usr/lib/jvm/java-8-openjdk-amd64/bin" >> $GITHUB_PATH
- name: Reset existing repo
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Checkout cleanup script
Expand All @@ -372,7 +372,7 @@ jobs:

- name: Test
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git submodule sync
git submodule update --init --recursive --jobs 7
./project/scripts/sbt "community-build/testOnly dotty.communitybuild.CommunityBuildTestB"
Expand Down Expand Up @@ -409,7 +409,7 @@ jobs:
run: echo "/usr/lib/jvm/java-8-openjdk-amd64/bin" >> $GITHUB_PATH
- name: Reset existing repo
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Checkout cleanup script
Expand All @@ -426,7 +426,7 @@ jobs:

- name: Test
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git submodule sync
git submodule update --init --recursive --jobs 7
./project/scripts/sbt "community-build/testOnly dotty.communitybuild.CommunityBuildTestC"
Expand Down Expand Up @@ -462,7 +462,7 @@ jobs:

- name: Reset existing repo
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Checkout cleanup script
Expand Down Expand Up @@ -511,7 +511,7 @@ jobs:

- name: Reset existing repo
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Checkout cleanup script
Expand Down Expand Up @@ -559,7 +559,7 @@ jobs:
run: echo "/usr/lib/jvm/java-8-openjdk-amd64/bin" >> $GITHUB_PATH
- name: Reset existing repo
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Checkout cleanup script
Expand Down Expand Up @@ -623,7 +623,7 @@ jobs:
steps:
- name: Reset existing repo
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Checkout cleanup script
Expand All @@ -640,7 +640,7 @@ jobs:

- name: Generate Website
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
./project/scripts/genDocs -doc-snapshot
- name: Deploy Website to dotty-website
Expand Down Expand Up @@ -678,7 +678,7 @@ jobs:
run: echo "/usr/lib/jvm/java-8-openjdk-amd64/bin" >> $GITHUB_PATH
- name: Reset existing repo
run: |
git config --global --add safe.directory /__w/scala3/scala3
git config --global --add safe.directory $GITHUB_WORKSPACE
git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
- name: Checkout cleanup script
Expand Down Expand Up @@ -707,7 +707,6 @@ jobs:
run: |
./project/scripts/sbt dist/packArchive
sha256sum dist/target/scala3-* > dist/target/sha256sum.txt
echo "RELEASE_TAG=${GITHUB_REF#*refs/tags/}" >> $GITHUB_ENV
- name: Create GitHub Release
id: create_gh_release
Expand Down Expand Up @@ -752,7 +751,7 @@ jobs:
asset_content_type: text/plain

- name: Publish Release
run: ./project/scripts/sbtPublish ";project scala3-bootstrapped ;publishSigned ;sonatypeBundleRelease"
run: ./project/scripts/sbtPublish ";project scala3-bootstrapped ;publishSigned ;sonatypeBundleUpload"


open_issue_on_failure:
Expand All @@ -774,3 +773,30 @@ jobs:
WORKFLOW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
with:
filename: .github/workflows/issue_nightly_failed.md

build-sdk-package:
uses: ./.github/workflows/build-sdk.yml
if:
(github.event_name == 'pull_request' && !contains(github.event.pull_request.body, '[skip ci]')) ||
(github.event_name == 'workflow_dispatch' && github.repository == 'scala/scala3') ||
(github.event_name == 'schedule' && github.repository == 'scala/scala3') ||
github.event_name == 'push'
with:
java-version: 8

build-chocolatey-package:
uses: ./.github/workflows/build-chocolatey.yml
needs: [ build-sdk-package ]
with:
version: 3.3.5-local # unused
url : https://api.github.com/repos/scala/scala3/actions/artifacts/${{ needs.build-sdk-package.outputs.universal-id }}/zip
digest : ${{ needs.build-sdk-package.outputs.universal-digest }}

test-chocolatey-package:
uses: ./.github/workflows/test-chocolatey.yml
with:
version : 3.3.5-local # unused
java-version: 8
if: github.event_name == 'pull_request' && contains(github.event.pull_request.body, '[test_chocolatey]')
needs: [ build-chocolatey-package ]

1 change: 1 addition & 0 deletions .github/workflows/dependency-graph.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: sbt/setup-sbt@v1
- uses: scalacenter/sbt-dependency-submission@v3
1 change: 1 addition & 0 deletions .github/workflows/language-reference.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ jobs:
distribution: 'temurin'
java-version: 17
cache: 'sbt'
- uses: sbt/setup-sbt@v1

- name: Generate reference documentation and test links
run: |
Expand Down
39 changes: 39 additions & 0 deletions .github/workflows/publish-chocolatey.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
###################################################################################################
### THIS IS A REUSABLE WORKFLOW TO PUBLISH SCALA TO CHOCOLATEY ###
### HOW TO USE: ###
### - THE RELEASE WORKFLOW SHOULD CALL THIS WORKFLOW ###
### - IT WILL PUBLISH TO CHOCOLATEY THE MSI ###
### ###
### NOTE: ###
### - WE SHOULD KEEP IN SYNC THE NAME OF THE MSI WITH THE ACTUAL BUILD ###
### - WE SHOULD KEEP IN SYNC THE URL OF THE RELEASE ###
### - IT ASSUMES THAT THE `build-chocolatey` WORKFLOW WAS EXECUTED BEFORE ###
###################################################################################################


name: Publish Scala to Chocolatey
run-name: Publish Scala ${{ inputs.version }} to Chocolatey

on:
workflow_call:
inputs:
version:
required: true
type: string
secrets:
# Connect to https://community.chocolatey.org/profiles/scala
# Accessible via https://community.chocolatey.org/account
API-KEY:
required: true

jobs:
publish:
runs-on: windows-latest
steps:
- name: Fetch the Chocolatey package from GitHub
uses: actions/download-artifact@v4
with:
name: scala.nupkg
- name: Publish the package to Chocolatey
run: choco push scala.nupkg --source https://push.chocolatey.org/ --api-key ${{ secrets.API-KEY }}

Loading

0 comments on commit 824fe3d

Please sign in to comment.