Initial implementation of gitlab-ci pipeline
Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
This commit is contained in:
parent
975f6c42ee
commit
842837dbb3
|
@ -0,0 +1,43 @@
|
||||||
|
stages:
|
||||||
|
- build
|
||||||
|
# - test
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
variables:
|
||||||
|
AWS_DEFAULT_REGION: us-east-1
|
||||||
|
|
||||||
|
build:
|
||||||
|
stage: build
|
||||||
|
image: haskell:8.0.2
|
||||||
|
artifacts:
|
||||||
|
name: "${CI_PROJECT_NAME}__${CI_COMMIT_TAG}__${CI_COMMIT_REF_NAME}__${CI_COMMIT_SHA}"
|
||||||
|
paths:
|
||||||
|
- _site/*
|
||||||
|
script:
|
||||||
|
- cabal update
|
||||||
|
- cabal install --enable-tests
|
||||||
|
- ./site configure
|
||||||
|
- ./site make
|
||||||
|
- ./site build
|
||||||
|
|
||||||
|
# test:
|
||||||
|
# stage: test
|
||||||
|
# image: node:7.8
|
||||||
|
# variables:
|
||||||
|
# CI: "true"
|
||||||
|
# script:
|
||||||
|
# - ./site configure
|
||||||
|
# - ./site test
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
stage: deploy
|
||||||
|
image: cgswong/aws:latest
|
||||||
|
variables:
|
||||||
|
S3_BUCKET: blog-rekahsoft-s3bucket-7pigtftqm4v8
|
||||||
|
script:
|
||||||
|
- aws s3 sync _site/ s3://$S3_BUCKET
|
||||||
|
environment:
|
||||||
|
name: Rekahsoft Blog
|
||||||
|
url: http://blog.rekahsoft.com
|
||||||
|
only:
|
||||||
|
- master
|
21
README.md
21
README.md
|
@ -1,10 +1,13 @@
|
||||||
# Source Code for **[#! Lambda Slang](http://blog.rekahsoft.ca)**
|
# Source Code for **[#! Lambda Slang](http://blog.rekahsoft.ca)**
|
||||||
|
|
||||||
|
[![build status](https://gitlab.com/rekahsoft/blog-rekahsoft/badges/master/build.svg)](https://gitlab.com/rekahsoft/blog-rekahsoft/commits/master)
|
||||||
|
|
||||||
* [Features](#features)
|
* [Features](#features)
|
||||||
* [Tools](#tools)
|
* [Tools](#tools)
|
||||||
* [License](#license)
|
* [License](#license)
|
||||||
* [Building](#building)
|
* [Building](#building)
|
||||||
* [Running Tests](#running-tests)
|
* [Running Tests](#running-tests)
|
||||||
|
* [Deploying](#deploying)
|
||||||
* [Issues](#issues)
|
* [Issues](#issues)
|
||||||
* [Road Map](#road-map)
|
* [Road Map](#road-map)
|
||||||
|
|
||||||
|
@ -66,6 +69,24 @@ instances running on port 4444. Then one must run the following:
|
||||||
The `-s` or `--run-selenium` option to `site test` starts a selenium server before running the
|
The `-s` or `--run-selenium` option to `site test` starts a selenium server before running the
|
||||||
tests. Another way to run the tests is using cabal directly by running `cabal test`.
|
tests. Another way to run the tests is using cabal directly by running `cabal test`.
|
||||||
|
|
||||||
|
## Deploying <a name="deploying"></a>
|
||||||
|
|
||||||
|
To deploy the site, use the provided `init-env.sh` script. Its usage is as follows:
|
||||||
|
|
||||||
|
```
|
||||||
|
Usage: init_env.sh [create|update] <stack-name> <cf-bucket> <cnames>
|
||||||
|
init_env.sh init <cf-bucket>
|
||||||
|
init_env.sh info <stack-name>
|
||||||
|
init_env.sh [help|--help|-h]
|
||||||
|
```
|
||||||
|
|
||||||
|
First create required initial resources, then create the projects stack, thereby deploying the project.
|
||||||
|
|
||||||
|
```
|
||||||
|
./init-env.sh init <cf-bucket-name>
|
||||||
|
./init-env.sh create <stack-name> <cf-bucket-name> <cnames>
|
||||||
|
```
|
||||||
|
|
||||||
## Issues <a name="issues"></a>
|
## Issues <a name="issues"></a>
|
||||||
|
|
||||||
Unfortunately, when trying to install the test-suite dependencies, `webdriver 0.6.1` fails to
|
Unfortunately, when trying to install the test-suite dependencies, `webdriver 0.6.1` fails to
|
||||||
|
|
|
@ -107,6 +107,7 @@ Resources:
|
||||||
S3OriginConfig:
|
S3OriginConfig:
|
||||||
OriginAccessIdentity: ''# origin-access-identity/cloudfront/S3Origin
|
OriginAccessIdentity: ''# origin-access-identity/cloudfront/S3Origin
|
||||||
Enabled: true
|
Enabled: true
|
||||||
|
HttpVersion: http2
|
||||||
Comment: Some comment
|
Comment: Some comment
|
||||||
DefaultRootObject: index.html
|
DefaultRootObject: index.html
|
||||||
Logging:
|
Logging:
|
||||||
|
|
13
init-env.sh
13
init-env.sh
|
@ -1,8 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
TEMPLATE="blog-rekahsoft.yaml"
|
||||||
|
|
||||||
display_help() {
|
display_help() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Usage: init_env.sh [create|update] <stack-name> <cf-bucket> <cnames>
|
Usage: init_env.sh [create|update] <stack-name> <cf-bucket> <cnames>
|
||||||
|
init_env.sh init <cf-bucket>
|
||||||
init_env.sh info <stack-name>
|
init_env.sh info <stack-name>
|
||||||
init_env.sh [help|--help|-h]
|
init_env.sh [help|--help|-h]
|
||||||
EOF
|
EOF
|
||||||
|
@ -26,14 +29,18 @@ BUCKET="$3"
|
||||||
CNAMES="$4"
|
CNAMES="$4"
|
||||||
|
|
||||||
case "$OP" in
|
case "$OP" in
|
||||||
|
init)
|
||||||
|
BUCKET="$2"
|
||||||
|
aws s3 mb "s3://${BUCKET}"
|
||||||
|
;;
|
||||||
update|create)
|
update|create)
|
||||||
# Push cloudformation template to provided bucket
|
# Push cloudformation template to provided bucket
|
||||||
echo aws s3 cp blog-rekahsoft.yaml "s3://${BUCKET}"
|
aws s3 cp "$TEMPLATE" "s3://${BUCKET}"
|
||||||
|
|
||||||
# Create cloudformation stack
|
# Create cloudformation stack
|
||||||
echo aws cloudformation "${OP}-stack" --stack-name "$STACK_NAME" --template-url "https://${BUCKET}.s3.amazonaws.com/blog-rekahsoft.yaml" --parameters ParameterKey=AlternateURLs,ParameterValue=\"${CNAMES}\" --capabilities CAPABILITY_IAM
|
aws cloudformation "${OP}-stack" --stack-name "$STACK_NAME" --template-url "https://${BUCKET}.s3.amazonaws.com/${TEMPLATE}" --parameters ParameterKey=AlternateURLs,ParameterValue=\"${CNAMES}\" --capabilities CAPABILITY_IAM
|
||||||
|
|
||||||
echo aws cloudformation wait stack-update-complete --stack-name "$STACK_NAME"
|
aws cloudformation wait stack-update-complete --stack-name "$STACK_NAME"
|
||||||
|
|
||||||
display_info
|
display_info
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Reference in New Issue