Remove Automatic Snapshot Deployment to GCR for older versions #1511
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Snapshot" | |
on: | |
push: | |
branches: | |
- '[6-9]+.[0-9]+.x' | |
pull_request: | |
branches: | |
- '[6-9]+.[0-9]+.x' | |
workflow_dispatch: | |
jobs: | |
build: | |
name: "Build Project" | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
java: ['11', '17'] | |
steps: | |
- name: "📥 Checkout repository" | |
uses: actions/checkout@v4 | |
- name: "☕️ Setup JDK" | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'liberica' | |
java-version: ${{ matrix.java }} | |
- name: "🐘 Setup Gradle" | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} | |
- name: "🔨 Run Build" | |
id: build | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
run: ./gradlew build | |
- name: "✅ Verify CLI" | |
if: success() | |
run: | | |
cp grails-cli/build/distributions/grails-cli-*.zip cli.zip | |
unzip cli -d tmp | |
mv tmp/grails-cli-* tmp/cli | |
./tmp/cli/bin/grails --version | |
- name: "📤 Publish to Sonatype OSSRH" | |
id: publish | |
if: success() && github.event_name == 'push' && matrix.java == '11' | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
run: ./gradlew publishToSonatype | |
deploy: | |
# Snapshots should only be deployed from the latest release branch | |
# as it updates the snapshot version on https://start.grails.org. | |
if: false # github.event_name != 'pull_request' | |
name: "Deploy To Google Cloud Run" | |
runs-on: ubuntu-latest | |
needs: build | |
env: | |
IMAGE_NAME: gcr.io/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_APP_NAME }}:snapshot | |
steps: | |
- name: "🔑 Login" | |
uses: google-github-actions/setup-gcloud@v0 | |
with: | |
project_id: ${{ secrets.GCP_PROJECT_ID }} | |
service_account_email: ${{ secrets.GCP_EMAIL }} | |
service_account_key: ${{ secrets.GCP_CREDENTIALS }} | |
- name: "🐋 Configure Docker" | |
run: gcloud auth configure-docker --quiet | |
- name: "📥 Checkout repository" | |
uses: actions/checkout@v4 | |
- name: "☕️ Setup JDK" | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'liberica' | |
java-version: '17' | |
- name: "🐘 Setup Gradle" | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} | |
- name: "✅ Run Tests" | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
run: > | |
./gradlew | |
grails-forge-api:test | |
grails-forge-web-netty:test | |
- name: "🔨 Build Docker image" | |
# To deploy native executables built with GraalVM replace dockerBuild with dockerBuildNative and dockerPush with dockerPushNative. First, try that it works locally. | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
run: > | |
./gradlew | |
grails-forge-web-netty:dockerBuildNative | |
-PdockerImageName=${{ env.IMAGE_NAME }} | |
- name: "📤 Push image to Google Cloud Container Registry" | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
run: > | |
./gradlew | |
grails-forge-web-netty:dockerPushNative | |
-PdockerImageName=${{ env.IMAGE_NAME }} | |
- name: "🚀 Deploy Docker image" | |
run: > | |
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",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 }} | |
--platform managed | |
--allow-unauthenticated | |
--service-account=${{ secrets.GCLOUD_EMAIL }} | |
deployAnalytics: | |
# Snapshots should only be deployed from the latest release branch | |
# as it updates the snapshot version on https://start.grails.org. | |
if: false # github.event_name != 'pull_request' | |
name: "Deploy Analytics To Google Cloud Run" | |
runs-on: ubuntu-latest | |
needs: build | |
env: | |
IMAGE_NAME: gcr.io/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_APP_NAME }}-analytics:snapshot | |
steps: | |
- name: "🔑 Login" | |
uses: google-github-actions/setup-gcloud@v0 | |
with: | |
project_id: ${{ secrets.GCP_PROJECT_ID }} | |
service_account_email: ${{ secrets.GCP_EMAIL }} | |
service_account_key: ${{ secrets.GCP_CREDENTIALS }} | |
- name: "🐋 Configure Docker" | |
run: gcloud auth configure-docker --quiet | |
- name: "📥 Checkout repository" | |
uses: actions/checkout@v4 | |
- name: "☕️ Setup JDK" | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'liberica' | |
java-version: '17' | |
- name: "🐘 Setup Gradle" | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} | |
- name: "✅ Run Tests" | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
run: ./gradlew grails-forge-analytics-postgres:test | |
- name: "🔨 Build Docker image" | |
# To deploy native executables built with GraalVM replace dockerBuild with dockerBuildNative and dockerPush with dockerPushNative. First, try that it works locally. | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
run: > | |
./gradlew | |
grails-forge-analytics-postgres:dockerBuildNative | |
-PdockerImageName=${{ env.IMAGE_NAME }} | |
- name: "📤 Push image to Google Cloud Container Registry" | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
run: > | |
./gradlew | |
grails-forge-analytics-postgres:dockerPushNative | |
-PdockerImageName=${{ env.IMAGE_NAME }} | |
- 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 }} | |
linux: | |
name: "Build Linux Native CLI" | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: "📥 Checkout the repository" | |
uses: actions/checkout@v4 | |
- name: "☕️ Setup GraalVM CE" | |
uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: '17' | |
distribution: 'graalvm-community' | |
components: 'native-image' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: "🐘 Setup Gradle" | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} | |
- name: "📸 Build the Native Image" | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
run: ./gradlew grails-cli:nativeCompile --no-daemon | |
- name: "✅ Verify Build" | |
run: ./grails-cli/build/native/nativeCompile/grails --version | |
- name: "✅ Verify Create App" | |
run: ./grails-cli/build/native/nativeCompile/grails create-app test | |
- name: "📦 Package Build" | |
env: | |
VERSION: ${{ github.event.release.tag_name }} | |
run: | | |
mkdir -p grails-linux-amd64-snapshot/bin | |
mv ./grails-cli/build/native/nativeCompile/grails grails-linux-amd64-snapshot/bin | |
cp ./LICENSE grails-linux-amd64-snapshot/ | |
zip -r grails-linux-amd64-snapshot.zip ./grails-linux-amd64-snapshot | |
- name: "📤 Upload Artifact to Workflow Summary Page" | |
if: success() && github.event_name == 'push' && github.ref == 'refs/heads/6.0.x' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: grails-linux-amd64-snapshot | |
path: grails-linux-amd64-snapshot.zip | |
macos: | |
name: "Build OS X Intel Native CLI" | |
runs-on: macos-13 | |
needs: build | |
steps: | |
- name: "📥 Checkout the repository" | |
uses: actions/checkout@v4 | |
- name: "☕️ Setup GraalVM CE" | |
uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: '17' | |
distribution: 'graalvm-community' | |
components: 'native-image' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: "🐘 Setup Gradle" | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} | |
- name: "📸 Build the Native Image" | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
run: ./gradlew grails-cli:nativeCompile --no-daemon | |
- name: "✅ Verify Build" | |
run: ./grails-cli/build/native/nativeCompile/grails --version | |
- name: "✅ Verify Create App" | |
run: ./grails-cli/build/native/nativeCompile/grails create-app test | |
- name: "📦 Package Build" | |
env: | |
VERSION: ${{ github.event.release.tag_name }} | |
run: | | |
mkdir -p grails-darwin-amd64-snapshot/bin | |
mv ./grails-cli/build/native/nativeCompile/grails grails-darwin-amd64-snapshot/bin | |
cp ./LICENSE grails-darwin-amd64-snapshot/ | |
zip -r grails-darwin-amd64-snapshot.zip ./grails-darwin-amd64-snapshot -x '*.DS_Store*' -x '__MAC_OSX' | |
- name: "📤 Upload Artifact to Workflow Summary Page" | |
if: success() && github.event_name == 'push' && github.ref == 'refs/heads/6.0.x' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: grails-darwin-amd64-snapshot | |
path: grails-darwin-amd64-snapshot.zip | |
macos-arm: | |
name: "Build OS X Arm Native CLI" | |
runs-on: macos-latest | |
needs: [build] | |
steps: | |
- name: "📥 Checkout repository" | |
uses: actions/checkout@v4 | |
- name: "☕️ Setup GraalVM CE" | |
uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: '17' | |
distribution: 'graalvm-community' | |
components: 'native-image' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: "🐘 Setup Gradle" | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} | |
- name: "📸 Build the Native Image" | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
run: ./gradlew grails-cli:nativeCompile --no-daemon | |
- name: "✅ Verify Build" | |
run: ./grails-cli/build/native/nativeCompile/grails --version | |
- name: "✅ Verify Create App" | |
run: ./grails-cli/build/native/nativeCompile/grails create-app test | |
- name: "📦 Package Build" | |
env: | |
VERSION: ${{ github.event.release.tag_name }} | |
run: | | |
mkdir -p grails-darwin-aarch64-snapshot/bin | |
mv ./grails-cli/build/native/nativeCompile/grails grails-darwin-aarch64-snapshot/bin | |
cp ./LICENSE grails-darwin-aarch64-snapshot/ | |
zip -r grails-darwin-aarch64-snapshot.zip grails-darwin-aarch64-snapshot/ -x '*.DS_Store*' -x '__MAC_OSX' | |
- name: "📤 Upload Artifact to Workflow Summary Page" | |
if: success() && github.event_name == 'push' && github.ref == 'refs/heads/6.0.x' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: grails-darwin-aarch64-snapshot | |
path: grails-darwin-aarch64-snapshot.zip | |
windows: | |
name: "Build Windows Native CLI" | |
runs-on: windows-latest | |
needs: build | |
steps: | |
- name: "📥 Checkout the repository" | |
uses: actions/checkout@v4 | |
- name: "☕️ Setup GraalVM CE" | |
uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: '17' | |
distribution: 'graalvm-community' | |
components: 'native-image' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: "🐘 Setup Gradle" | |
uses: gradle/actions/setup-gradle@v4 | |
with: | |
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} | |
- name: "📸 Build the Native Image" | |
env: | |
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} | |
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} | |
run: ./gradlew grails-cli:nativeCompile --no-daemon | |
- name: "✅ Verify Build (Powershell)" | |
shell: powershell | |
run: ./grails-cli/build/native/nativeCompile/grails.exe --version | |
- name: "✅ Verify Create App (Powershell)" | |
shell: powershell | |
run: ./grails-cli/build/native/nativeCompile/grails.exe create-app test | |
- name: "✅ Verify Build (CMD)" | |
shell: cmd | |
run: grails-cli\\build\\native\\nativeCompile\\grails --version | |
- name: "✅ Verify Create App (CMD)" | |
shell: cmd | |
run: grails-cli\\build\\native\\nativeCompile\\grails create-app test2 | |
- name: "📦 ZIP Archive" | |
run: | | |
New-Item "./grails-win-amd64-snapshot/bin" -ItemType Directory -ea 0 | |
Move-Item -Path ./grails-cli/build/native/nativeCompile/grails.exe -Destination "./grails-win-amd64-snapshot/bin" | |
Copy-Item "./LICENSE" -Destination "./grails-win-amd64-snapshot" | |
Compress-Archive -Path "./grails-win-amd64-snapshot" -Update -DestinationPath ./grails-win-amd64-snapshot.zip | |
- name: "📤 Upload Artifact to Workflow Summary Page" | |
if: success() && github.event_name == 'push' && github.ref == 'refs/heads/6.0.x' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: grails-win-amd64-snapshot | |
path: ./grails-win-amd64-snapshot.zip |