Skip to content
This repository has been archived by the owner on Feb 16, 2018. It is now read-only.
/ sparklemotion Public archive

Appcasting from dawn 'til dusk

License

Notifications You must be signed in to change notification settings

tent/sparklemotion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✨ Sparkle Motion ✨

Sparkle Motion manages appcasts and application binaries in S3, making Sparkle updates a dance in the park.

Getting Started

Sparkle Motion is a tiny web application, so the easiest way to get started is to deploy to Heroku.

S3

If you don't have a S3 bucket set up yet, go do that now. While you're in the AWS console, get credentials for a new user in IAM that only has the permissions needed to access the S3 bucket:

{
  "Statement": [
    {
      "Action": [
        "s3:*"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::YOUR_BUCKET",
        "arn:aws:s3:::YOUR_BUCKET/*"
      ]
    }
  ]
}

Heroku

You will need a Heroku account and the Heroku Toolbelt installed to deploy.

git clone git://github.com/cupcake/sparklemotion.git
cd sparklemotion
heroku create -b https://github.com/kr/heroku-buildpack-go.git

Heroku will create an app and tell you the URL (eg. https://sparkle-motion-42.herokuapp.com).

GitHub

Sparkle Motion uses GitHub for authentication, so create a new app. Set the Main URL to the URL of your new Heroku app. The Callback URL should be https://APP_DOMAIN/auth/return where APP_DOMAIN is the domain of your Heroku app.

Configuration

heroku config:add \
  APP_NAME=<the name of your application (no spaces)> \
  AWS_ACCESS_KEY_ID=<from the IAM S3 user> \
  AWS_SECRET_ACCESS_KEY=<from the IAM S3 user> \
  S3_BUCKET=<the name of the S3 bucket> \
  GITHUB_CLIENT_ID=<from the GitHub app> \
  GITHUB_CLIENT_SECRET=<from the GitHub app> \
  BASE_URL=<the Heroku app URL> \
  AUTHORIZED_USERS=<comma separated GitHub usernames> \
  REQUIRE_SIGNATURE=1 # remove this line if you sign apps with a certificate from Apple \
  API_KEY=$(openssl rand -hex 16 | tr -d '\r\n')
  COOKIE_SECRET=$(openssl rand -hex 16 | tr -d '\r\n')

Deploy 🤘

git push heroku master
heroku open

Usage

Pushing to the stable channel will also push to the beta and alpha channels, and pushing to the beta channel will also push to the alpha channel.

Xcode Integration

There is a release script that can be used to automatically upload and sign releases.

URLs

Alpha Appcast: https://s3.amazonaws.com/BUCKET/APPNAME-alpha.xml

Beta Appcast: https://s3.amazonaws.com/BUCKET/APPNAME-beta.xml

Stable Appcast: https://s3.amazonaws.com/BUCKET/APPNAME-stable.xml

Application Release: https://s3.amazonaws.com/BUCKET/APPNAME-VERSION.EXT

Release Notes: https://s3.amazonaws.com/BUCKET/APPNAME-VERSION.html

✨ 💫 💃 🌟

About

Appcasting from dawn 'til dusk

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published