Giter Site home page Giter Site logo

Gradle Update CircleCI Gradle Status

Gradle Update keeps the latest Gradle Wrapper by pull requests for your repositories on GitHub.

Visit https://gradleupdate.appspot.com

Note: In past adding a star on this repository triggered a new pull request, but it has no effect now. Feel free to star this repository!

How works

When a user requested update for a repository

  1. Receive a request for repository.
  2. Check if user have permission to push to the repository.
  3. Check if Gradle Update have permission to pull from the repository.
  4. Queue a task for the repository.
  5. In a task,
  6. Check if the repository:default-branch does not have the latest version of Gradle Wrapper.
  7. Fork the repository as fork and sync default-branch to upstream.
  8. Create or update a commit with the latest version of Gradle Wrapper as fork:gradle-branch.
  9. Create or update a pull request from fork:gradle-branch onto repository:default-branch.

Periodically

  1. Check the latest version of Gradle from services.gradle.org.
  2. If a new version of Gradle is found,
  3. Trigger updating Gradle Wrapper on latest-gradle-wrapper.
  4. Wait until the new version is available on latest-gradle-wrapper.
  5. Get a list of repositories to be updated and queue tasks for each repository.

When a badge for the repository is requested,

  1. Check the version of Gradle Wrapper in the repository.
  2. If it is up-to-date, respond the green image.
  3. If it is out-of-date, respond the red image.
  4. If it has no Gradle Wrapper, respond the grey image.

Architecture

  • React
  • Gaelyk
  • App Engine
  • Spock
  • Webpack
  • Babel
  • Gradle

Git operations are performed via GitHub API. It requires no filesystem or git command.

All operations are performed on Task Queue and designed to be transactional and idempotence. Any exception such as HTTP error may occur during an operation but will be recovered by retrying.

Contribution

Gradle Update is an open source software licensed under the Apache License Version 2.0. Feel free to open issues or pull requests.

How to Run

Build and run App Engine development server.

npm run watch
./gradlew appengineRun

We can run Webpack development server instead.

npm run start

How to Deploy

Push the master branch and Circle CI will deploy the app to App Engine.

A service account key should be provided during CI. Open Google Cloud Platform Console and create a service account. Then, encode the JSON key as follows and store it into the environment variable APPENGINE_KEY on Circle CI.

base64 -b0 appengine-key.json

Build system

Sources:

  • Frontend
    • /src/main/js - JSX and Less code
    • /static - Static files
  • Backend
    • /src/main/groovy - Production code
    • /src/main/groovlet - Production code (Groovlet)
    • /src/main/config - Configuration files
    • /src/test/groovy - Test code

Artifacts:

Destination Source Builder
/build/exploded-app /static Webpack
/build/exploded-app/react.min.js dependencies Webpack
/build/exploded-app/app.js /src/main/js and dependencies Webpack
/build/exploded-app/WEB-INF /src/main/config Gradle
/build/exploded-app/WEB-INF/lib /src/main/groovy and dependencies Gradle
/build/exploded-app/WEB-INF/groovy /src/main/groovlet Gradle and Webpack
/build/local_db.bin - App Engine Dev Server

Gradle Update's Projects

gitanizer icon gitanizer

Mirror SVN repositories to (read only) GIT repositories and expose them over HTTP.

github-version-statistics icon github-version-statistics

Uses the GitHub API to search for usages of a Java library and prepares some statistics about which versions are used how often

gradle icon gradle

A powerful build system for the JVM

gradle-aem-plugin icon gradle-aem-plugin

Swiss army knife for AEM related automation. Incremental AEM application build which takes seconds, not minutes.

gradle-kickstart icon gradle-kickstart

A gradle project containing best practices for continuous delivery projects

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.