diff --git a/.github/workflows/ant.yml b/.github/workflows/ant.yml index 69e2924244..31f94891b5 100644 --- a/.github/workflows/ant.yml +++ b/.github/workflows/ant.yml @@ -18,14 +18,15 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Set up JDK 8 - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: 1.8 - java-package: jdk + java-version: '8' + distribution: 'temurin' + cache: 'maven' - name: Install dependencies - run: sudo apt-get update && sudo apt-get install xvfb + run: sudo apt-get update && sudo apt-get install -y --no-install-recommends xvfb - name: Build with Maven run: | cd maven diff --git a/.github/workflows/designer.yml b/.github/workflows/designer.yml index 164162b7ec..75251cc810 100644 --- a/.github/workflows/designer.yml +++ b/.github/workflows/designer.yml @@ -27,19 +27,31 @@ jobs: uses: actions/checkout@v4 - name: Set up JDK 8 - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: 1.8 - java-package: jdk + java-version: '8' + distribution: 'temurin' + cache: 'maven' - name: Install build dependencies run: sudo apt-get update && sudo apt-get install -y --no-install-recommends xvfb unzip + - name: Cache cn1-binaries + uses: actions/cache@v4 + with: + path: ../cn1-binaries + key: cn1-binaries-${{ runner.os }}-designer + restore-keys: | + cn1-binaries-${{ runner.os }}- + - name: Fetch cn1 binaries run: | - wget https://github.com/codenameone/cn1-binaries/archive/refs/heads/master.zip - unzip master.zip -d .. - mv ../cn1-binaries-master ../cn1-binaries + if [ ! -d ../cn1-binaries ] || [ -z "$(ls -A ../cn1-binaries 2>/dev/null)" ]; then + wget -q https://github.com/codenameone/cn1-binaries/archive/refs/heads/master.zip + unzip -q master.zip -d .. + rm -rf ../cn1-binaries + mv ../cn1-binaries-master ../cn1-binaries + fi mkdir -p maven/target rm -rf maven/target/cn1-binaries cp -R ../cn1-binaries maven/target/cn1-binaries diff --git a/.github/workflows/ios-packaging.yml b/.github/workflows/ios-packaging.yml index 92005bda20..73615b8f84 100644 --- a/.github/workflows/ios-packaging.yml +++ b/.github/workflows/ios-packaging.yml @@ -56,6 +56,17 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Cache CocoaPods and user gems + uses: actions/cache@v4 + with: + path: | + ~/.gem + ~/Library/Caches/CocoaPods + ~/.cocoapods/repos + key: ${{ runner.os }}-pods-v1-${{ hashFiles('scripts/setup-workspace.sh') }} + restore-keys: | + ${{ runner.os }}-pods-v1- + - name: Ensure CocoaPods tooling run: | mkdir -p ~/.codenameone @@ -63,7 +74,9 @@ jobs: set -euo pipefail GEM_USER_DIR="$(ruby -e 'print Gem.user_dir')" export PATH="$GEM_USER_DIR/bin:$PATH" - gem install cocoapods xcodeproj --no-document --user-install + if ! command -v pod >/dev/null 2>&1; then + gem install cocoapods xcodeproj --no-document --user-install + fi pod --version - name: Compute setup-workspace hash @@ -85,6 +98,14 @@ jobs: restore-keys: | ${{ runner.os }}-cn1-tools- + - name: Cache Maven repository + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-m2- + - name: Restore cn1-binaries cache uses: actions/cache@v4 with: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 06dc633b27..d0da658e81 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -53,7 +53,7 @@ jobs: java-version: [8, 17, 21] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Validate Java 25 markdown docs style (CodenameOne + CLDC11) run: ./.github/scripts/validate-java25-markdown-docs.sh - name: Set up Java diff --git a/.github/workflows/release-on-maven-central.yml b/.github/workflows/release-on-maven-central.yml index 9efc7f1cfa..ff93e21787 100644 --- a/.github/workflows/release-on-maven-central.yml +++ b/.github/workflows/release-on-maven-central.yml @@ -10,11 +10,13 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Maven Central Repository - uses: actions/setup-java@v1 + uses: actions/setup-java@v4 with: - java-version: 1.8 + java-version: '8' + distribution: 'temurin' + cache: 'maven' server-id: central server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD diff --git a/.github/workflows/scripts-android.yml b/.github/workflows/scripts-android.yml index 3feff66377..4a42658c9b 100644 --- a/.github/workflows/scripts-android.yml +++ b/.github/workflows/scripts-android.yml @@ -126,6 +126,24 @@ jobs: key: ${{ runner.os }}-cn1-tools-${{ hashFiles('scripts/setup-workspace.sh') }} restore-keys: | ${{ runner.os }}-cn1-tools- + - name: Cache Maven repository + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-android-${{ matrix.id }}-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-m2-android-${{ matrix.id }}- + ${{ runner.os }}-m2- + - name: Cache Gradle + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ matrix.id }}-${{ hashFiles('scripts/hellocodenameone/**/build.gradle*', 'scripts/hellocodenameone/**/gradle-wrapper.properties', 'Ports/Android/build.gradle*') }} + restore-keys: | + ${{ runner.os }}-gradle-${{ matrix.id }}- + ${{ runner.os }}-gradle- - name: Setup workspace run: ./scripts/setup-workspace.sh -q -DskipTests - name: Build Android port diff --git a/.github/workflows/scripts-ios-native.yml b/.github/workflows/scripts-ios-native.yml index 56cef13ea4..e188200b5c 100644 --- a/.github/workflows/scripts-ios-native.yml +++ b/.github/workflows/scripts-ios-native.yml @@ -66,6 +66,17 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Cache CocoaPods and user gems + uses: actions/cache@v4 + with: + path: | + ~/.gem + ~/Library/Caches/CocoaPods + ~/.cocoapods/repos + key: ${{ runner.os }}-pods-v1-${{ hashFiles('scripts/setup-workspace.sh') }} + restore-keys: | + ${{ runner.os }}-pods-v1- + - name: Ensure CocoaPods tooling run: | mkdir -p ~/.codenameone @@ -76,7 +87,9 @@ jobs: fi GEM_USER_DIR="$(ruby -e 'print Gem.user_dir')" export PATH="$GEM_USER_DIR/bin:$PATH" - gem install cocoapods xcodeproj --no-document --user-install + if ! command -v pod >/dev/null 2>&1; then + gem install cocoapods xcodeproj --no-document --user-install + fi pod --version - name: Compute setup-workspace hash @@ -96,6 +109,14 @@ jobs: restore-keys: | ${{ runner.os }}-cn1-tools- + - name: Cache Maven repository + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-m2- + - name: Restore cn1-binaries cache uses: actions/cache@v4 with: diff --git a/.github/workflows/scripts-ios.yml b/.github/workflows/scripts-ios.yml index 13246ce84a..f7665b4180 100644 --- a/.github/workflows/scripts-ios.yml +++ b/.github/workflows/scripts-ios.yml @@ -76,6 +76,16 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Cache CocoaPods and user gems + uses: actions/cache@v4 + with: + path: | + ~/.gem + ~/Library/Caches/CocoaPods + ~/.cocoapods/repos + key: ${{ runner.os }}-pods-v1-${{ hashFiles('scripts/setup-workspace.sh') }} + restore-keys: | + ${{ runner.os }}-pods-v1- - name: Ensure CocoaPods tooling run: | @@ -87,7 +97,9 @@ jobs: fi GEM_USER_DIR="$(ruby -e 'print Gem.user_dir')" export PATH="$GEM_USER_DIR/bin:$PATH" - gem install cocoapods xcodeproj --no-document --user-install + if ! command -v pod >/dev/null 2>&1; then + gem install cocoapods xcodeproj --no-document --user-install + fi pod --version - name: Compute setup-workspace hash @@ -107,6 +119,14 @@ jobs: restore-keys: | ${{ runner.os }}-cn1-tools- + - name: Cache Maven repository + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-m2- + - name: Restore cn1-binaries cache uses: actions/cache@v4 with: