diff --git a/.github/workflows/client.yml b/.github/workflows/client.yml deleted file mode 100644 index 1eecc7e01..000000000 --- a/.github/workflows/client.yml +++ /dev/null @@ -1,38 +0,0 @@ -# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions - -name: Node.js CI - -on: - push: - branches: [ master ] - paths: - - photon-client/** - pull_request: - branches: [ master ] - paths: - - photon-client/** - -jobs: - build: - - runs-on: ubuntu-latest - container: - image: docker://node:10 - volumes: - - /workspace:/github/workspace - steps: - - uses: actions/checkout@v2 - - run: mkdir built-client - - run: cd built-client - - name: Use Node.js 10 - uses: actions/setup-node@v1 - with: - node-version: 10 - - run: npm ci - - run: npm run build --if-present - - uses: actions/upload-artifact@master - with: - name: built-client - path: built-client - #- run: npm test diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..0b36f18ec --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,141 @@ +# This workflow builds the client (UI), the server, builds the JAR. + +name: CI + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + # This job builds the client (web view). + build-client: + + # Let all steps run within the photon-client dir. + defaults: + run: + working-directory: photon-client + + # The type of runner that the job will run on. + runs-on: ubuntu-latest + + # Grab the docker container. + container: + image: docker://node:10 + + steps: + # Checkout code. + - uses: actions/checkout@v2 + + # Setup Node.js + - name: Setup Node.js + uses: actions/setup-node@v1 + with: + node-version: 10 + + # Run npm + - run: | + npm ci + npm run build --if-present + + # Upload client artifact. + - uses: actions/upload-artifact@master + with: + name: built-client + path: photon-client/dist/ + + build-server: + # Let all steps run within the photon-server dir. + defaults: + run: + working-directory: photon-server + + # The type of runner that the job will run on. + runs-on: ubuntu-latest + + steps: + # Checkout code. + - uses: actions/checkout@v2 + + # Install Java 11. + - uses: actions/setup-java@v1 + with: + java-version: 11 + + # Run Gradle tests. + - run: | + chmod +x gradlew + ./gradlew test + + build-package: + needs: [build-client, build-server] + + # Let all steps run within the photon-server dir. + defaults: + run: + working-directory: photon-server + + # The type of runner that the job will run on. + runs-on: ubuntu-latest + + steps: + # Checkout code. + - uses: actions/checkout@v2 + + # Install Java 11. + - uses: actions/setup-java@v1 + with: + java-version: 11 + + # Clear any existing web resources. + - run: | + rm -rf src/main/resources/web/* + mkdir -p src/main/resources/web/ + + # Download client artifact to resources folder. + - uses: actions/download-artifact@v2 + with: + name: built-client + path: photon-server/src/main/resources/web/ + + # Print folder contents. + - run: ls + working-directory: photon-server/src/main/resources/web/ + + # Build fat jar. + - run: | + chmod +x gradlew + ./gradlew shadowJar + working-directory: photon-server + + # Upload final fat jar as artifact. + - uses: actions/upload-artifact@master + with: + name: jar + path: photon-server/build/libs + + check-lint: + # Let all steps run within the photon-server dir. + defaults: + run: + working-directory: photon-server + + # The type of runner that the job will run on. + runs-on: ubuntu-latest + + steps: + # Checkout code. + - uses: actions/checkout@v2 + + # Install Java 11. + - uses: actions/setup-java@v1 + with: + java-version: 11 + + # Check server code with Spotless. + - run: | + chmod +x gradlew + ./gradlew spotlessCheck diff --git a/photon-server/gradle/wrapper/gradle-wrapper.jar b/photon-server/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000..cc4fdc293 Binary files /dev/null and b/photon-server/gradle/wrapper/gradle-wrapper.jar differ diff --git a/photon-server/gradle/wrapper/gradle-wrapper.properties b/photon-server/gradle/wrapper/gradle-wrapper.properties index 4be880377..711be8e71 100644 --- a/photon-server/gradle/wrapper/gradle-wrapper.properties +++ b/photon-server/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Jan 08 11:40:04 PST 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip distributionBase=GRADLE_USER_HOME -distributionPath=permwrapper/dists -zipStorePath=permwrapper/dists +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.0-bin.zip +distributionSha256Sum=5a3578b9f0bb162f5e08cf119f447dfb8fa950cedebb4d2a977e912a11a74b91 zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists