Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 3 additions & 2 deletions .github/workflows/forge-deploy-next.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-next
--image $IMAGE_NAME
--region us-central1
--update-env-vars=HOSTNAME="next.grails.org",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }}
--update-env-vars=HOSTNAME="next.grails.org",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }},GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-next-cjmq3uyfcq-uc.a.run.app"
--platform managed
--allow-unauthenticated
--service-account=${{ secrets.GCLOUD_EMAIL }}
Expand Down Expand Up @@ -155,4 +155,5 @@ jobs:
- name: "🚀 Deploy Docker image"
run: |
gcloud components install beta --quiet
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-next --image $IMAGE_NAME --region us-central1 --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
CALLER_SUBJECT="$(gcloud iam service-accounts describe ${{ secrets.GCLOUD_EMAIL }} --format='value(uniqueId)')"
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-next --image $IMAGE_NAME --region us-central1 --update-env-vars=GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-next-cjmq3uyfcq-uc.a.run.app",GRAILS_FORGE_ANALYTICS_CALLER_SUBJECT="$CALLER_SUBJECT" --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
5 changes: 3 additions & 2 deletions .github/workflows/forge-deploy-prev-snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-prev-snapshot
--image $IMAGE_NAME
--region us-central1
--update-env-vars=HOSTNAME="prev-snapshot.grails.org",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }}
--update-env-vars=HOSTNAME="prev-snapshot.grails.org",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }},GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-prev-snapshot-cjmq3uyfcq-uc.a.run.app"
--platform managed
--allow-unauthenticated
--service-account=${{ secrets.GCLOUD_EMAIL }}
Expand Down Expand Up @@ -155,4 +155,5 @@ jobs:
- name: "🚀 Deploy Docker image"
run: |
gcloud components install beta --quiet
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-prev-snapshot --image $IMAGE_NAME --region us-central1 --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
CALLER_SUBJECT="$(gcloud iam service-accounts describe ${{ secrets.GCLOUD_EMAIL }} --format='value(uniqueId)')"
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-prev-snapshot --image $IMAGE_NAME --region us-central1 --update-env-vars=GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-prev-snapshot-cjmq3uyfcq-uc.a.run.app",GRAILS_FORGE_ANALYTICS_CALLER_SUBJECT="$CALLER_SUBJECT" --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
5 changes: 3 additions & 2 deletions .github/workflows/forge-deploy-prev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-prev
--image $IMAGE_NAME
--region us-central1
--update-env-vars=HOSTNAME="prev.grails.org",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }}
--update-env-vars=HOSTNAME="prev.grails.org",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }},GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-prev-cjmq3uyfcq-uc.a.run.app"
--platform managed
--allow-unauthenticated
--service-account=${{ secrets.GCLOUD_EMAIL }}
Expand Down Expand Up @@ -155,4 +155,5 @@ jobs:
- name: "🚀 Deploy Docker image"
run: |
gcloud components install beta --quiet
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-prev --image $IMAGE_NAME --region us-central1 --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
CALLER_SUBJECT="$(gcloud iam service-accounts describe ${{ secrets.GCLOUD_EMAIL }} --format='value(uniqueId)')"
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-prev --image $IMAGE_NAME --region us-central1 --update-env-vars=GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-prev-cjmq3uyfcq-uc.a.run.app",GRAILS_FORGE_ANALYTICS_CALLER_SUBJECT="$CALLER_SUBJECT" --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
9 changes: 5 additions & 4 deletions .github/workflows/forge-deploy-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,9 @@ jobs:
release_version: ${{ needs.build.outputs.release_version }}
IMAGE_NAME: us-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_APP_NAME }}/${{ secrets.GCP_APP_NAME }}:${{ needs.build.outputs.release_version }}
run: |
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-latest --image $IMAGE_NAME --region us-central1 --update-env-vars=HOSTNAME="latest.grails.org",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_LATEST_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_LATEST_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }} --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-latest --image $IMAGE_NAME --region us-central1 --update-env-vars=HOSTNAME="latest.grails.org",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_LATEST_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_LATEST_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }},GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-latest-cjmq3uyfcq-uc.a.run.app" --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
version="$(echo "${release_version//./}" | tr '[A-Z]' '[a-z]')"
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-$version --image $IMAGE_NAME --region us-central1 --update-env-vars=HOSTNAME="grailsforge-600-cjmq3uyfcq-uc.a.run.app",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_LATEST_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_LATEST_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }} --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-$version --image $IMAGE_NAME --region us-central1 --update-env-vars=HOSTNAME="grailsforge-600-cjmq3uyfcq-uc.a.run.app",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_LATEST_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_LATEST_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }},GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-$version-cjmq3uyfcq-uc.a.run.app" --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
deployAnalytics:
name: "Deploy analytics to Google Cloud Run"
runs-on: ubuntu-24.04
Expand Down Expand Up @@ -163,6 +163,7 @@ jobs:
IMAGE_NAME: us-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_APP_NAME }}/${{ secrets.GCP_APP_NAME }}-analytics:${{ needs.build.outputs.release_version }}
run: |
gcloud components install beta --quiet
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-latest --image $IMAGE_NAME --region us-central1 --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
CALLER_SUBJECT="$(gcloud iam service-accounts describe ${{ secrets.GCLOUD_EMAIL }} --format='value(uniqueId)')"
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-latest --image $IMAGE_NAME --region us-central1 --update-env-vars=GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-latest-cjmq3uyfcq-uc.a.run.app",GRAILS_FORGE_ANALYTICS_CALLER_SUBJECT="$CALLER_SUBJECT" --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
version="$(echo "${release_version//./}" | tr '[A-Z]' '[a-z]')"
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-$version --image $IMAGE_NAME --region us-central1 --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-$version --image $IMAGE_NAME --region us-central1 --update-env-vars=GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-$version-cjmq3uyfcq-uc.a.run.app",GRAILS_FORGE_ANALYTICS_CALLER_SUBJECT="$CALLER_SUBJECT" --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
5 changes: 3 additions & 2 deletions .github/workflows/forge-deploy-snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ jobs:
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-snapshot
--image $IMAGE_NAME
--region us-central1
--update-env-vars=HOSTNAME="snapshot.grails.org",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }}
--update-env-vars=HOSTNAME="snapshot.grails.org",CORS_ALLOWED_ORIGIN="https://start.grails.org",CORS_ALLOWED_ORIGIN_APACHE="https://grails.apache.org",GITHUB_OAUTH_APP_CLIENT_ID=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_ID }},GITHUB_OAUTH_APP_CLIENT_SECRET=${{ secrets.GH_OAUTH_SNAPSHOT_CLIENT_SECRET }},GITHUB_USER_AGENT=${{ secrets.GH_USER_AGENT }},GITHUB_REDIRECT_URL=${{ secrets.GH_REDIRECT_URL }},GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-snapshot-cjmq3uyfcq-uc.a.run.app"
--platform managed
--allow-unauthenticated
--service-account=${{ secrets.GCLOUD_EMAIL }}
Expand Down Expand Up @@ -151,4 +151,5 @@ jobs:
- name: "🚀 Deploy Docker image"
run: |
gcloud components install beta --quiet
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-snapshot --image $IMAGE_NAME --region us-central1 --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
CALLER_SUBJECT="$(gcloud iam service-accounts describe ${{ secrets.GCLOUD_EMAIL }} --format='value(uniqueId)')"
gcloud run deploy ${{ secrets.GCP_PROJECT_ID }}-analytics-snapshot --image $IMAGE_NAME --region us-central1 --update-env-vars=GRAILS_FORGE_ANALYTICS_AUDIENCE="https://${{ secrets.GCP_PROJECT_ID }}-analytics-snapshot-cjmq3uyfcq-uc.a.run.app",GRAILS_FORGE_ANALYTICS_CALLER_SUBJECT="$CALLER_SUBJECT" --platform managed --allow-unauthenticated --service-account=${{ secrets.GCLOUD_EMAIL }}
8 changes: 6 additions & 2 deletions grails-forge/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ Create two databases `grailsforge-production` and `grailsforge-snapshot`
| `MICRONAUT_ENVIRONMENTS` | `gcp` |
| `MICRONAUT_HTTP_SERVICES_ANALYTICS_READ_TIMEOUT` | `20s` |
| `MICRONAUT_HTTP_SERVICES_ANALYTICS_URL` | URL of cloud run `grailsforge-analytics-latest` |
| `GRAILS_FORGE_ANALYTICS_AUDIENCE` | URL of cloud run `grailsforge-analytics-latest` |
| `GITHUB_OAUTH_APP_CLIENT_ID` | The Client ID shared after creating GitHub OAuth App |
| `GITHUB_OAUTH_APP_CLIENT_SECRET` | The Client secret shared after creating the GitHub OAuth app |
| `GITHUB_USER_AGENT` | URL of the grails-forge-ui static website. For example, `https://start.grails.org/`. The default value is `https://start.grails.org/`. |
Expand All @@ -214,6 +215,8 @@ Create two databases `grailsforge-production` and `grailsforge-snapshot`
| `DB_NAME` | `grailsforge-production` |
| `MICRONAUT_ENV_DEDUCTION` | `false` |
| `MICRONAUT_ENVIRONMENTS` | `gcp` |
| `GRAILS_FORGE_ANALYTICS_AUDIENCE` | URL of cloud run `grailsforge-analytics-latest` |
| `GRAILS_FORGE_ANALYTICS_CALLER_SUBJECT` | Unique ID of the service account used by `grailsforge-latest` |
| `DATASOURCES_DEFAULT_USERNAME` | `***` |
| `DATASOURCES_DEFAULT_PASSWORD` | `***` |
| `DATASOURCES_DEFAULT_URL` | `jdbc:postgresql:///grailsforge-production` |
Expand All @@ -229,6 +232,7 @@ Create two databases `grailsforge-production` and `grailsforge-snapshot`
| `MICRONAUT_ENVIRONMENTS` | `gcp` |
| `MICRONAUT_HTTP_SERVICES_ANALYTICS_READ_TIMEOUT` | `20s` |
| `MICRONAUT_HTTP_SERVICES_ANALYTICS_URL` | URL of cloud run `grailsforge-analytics-snapshot` |
| `GRAILS_FORGE_ANALYTICS_AUDIENCE` | URL of cloud run `grailsforge-analytics-snapshot` |
| `GITHUB_OAUTH_APP_CLIENT_ID` | The Client ID shared after creating GitHub OAuth App |
| `GITHUB_OAUTH_APP_CLIENT_SECRET` | The Client secret shared after creating the GitHub OAuth app |
| `GITHUB_USER_AGENT` | URL of the grails-forge-ui static website. The default value is `https://start.grails.org/`. |
Expand All @@ -243,8 +247,8 @@ Create two databases `grailsforge-production` and `grailsforge-snapshot`
| `DB_NAME` | `grailsforge-snapshot` |
| `MICRONAUT_ENV_DEDUCTION` | `false` |
| `MICRONAUT_ENVIRONMENTS` | `gcp` |
| `GRAILS_FORGE_ANALYTICS_AUDIENCE` | URL of cloud run `grailsforge-analytics-snapshot` |
| `GRAILS_FORGE_ANALYTICS_CALLER_SUBJECT` | Unique ID of the service account used by `grailsforge-snapshot` |
| `DATASOURCES_DEFAULT_USERNAME` | `***` |
| `DATASOURCES_DEFAULT_PASSWORD` | `***` |
| `DATASOURCES_DEFAULT_URL` | `jdbc:postgresql:///grailsforge-snapshot` |


10 changes: 10 additions & 0 deletions grails-forge/grails-forge-analytics-postgres/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
*/

plugins {
id 'groovy'
id 'org.apache.grails.buildsrc.properties'
id 'org.apache.grails.buildsrc.dependency-validator'
id 'io.micronaut.application' version "$micronautApplicationPluginVersion"
Expand All @@ -37,6 +38,7 @@ dependencies {
implementation "com.google.cloud.sql:postgres-socket-factory:$postgresSocketFactoryVersion"
implementation 'io.micronaut.data:micronaut-data-jdbc'
implementation 'io.micronaut.flyway:micronaut-flyway'
implementation 'io.micronaut.security:micronaut-security-jwt'
implementation 'io.micronaut.sql:micronaut-jdbc-hikari'
implementation 'org.postgresql:postgresql'

Expand All @@ -54,7 +56,15 @@ dependencies {

testImplementation 'ch.qos.logback:logback-classic'
testImplementation 'io.micronaut:micronaut-http-client'
testImplementation 'io.micronaut.test:micronaut-test-spock'
testImplementation 'org.apache.groovy:groovy'
testImplementation "org.spockframework:spock-core", {
exclude group: 'org.apache.groovy', module: 'groovy-all'
}
testImplementation 'org.apache.groovy:groovy-test'
testImplementation 'org.testcontainers:postgresql'
testRuntimeOnly 'net.bytebuddy:byte-buddy'
testRuntimeOnly "org.objenesis:objenesis:$objenesisVersion"
}
application {
mainClass = 'org.grails.forge.analytics.postgres.Main'
Expand Down
Loading
Loading