Skip to content

warlordofmars/gradle-json-resume

Repository files navigation

gradle-json-resume

jitpack build

Overview

Gradle Plugin to provide a full CI/CD workflow for a JSON Resume

Features

  • Syntax/Schema Validation - Resumé source is validated against normal JSON syntax rules, as well as the JSON Resume Schema

  • Spell Check - Resumé source is checked for any spelling errors. Any unrecognized words can be added to an ignore list if necessary.

  • URL Check - Resumé source is parsed to find all instances of a valid URL. Each URL is checked to confirm that the URL is still valid and currently responding

  • Multi-Forrmat Build - Resumé source can be compiled into a number of different output formats: HTML, PDF, Markdown, YAML

  • Custom Resumé Themes - Each configured output format can be configured to use a custom JSON Resume Theme

  • Resumé Deployment - Resumé will be deployed to several locations for ultimate consumpton:

    • Web - Resumé is published to a static website hosted in AWS S3
    • Google Drive - Resumé is published to a Google Drive document
    • iCloud - Resumé is published to a iCloud Drive document
    • Print - Resumé is printed using a local printer
  • Test Results - All tests that are performed throughout the build and deploy process are captured and recorded in a JUnit-style XML report.

Prerequisites

There are two prerequisites required to exist prior to using this plugin:

hackmyresume

hackmyresume is used to do the actual JSON Resume build. This is being used, instead of the actual JSON Resume CLI utility because of an open bug in the JSON Resume CLI utility related to PDF generation. hackmyresume does not suffer from this same bug.

To install hackmyresume utility, run the following:

npm install -g hackmyresume

aspell

aspell is used to provide spell-checking functionality.

To install aspell utility, run the following:

brew install aspell

awscli

awscli is used to copy resumé files to an S3 bucket for publishing to the Web.

To install awscli utility, run the following:

brew install awscli

wkhtmltopdf

wkhtmltopdf is used by hackmyresume for PDF generation.

To install the wkhtmltopdf utility, run the following:

brew install wkhtmltopdf

Setup

To use this plugin, the following buildscript repositories and dependencies must be configured:

buildscript {
  repositories {
    maven { url 'https://jitpack.io' }
  }
  dependencies {
    classpath 'com.github.warlordofmars:gradle-json-resume:release-0.1.3'
  }
}

Then to apply the plugin:

apply plugin: 'com.github.warlordofmars.gradle.resume'

To configure:

resume {

    // list of resume formats to be generated (must contain 'html' and 'pdf')
    resumeFormats = ['html', 'pdf', 'yaml', 'md']

    // the JSON Resume source file
    resumeSource = 'resume.json'

    // mapping of themes to be used with each resumeFormat configured
    themes = [
        html: 'theme/node_modules/jsonresume-theme-class/',
        pdf: 'theme/node_modules/jsonresume-theme-short/',
    ]

    // file containing list of words to ignore during spell check
    spellCheckIgnoreList = 'spell_check_ignore.txt'

    // full domain name of website resume will be deployed to
    websiteUrl = 'some.domain.name'

    // prefix to prepend to assets deployed to s3 website (useful for versioned folders)
    websitePrefix = ''

    // number of copies of resume to print
    numberOfCopies = 10

    // list of strings to look for in deployed resume, used in post-deploy validation
    ensureStrings = ['My Full Name', 'my@email.com', 'Some important phrase that can\'t be missed!']

    // whether or not current build is part of a promote step
    isPromote = System.env.containsKey('PROMOTE')
}

Versioning

Versioning on this project is applied automatically on all changes using the axion-release-plugin. Git tags are created for all released versions, and all available released versions can be viewed in the Releases section of this project.

Author

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

About

Gradle Plugin to provide a full CI/CD workflow for a JSON Resume

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages