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

android-rate icon android-rate

Android-Rate is a library to help you promote your android app by prompting users to rate the app after using it for a few days.

azkaban2 icon azkaban2

Azkaban scheduler re-written from the ground up.

benfordslaw icon benfordslaw

Sample application showing Benford's Law by looking at file sizes on the local disk

budgeteer icon budgeteer

Simple Project Budget Monitoring via Web Browser

commoncrawldocumentdownload icon commoncrawldocumentdownload

A small tool with uses the CommonCrawl URL Index to download documents with certain file types or mime-types for mass-testing of frameworks like Apache POI and Apache Tika

commons-dost icon commons-dost

Utilitity library for stuff that I use in multiple projects

commons-test icon commons-test

Utilitity library for testing stuff that I use in multiple projects

daguerreo icon daguerreo

A simple tool for personal bookshelf on the web.

doc icon doc

AssertJ new website

embulk icon embulk

Embulk: Pluggable Bulk Data Loader. http://www.embulk.org

file-type-detection icon file-type-detection

A small tool to use Apache Tika to determine the mime-type of all files in a directory

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.