diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c2778d6d..fd8d998a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,33 +7,28 @@ on: pull_request: types: [opened, synchronize, reopened] -env: - BUILD_CACHE_URL: ${{ secrets.BUILD_CACHE_URL }} - BUILD_CACHE_USERNAME: ${{ secrets.BUILD_CACHE_USERNAME }} - BUILD_CACHE_PASSWORD: ${{ secrets.BUILD_CACHE_PASSWORD }} - jobs: validate-wrapper: name: "Validate Gradle wrapper" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: gradle/wrapper-validation-action@v1 + - uses: actions/checkout@v4 + - uses: gradle/actions/wrapper-validation@v4 check: name: "Run tests & checks" runs-on: ubuntu-latest needs: [validate-wrapper] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: distribution: "temurin" java-version: "11" # Required for PrismaKT tests (which call npx prisma) - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 16 @@ -42,10 +37,10 @@ jobs: # from concurrent installations of Prisma, this attempts to fix it. - name: Setup Gradle - uses: gradle/gradle-build-action@v2 + uses: gradle/actions/setup-gradle@v4 - name: Run checks and tests - run: ./gradlew check --build-cache -I ci/build-cache.init.gradle + run: ./gradlew check - name: Upload code coverage to CodeCov uses: codecov/codecov-action@v3 @@ -58,96 +53,61 @@ jobs: runs-on: ubuntu-latest needs: [validate-wrapper] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: distribution: "temurin" java-version: "11" - name: Setup Gradle - uses: gradle/gradle-build-action@v2 + uses: gradle/actions/setup-gradle@v4 - name: Publish catalog to local Maven repo - run: "./gradlew :tegral-catalog:publishToMavenLocal --build-cache -I ci/build-cache.init.gradle" + run: "./gradlew :tegral-catalog:publishToMavenLocal" - name: Run check on example run: | examples="step-1 step-2" for example in $examples; do - ./gradlew -p "examples/tutorial/${example}" check --include-build ../../.. --build-cache -I ../../../ci/build-cache.init.gradle + ./gradlew -p "examples/tutorial/${example}" check --include-build ../../.. done - build-dokka: - name: "Generate Dokka files" - runs-on: ubuntu-latest + build-deploy-website: + name: Assemble and deploy website needs: [validate-wrapper] + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: "temurin" java-version: "11" - - - name: Setup Gradle - uses: gradle/gradle-build-action@v2 - - - name: Generate Dokka documentation - run: ./gradlew :website:rewriteDokkaLinks --build-cache -I ci/build-cache.init.gradle - - build-docs: - name: "Build Docusaurus" - needs: [validate-wrapper] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 with: version: 7 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - cache: 'pnpm' - cache-dependency-path: '**/pnpm-lock.yaml' + cache: "pnpm" + cache-dependency-path: "**/pnpm-lock.yaml" - name: Install dependencies run: | cd docs && pnpm i --frozen-lockfile - name: Setup Gradle - uses: gradle/gradle-build-action@v2 - - - name: Build documentation website - run: ./gradlew :docs:docusaurusBuild --build-cache -I ci/build-cache.init.gradle - - build-deploy-website: - name: Assemble and deploy website - needs: [validate-wrapper, build-docs, build-dokka, check, check-examples] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - uses: actions/setup-java@v3 - with: - distribution: "temurin" - java-version: "11" - - - name: Setup Gradle - uses: gradle/gradle-build-action@v2 - - # TODO maybe unnecessary - - uses: actions/setup-node@v3 + uses: gradle/actions/setup-gradle@v4 - name: Assemble website files - run: ./gradlew :website:assembleFiles --build-cache -I ci/build-cache.init.gradle + run: ./gradlew :website:assembleFiles - name: Deploy to Netlify - uses: nwtgck/actions-netlify@v2.0.0 + uses: nwtgck/actions-netlify@v3 with: production-deploy: "${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}" publish-dir: "website/build/output" github-token: ${{ secrets.GITHUB_TOKEN }} enable-pull-request-comment: true - enable-commit-comment: true + enable-commit-comment: false overwrites-pull-request-comment: true netlify-config-path: ./netlify.toml env: @@ -161,14 +121,14 @@ jobs: runs-on: ubuntu-latest needs: [validate-wrapper, check, check-examples] steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: "temurin" java-version: "11" - name: Setup Gradle - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v4 - name: Publish snapshot env: @@ -176,22 +136,22 @@ jobs: ORG_GRADLE_PROJECT_mavenCentralSnapshotsPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_PRIVATE_KEY }} ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_PASSPHRASE }} - run: ./gradlew -PpublishSnapshot -Psign publish --build-cache -I ci/build-cache.init.gradle + run: ./gradlew -PpublishSnapshot -Psign publish publish-release: name: Publish release if: "github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')" runs-on: ubuntu-latest - needs: [validate-wrapper, check, build-deploy-website] + needs: [validate-wrapper, check, build-deploy-website, check-examples] steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: "temurin" java-version: "11" - name: Setup Gradle - uses: gradle/gradle-build-action@v2 + uses: gradle/gradle-build-action@v4 - name: Publish release env: @@ -199,5 +159,4 @@ jobs: ORG_GRADLE_PROJECT_mavenCentralReleasePassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_PRIVATE_KEY }} ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_PASSPHRASE }} - # No build cache here to be 100% sure that cache weirdness cannot affect the final, definitive jars run: ./gradlew -PpublishRelease -Psign publish diff --git a/ci/build-cache.init.gradle b/ci/build-cache.init.gradle deleted file mode 100644 index 15e4b276..00000000 --- a/ci/build-cache.init.gradle +++ /dev/null @@ -1,17 +0,0 @@ -def cacheUrl = System.getenv('BUILD_CACHE_URL') -def cacheUsername = System.getenv('BUILD_CACHE_USERNAME') -def cachePassword = System.getenv('BUILD_CACHE_PASSWORD') -def isCi = System.getenv().containsKey('CI') - -gradle.settingsEvaluated { settings -> - settings.buildCache { - remote(HttpBuildCache) { - url = cacheUrl - credentials { - username = cacheUsername - password = cachePassword - } - push = isCi - } - } -}