Optimise tags use in Chunk implementations
#15939
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| env: | |
| JDK_JAVA_OPTIONS: -XX:+PrintCommandLineFlags -Xms2G -Xmx8G -Xss4M -XX:+UseG1GC -XX:ReservedCodeCacheSize=512M -XX:NonProfiledCodeHeapSize=256M # JDK_JAVA_OPTIONS is _the_ env. variable to use for modern Java | |
| SBT_OPTS: -XX:+PrintCommandLineFlags -Xms2G -Xmx8G -Xss4M -XX:+UseG1GC -XX:ReservedCodeCacheSize=512M -XX:NonProfiledCodeHeapSize=256M # Needed for sbt | |
| NODE_OPTIONS: --max_old_space_size=6144 | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - 'series/2.x' | |
| release: | |
| types: | |
| - published | |
| repository_dispatch: | |
| types: [update-docs] | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| if: ${{ ((github.event_name != 'repository_dispatch') && (github.event.action != 'update-docs')) }} | |
| steps: | |
| - name: Checkout current branch | |
| uses: actions/[email protected] | |
| - name: Setup Java | |
| uses: actions/[email protected] | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| check-latest: true | |
| - name: Setup sbt | |
| uses: sbt/setup-sbt@v1 | |
| - name: Cache scala dependencies | |
| uses: coursier/cache-action@v7 | |
| - name: Lint code | |
| run: sbt "++2.13; check; ++3.3; check" | |
| publishLocal: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| if: ${{ ((github.event_name != 'repository_dispatch') && (github.event.action != 'update-docs')) }} | |
| env: | |
| CI_RELEASE_MODE: 1 # Needed to enable optimizers | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| scala: ['2.12.x', '2.13.x', '3.x'] | |
| steps: | |
| - name: Checkout current branch | |
| uses: actions/[email protected] | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Java | |
| uses: actions/[email protected] | |
| with: | |
| distribution: temurin | |
| java-version: 11 | |
| check-latest: true | |
| - name: Setup sbt | |
| uses: sbt/setup-sbt@v1 | |
| - name: Cache scala dependencies | |
| uses: coursier/cache-action@v7 | |
| - name: publishLocal 2.12 | |
| if: ${{ startsWith(matrix.scala, '2.12.') }} | |
| run: sbt --client -v "++${{ matrix.scala }}; root212/Test/compile; root212/publishLocal" | |
| - name: publishLocal 2.13 | |
| if: ${{ startsWith(matrix.scala, '2.13.') }} | |
| run: sbt --client -v "++${{ matrix.scala }}; root213/Test/compile; root213/publishLocal" | |
| - name: publishLocal 3 | |
| if: ${{ startsWith(matrix.scala, '3.') }} | |
| run: sbt --client -v "++${{ matrix.scala }}; root3/Test/compile; root3/publishLocal" | |
| - name: Mima Checks | |
| run: sbt --client mimaChecks | |
| - name: Shutdown SBT server | |
| run: sbt --client shutdown | |
| build-website: | |
| runs-on: ubuntu-latest | |
| if: ${{ ((github.event_name != 'repository_dispatch') && (github.event.action != 'update-docs')) }} | |
| steps: | |
| - name: Checkout Current Branch | |
| uses: actions/[email protected] | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Java | |
| uses: actions/[email protected] | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| check-latest: true | |
| - name: Setup sbt | |
| uses: sbt/setup-sbt@v1 | |
| - name: Install NodeJS | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 20 | |
| - name: Compile Docs | |
| run: | | |
| while true; do free -h; sleep 5; done & | |
| sbt -v "docs/mdoc; docs/unidoc" | |
| - name: Build The Website | |
| working-directory: ./website | |
| run: | | |
| rm -Rf node_modules | |
| yarn install | |
| yarn build | |
| - name: Cache Website's Build Artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: website-artifact | |
| path: ./website/build | |
| overwrite: true | |
| - name: Print All Generated Files | |
| run: find ./website/build -print | |
| test: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| if: ${{ ((github.event_name != 'repository_dispatch') && (github.event.action != 'update-docs')) }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| scala: ['2.12.x', '2.13.x', '3.x'] | |
| java: ['21'] | |
| platform: ['JVM'] | |
| steps: | |
| - name: Checkout current branch | |
| uses: actions/[email protected] | |
| - name: Setup Java | |
| uses: actions/[email protected] | |
| with: | |
| distribution: temurin | |
| java-version: ${{ matrix.java }} | |
| check-latest: true | |
| - name: Setup sbt | |
| uses: sbt/setup-sbt@v1 | |
| - name: Cache scala dependencies | |
| uses: coursier/cache-action@v7 | |
| - name: Run tests | |
| run: sbt -v ++${{ matrix.scala }} test${{ matrix.platform }} | |
| - name: Upload Test Results 2.12 | |
| if: ${{ startsWith(matrix.scala, '2.12.') }} | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: zio-test-output-2.12 | |
| path: ./**/test-reports-zio/output.json | |
| overwrite: true | |
| - name: Upload Test Results 3 | |
| if: ${{ startsWith(matrix.scala, '3.') }} | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: zio-test-output-3 | |
| path: ./**/test-reports-zio/output.json | |
| overwrite: true | |
| - name: Report Test Death 2.12 | |
| if: ${{ failure() && startsWith(matrix.scala, '2.12.') }} | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: zio-test-debug-2.12 | |
| path: ./**/test-reports-zio/**_debug.txt | |
| overwrite: true | |
| - name: Report Test Death 2.13 | |
| if: ${{ failure() && startsWith(matrix.scala, '2.13.') }} | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: zio-test-debug-2.13 | |
| path: ./**/test-reports-zio/**_debug.txt | |
| overwrite: true | |
| - name: Report Test Death 3.x | |
| if: ${{ failure() && startsWith(matrix.scala, '3.') }} | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: zio-test-debug-3.x | |
| path: ./**/test-reports-zio/**_debug.txt | |
| overwrite: true | |
| testJvms: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| if: ${{ ((github.event_name != 'repository_dispatch') && (github.event.action != 'update-docs')) }} | |
| env: | |
| CI_RELEASE_MODE: 1 # Run these tests with optimizations enabled | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java: ['11', '17', '21'] | |
| steps: | |
| - name: Checkout current branch | |
| uses: actions/[email protected] | |
| - name: Setup Java | |
| uses: actions/[email protected] | |
| with: | |
| distribution: temurin | |
| java-version: ${{ matrix.java }} | |
| check-latest: true | |
| - name: Setup sbt | |
| uses: sbt/setup-sbt@v1 | |
| - name: Cache scala dependencies | |
| uses: coursier/cache-action@v7 | |
| - name: Test on different JVM versions | |
| run: sbt -v testJVM | |
| - name: Report Test Death JVM 11 | |
| if: ${{ failure() && startsWith(matrix.java, '11') }} | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: zio-test-debug-JVM-11 | |
| path: ./**/test-reports-zio/**_debug.txt | |
| overwrite: true | |
| testPlatforms: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| if: ${{ ((github.event_name != 'repository_dispatch') && (github.event.action != 'update-docs')) }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java: ['25'] | |
| platform: ['JS', 'Native1', 'Native2'] | |
| steps: | |
| - name: Checkout current branch | |
| uses: actions/[email protected] | |
| - name: Install Boehm GC | |
| if: ${{ startsWith(matrix.platform, 'Native') }} | |
| run: sudo apt-get update && sudo apt-get install -y libgc-dev | |
| - name: Setup Java | |
| uses: actions/[email protected] | |
| with: | |
| distribution: temurin | |
| java-version: ${{ matrix.java }} | |
| check-latest: true | |
| - name: Setup sbt | |
| uses: sbt/setup-sbt@v1 | |
| - name: Cache scala dependencies | |
| uses: coursier/cache-action@v7 | |
| - name: Set Swap Space | |
| uses: pierotofy/set-swap-space@master | |
| with: | |
| swap-size-gb: 9 | |
| - name: Test on different Scala target platforms | |
| run: free --si -tmws 10 & sbt -v test${{ matrix.platform }} | |
| ci: | |
| if: always() | |
| runs-on: ubuntu-latest | |
| needs: [lint, publishLocal, build-website, test, testJvms, testPlatforms] | |
| steps: | |
| - uses: re-actors/alls-green@release/v1 | |
| with: | |
| jobs: ${{ toJSON(needs) }} | |
| publish: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| needs: [ci] | |
| if: github.event_name != 'pull_request' | |
| steps: | |
| - name: Checkout current branch | |
| uses: actions/[email protected] | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Java | |
| uses: actions/[email protected] | |
| with: | |
| distribution: temurin | |
| java-version: 11 | |
| check-latest: true | |
| - name: Setup sbt | |
| uses: sbt/setup-sbt@v1 | |
| - name: Release | |
| run: sbt -v ci-release | |
| env: | |
| PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | |
| PGP_SECRET: ${{ secrets.PGP_SECRET }} | |
| SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
| SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
| CI_RELEASE_MODE: 1 # Needed to enable optimizers | |
| publish-website: | |
| needs: [ci] | |
| if: github.event_name != 'pull_request' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/[email protected] | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/download-artifact@v7 | |
| with: | |
| name: website-artifact | |
| path: website-artifact | |
| - name: Release to GitHub Pages | |
| uses: JamesIves/[email protected] | |
| with: | |
| branch: gh-pages | |
| folder: ./website-artifact | |
| update-docs: | |
| runs-on: ubuntu-latest | |
| if: ${{ ((github.event_name == 'repository_dispatch') && (github.event.action == 'update-docs')) }} | |
| steps: | |
| - name: Git Checkout | |
| uses: actions/[email protected] | |
| with: | |
| ref: ${{ github.head_ref }} | |
| - name: Commit Changes | |
| run: | | |
| cd website | |
| git config --local user.email "github-actions[bot]@users.noreply.github.com" | |
| git config --local user.name "github-actions[bot]" | |
| package_name="${{ github.event.client_payload.package_name }}" | |
| package_version="${{ github.event.client_payload.package_version }}" | |
| yarn add "$package_name@$package_version" | |
| git add package.json | |
| commit_message="Update $package_name to $package_version" | |
| git commit -m "$commit_message" || echo "No changes to commit" | |
| - name: Generate a token | |
| id: generate-tokens | |
| uses: actions/[email protected] | |
| with: | |
| app-id: ${{ secrets.APP_ID }} | |
| private-key: ${{ secrets.APP_SECRET }} | |
| owner: ${{ github.repository_owner }} | |
| - name: Create Pull Request to Update Docs | |
| uses: peter-evans/[email protected] | |
| with: | |
| token: ${{ steps.generate-token.outputs.token }} | |
| body: |- | |
| The new version of ${{ github.event.client_payload.package_name }} was released. | |
| Let's update the zio.dev to reflect the latest docs. | |
| branch: zio-sbt/update-docs/${{ github.event.client_payload.package_name }} | |
| commit-message: Update ${{ github.event.client_payload.package_name }} docs | |
| to ${{ github.event.client_payload.package_version }} | |
| delete-branch: true | |
| title: Update ${{ github.event.client_payload.package_name }} docs | |
| to ${{ github.event.client_payload.package_version }} |