Skip to content

feat: handle root security requirements on root DSL #352

feat: handle root security requirements on root DSL

feat: handle root security requirements on root DSL #352

Workflow file for this run

name: CI
on:
push:
branches: [main]
tags: ["v*.*.*", "website*"]
pull_request:
types: [opened, synchronize, reopened]
jobs:
validate-wrapper:
name: "Validate Gradle wrapper"
runs-on: ubuntu-latest
steps:
- 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@v4
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "11"
# Required for PrismaKT tests (which call npx prisma)
- uses: actions/setup-node@v4
with:
node-version: 16
- run: npm i -g prisma
# HACK Sometimes, CI tests fail with a "TAR_ENTRY_ERROR ENOENT" error. This may be caused by a race condition
# from concurrent installations of Prisma, this attempts to fix it.
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Run checks and tests
run: ./gradlew check
- name: Upload code coverage to CodeCov
uses: codecov/codecov-action@v3
with:
files: "code-coverage/build/reports/jacoco/aggregatedCodeCoverage/aggregatedCodeCoverage.xml"
token: ${{ secrets.CODECOV_TOKEN }}
check-examples:
name: "Check examples"
runs-on: ubuntu-latest
needs: [validate-wrapper]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "11"
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Publish catalog to local Maven repo
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 ../../..
done
build-deploy-website:
name: Assemble and deploy website
needs: [validate-wrapper]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "11"
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
cache: "pnpm"
cache-dependency-path: "**/pnpm-lock.yaml"
- name: Install dependencies
run: |
cd docs && pnpm i --frozen-lockfile
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Assemble website files
run: ./gradlew :website:assembleFiles
- name: Deploy to Netlify
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: false
overwrites-pull-request-comment: true
netlify-config-path: ./netlify.toml
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
timeout-minutes: 5
publish-snapshot:
name: Publish snapshot
if: "github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')"
runs-on: ubuntu-latest
needs: [validate-wrapper, check, check-examples]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "11"
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Publish snapshot
env:
ORG_GRADLE_PROJECT_mavenCentralSnapshotsUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
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
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, check-examples]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "11"
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Publish release
env:
ORG_GRADLE_PROJECT_mavenCentralReleaseUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralReleasePassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_PRIVATE_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_PASSPHRASE }}
run: ./gradlew -PpublishRelease -Psign publish