Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Standalone app #14

Merged
merged 245 commits into from
Oct 29, 2020
Merged

Standalone app #14

merged 245 commits into from
Oct 29, 2020

Conversation

jswny
Copy link
Owner

@jswny jswny commented Aug 19, 2020

Rewrite of this repository into a standalone Go command-line application which supports deployment from CI or the command-line.

Closes closes #5, closes #11, closes #13.

Go Implementation

  • Parse config file for options
  • Get options from environment variables
  • Get options from command line as arguments
  • Allow nulls from config file
  • Allow nulls from environment variables
  • Allow nulls from command line arguments
  • Merge config file, environment variables, and command line arguments
  • Get defaults for options
  • Verify options
  • Setup SCP connection
  • Send files to server
  • Look for files recursively beneath the current directory
  • Generate .env with environment variables
  • Add container name to .env
  • Add image specifier to .env
  • Send .env to server
  • Rename files when sending to server
  • Setup SSH connection
  • Start app on server

Infrastructure

Other Cleanup

  • Update Dockerfile
  • Update example Dockerfile
  • Update CI workflow
  • Ensure CI jobs depend on appropriate jobs
  • Remove shell CI steps
  • Remove old files
  • Use sad-example for repository
  • Change app/ to example/ and update references
  • Push example image as sad-example

Images

  • Login to GHCR
  • Push example app images to GHCR
  • Use GHCR as deployment registry for example app
  • Add Dockerfile
  • Push images to GHCR
  • Label image with source repository

Documentation

  • Building from source
  • Installing from binaries (in releases)
  • Using action
  • File locations
  • Remove action specific docs

Inputs and Outputs

Inputs:

  • Docker image name
  • Docker image digest
  • Docker image registry

Outputs:

  • Docker image specifier (image name with digest)
  • Deployment name (image name with channel)
  • Deployment environment variables for injection

Option Parsing Precedence

  1. Command line
  2. Environment variables
  3. Config file

@jswny jswny marked this pull request as draft August 21, 2020 16:26
@jswny jswny marked this pull request as ready for review October 29, 2020 18:08
@jswny jswny merged commit 3ec44f1 into master Oct 29, 2020
@jswny jswny deleted the feature/standalone branch October 29, 2020 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant