Skip to content
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

test: investigate prepare frontend task cache (DO NOT MERGE) #182

Draft
wants to merge 42 commits into
base: v24
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
73d3e5e
test: investigate prepare frontend task cache
mcollovati Dec 4, 2023
f245c7c
update config
mcollovati Dec 4, 2023
6370c5b
update config
mcollovati Dec 4, 2023
270e059
test: empty commit
mcollovati Dec 4, 2023
d59c9f9
try remove npm folder from inputs
mcollovati Dec 4, 2023
b4ef49e
test V24.3
mcollovati Dec 5, 2023
ce510e1
debug cache
mcollovati Dec 5, 2023
5e0ad4c
disable frontend hot-deploy
mcollovati Dec 5, 2023
f4ddf03
do not clean
mcollovati Dec 5, 2023
e5e3335
update java setup action
mcollovati Dec 5, 2023
f0fee5b
update java setup action
mcollovati Dec 5, 2023
4a5ab56
update checkout action
mcollovati Dec 5, 2023
42ee2e8
try overwrite cache
mcollovati Dec 5, 2023
37e6914
bump gradle
mcollovati Dec 5, 2023
a90207a
Revert "bump gradle"
mcollovati Dec 5, 2023
cbc5788
try this
mcollovati Dec 5, 2023
e901354
try this
mcollovati Dec 5, 2023
2beefac
Revert "try this"
mcollovati Dec 5, 2023
2d2043f
Revert "try this"
mcollovati Dec 5, 2023
03f6fe8
inspect
mcollovati Dec 6, 2023
3573c16
inspect
mcollovati Dec 6, 2023
f55b8cc
inspect
mcollovati Dec 6, 2023
978e797
test
mcollovati Dec 6, 2023
4f6aac3
test
mcollovati Dec 6, 2023
d002bc0
test
mcollovati Dec 6, 2023
d102a47
test
mcollovati Dec 6, 2023
4dd67e8
test
mcollovati Dec 6, 2023
3ced41c
test
mcollovati Dec 6, 2023
c929179
test
mcollovati Dec 6, 2023
e029df1
test
mcollovati Dec 6, 2023
2cab587
test
mcollovati Dec 6, 2023
291fc1d
test
mcollovati Dec 6, 2023
7b5b149
test
mcollovati Dec 6, 2023
248f58c
test
mcollovati Dec 6, 2023
97ebba7
test: empty commit
mcollovati Dec 6, 2023
043d6ac
Update gradle.properties
mcollovati Dec 7, 2023
bc98db7
update packge json
mcollovati Dec 7, 2023
755bdfb
update packge json
mcollovati Dec 7, 2023
622bfc6
test
mcollovati Dec 12, 2023
c7e311e
bump node
mcollovati Dec 15, 2023
e5b995c
gradle 8.5
mcollovati Dec 15, 2023
e6727e4
try this
mcollovati Dec 18, 2023
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
165 changes: 142 additions & 23 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,156 @@
name: Gradle

on: [push, pull_request]
on: [push, workflow_dispatch]

jobs:
build:

strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest]
java: [17]

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v1
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts', 'gradle/wrapper/gradle-wrapper.properties', 'gradle.properties') }}
- name: Cache pnpm packages
uses: actions/cache@v2
with:
path: |
~/.vaadin
~/.pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml', '**/package.json') }}
- name: Build with Gradle
run: ./gradlew clean build '-Pvaadin.productionMode' --stacktrace --info --no-daemon
- uses: actions/setup-node@v3
with:
node-version: '20.10.0'
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ matrix.java }}

- name: Pre-details
id: pre_details
run: |
packageChecksum=$(md5sum package.json)
packageStat=$(stat package.json | sed 's/$/\\n/' | tr -d '\n')
packageLockChecksum=$(md5sum package-lock.json || echo "File not found")
packageLockStat=$([[ -f package-lock.json ]] && stat package-lock.json | sed 's/$/\\n/' | tr -d '\n' || echo "File not found.")
echo $packageChecksum
echo "$packageStat"
echo $packageLockChecksum
echo "$packageLockStat"
echo "package=$packageChecksum" >> "$GITHUB_OUTPUT"
echo "packageStat=$packageStat" >> "$GITHUB_OUTPUT"
echo "packageLock=$packageLockChecksum" >> "$GITHUB_OUTPUT"
echo "packageLockStat=$packageLockStat" >> "$GITHUB_OUTPUT"

- name: Setup Gradle
uses: gradle/gradle-build-action@v2
with:
# The Gradle wrapper's version (already the default, putting it here to clarity)
gradle-version: wrapper
# Removing unused files from Gradle User Home before saving to cache (i.e. older versions of gradle)
gradle-home-cache-cleanup: true
# Cache downloaded JDKs in addition to the default directories.
gradle-home-cache-includes: |
caches
notifications
jdks
# Only write to the cache for builds on the 'main' and 'release' branches. (Default is 'main' only.)
# Builds on other branches will only read existing entries from the cache.
#cache-read-only: ${{ github.ref != 'refs/heads/main' }}

# In our setup, we have `main` as the `source of truth`, but to avoid complications we will just
# allow cache writing from any branch.
cache-read-only: false
env:
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true


- name: Cache pnpm packages
uses: actions/cache@v2
with:
path: |
~/.vaadin
~/.pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml', '**/package.json') }}

- name: Archive package.json and package-lock.json (pre build)
uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: pre-build-package-json
path: |
package.json
package-lock.json
~/.gradle/caches/build-cache-1/*

- name: Only prepare frontend
run: ./gradlew vaadinPrepareFrontend '-Pvaadin.productionMode' --stacktrace --info --no-daemon --build-cache -Dorg.gradle.caching.debug=true
- name: Build with Gradle
run: ./gradlew clean build '-Pvaadin.productionMode' --stacktrace --info --no-daemon --build-cache -Dorg.gradle.caching.debug=true

- name: Archive package.json and package-lock.json (post build)
uses: actions/upload-artifact@v3
if: ${{ always() }}
with:
name: post-build-package-json
path: |
package.json
package-lock.json

- name: Post-details
id: post_details
run: |
packageChecksum=$(md5sum package.json)
packageStat=$(stat package.json | sed 's/$/\\n/' | tr -d '\n')
packageLockChecksum=$(md5sum package-lock.json || echo "File not found")
packageLockStat=$([[ -f package-lock.json ]] && stat package-lock.json | sed 's/$/\\n/' | tr -d '\n' || echo "File not found.")
echo $packageChecksum
echo "$packageStat"
echo $packageLockChecksum
echo "$packageLockStat"
echo "package=$packageChecksum" >> "$GITHUB_OUTPUT"
echo "packageStat=$packageStat" >> "$GITHUB_OUTPUT"
echo "packageLock=$packageLockChecksum" >> "$GITHUB_OUTPUT"
echo "packageLockStat=$packageLockStat" >> "$GITHUB_OUTPUT"
echo "packageLockStat=$packageLockStat" >> "$GITHUB_OUTPUT"


- name: Adding summary
run: |
echo '### Filesystem details' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo 'Workspace path:' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo '${{ github.workspace }}' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo 'Filesystem' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
fs=$(mount)
echo "$fs" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY

echo '### Pre build details' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo 'Checksums: ' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo -e '${{ steps.pre_details.outputs.package }}' >> $GITHUB_STEP_SUMMARY
echo -e '${{ steps.pre_details.outputs.packageLock }}' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo 'File stats' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo -e '${{ steps.pre_details.outputs.packageStat }}' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo -e '${{ steps.pre_details.outputs.packageLockStat }}' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY

echo '### Post build details' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo 'Checksums: ' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo -e '${{ steps.post_details.outputs.package }}' >> $GITHUB_STEP_SUMMARY
echo -e '${{ steps.post_details.outputs.packageLock }}' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo 'File stats' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo -e '${{ steps.post_details.outputs.packageStat }}' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo -e '${{ steps.post_details.outputs.packageLockStat }}' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
60 changes: 57 additions & 3 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,32 @@ gretty {
// for more configuraion options please see: https://vaadin.com/docs/latest/guide/start/gradle/#all-options
vaadin {
pnpmEnable = false
frontendHotdeploy = false
productionMode = true
forceProductionBuild = true
}

dependencies {
implementation enforcedPlatform("com.vaadin:vaadin-bom:$vaadinVersion")

compileOnly("com.vaadin:flow-gradle-plugin:$vaadinVersion")
// Vaadin
implementation("com.vaadin:vaadin-core")

// logging
// currently we are logging through the SLF4J API to SLF4J-Simple. See src/main/resources/simplelogger.properties file for the logger configuration
implementation "org.slf4j:slf4j-simple:2.0.7"
}

import com.vaadin.gradle.VaadinPrepareFrontendTask

tasks.withType(VaadinPrepareFrontendTask).configureEach {t ->
try {
t.outputs.previousOutputFiles.forEach { f ->
println "${f.name} ### ${f.size()}"
}
} catch (Exception ex) {}
//t.outputs.file(file(new File(project.projectDir, "/package.json")))
// .withPropertyName('outputProperties$vaadin_gradle_plugin.packageJson')
// .optional()
}
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
vaadinVersion=24.2.5
vaadinVersion=24.3.0.rc1
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Loading
Loading