Compare commits

...

19 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez 59ea0b94e1
Merge pull request #57 from dokku/review-app-cleanup
Split out workflows so that review app cleanup is properly run
2022-09-10 18:23:10 -04:00
Jose Diaz-Gonzalez 301d00c751 fix: name workflows correctly 2022-09-10 18:20:42 -04:00
Jose Diaz-Gonzalez 28328e4d90 refactor: split out workflows so that review app cleanup is properly run
The old setup - copy-pasted from the internet somewhere - was incorrect based on how github actions works. *sigh*
2022-09-10 18:19:27 -04:00
Jose Diaz-Gonzalez dce20c0a8f
Merge pull request #56 from dokku/auto-deploy
Test this buildpack by deploying to a dokku server
2022-09-10 18:12:48 -04:00
Jose Diaz-Gonzalez 0e7bef86f9 chore: ensure robots do not crawl these test domains 2022-09-10 18:09:55 -04:00
Jose Diaz-Gonzalez faf2a70272 fix: use correct domain name 2022-09-10 18:09:06 -04:00
Jose Diaz-Gonzalez f981b138ed fix: use a dokku.net subdomain to avoid hsts issues 2022-09-10 18:04:40 -04:00
Jose Diaz-Gonzalez 7794c2c36f chore: add some debugging information 2022-09-10 18:02:11 -04:00
Jose Diaz-Gonzalez 22619107ab chore: silence ci hook 2022-09-10 17:58:38 -04:00
Jose Diaz-Gonzalez 1a28ec8509 feat: purge cache on every review app deploy
This ensures we test the currently built nginx binary.
2022-09-10 17:53:46 -04:00
Jose Diaz-Gonzalez e28d2049e5 debug: see what directory we are in 2022-09-10 17:42:55 -04:00
Jose Diaz-Gonzalez 6a73313edb fix: always run the first job 2022-09-10 17:41:00 -04:00
Jose Diaz-Gonzalez 648d73fda6 fix: set current buildpack as the buildpack to use 2022-09-10 17:38:10 -04:00
Jose Diaz-Gonzalez 1769636cc8 tests: test deploys via github action 2022-09-10 17:31:47 -04:00
Jose Diaz-Gonzalez 6a9c79f8d0 feat: add initial files needed to deploy this as a site for testing purposes 2022-09-10 17:24:45 -04:00
Jose Diaz-Gonzalez 7a1b16877d
Merge pull request #55 from dokku/cleanup
chore: run shfmt
2022-09-10 17:16:24 -04:00
Jose Diaz-Gonzalez c50c220ba4 chore: run shfmt 2022-09-10 17:13:33 -04:00
Jose Diaz-Gonzalez c2273de014
chore: drop ssl module 2022-09-10 17:10:30 -04:00
Jose Diaz-Gonzalez 91c41476ae
feat: add ssl module 2022-09-10 16:55:10 -04:00
9 changed files with 128 additions and 9 deletions

View File

@ -0,0 +1,23 @@
---
name: 'review-app-cleanup'
# yamllint disable-line rule:truthy
on:
# onl run this workflow on pull request events
pull_request:
types:
- closed
jobs:
destroy_review_app:
runs-on: ubuntu-latest
steps:
- name: Destroy the review app
uses: dokku/github-action@master
with:
# destroy a review app
command: review-apps:destroy
git_remote_url: 'ssh://dokku@dokku.me:22/nginx-buildpack'
# specify a name for the review app
review_app_name: nginx-buildpack-${{ github.event.pull_request.number }}
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}

28
.github/workflows/review-app.yml vendored Normal file
View File

@ -0,0 +1,28 @@
---
name: 'review-app'
# yamllint disable-line rule:truthy
on:
# onl run this workflow on pull request events
pull_request
jobs:
review_app:
runs-on: ubuntu-latest
steps:
- name: Cloning repo
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Push to dokku
uses: dokku/github-action@master
with:
# create a review app
command: review-apps:create
git_remote_url: 'ssh://dokku@dokku.com/nginx-buildpack'
# specify `--force` as a flag for git pushes
git_push_flags: '--force'
# specify a name for the review app
review_app_name: nginx-buildpack-${{ github.event.pull_request.number }}
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}

1
.static Normal file
View File

@ -0,0 +1 @@
.static

15
bin/ci-pre-deploy Normal file
View File

@ -0,0 +1,15 @@
#!/bin/sh -l
if [ "$IS_REVIEW_APP" = "true" ]; then
echo "-----> Purging repo cache"
ssh "$SSH_REMOTE" -- repo:purge-cache "$APP_NAME"
echo "-----> Setting the test domain name"
ssh "$SSH_REMOTE" -- domains:set "$APP_NAME" "$APP_NAME.dokku.net"
echo "-----> Setting the buildpack to the current commit"
echo "https://github.com/${GITHUB_REPOSITORY}.git#$GITHUB_SHA" > .buildpacks
git add .buildpacks
git config --global user.name 'Dokku Bot'
git config --global user.email no-reply@dokku.com
git commit -qm "feat: specify $GITHUB_SHA as buildpack"
fi

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash
# bin/compile <build-dir> <cache-dir>
set -eo pipefail; [[ $TRACE ]] && set -x
set -eo pipefail
[[ $TRACE ]] && set -x
NGINX_VERSION="1.17.0"
NGINX_TARBALL="nginx-${NGINX_VERSION}.tar.gz"
@ -12,14 +13,16 @@ ZLIB_VERSION="1.2.11"
ZLIB_TARBALL="zlib-${ZLIB_VERSION}.tar.gz"
suppress() {
/bin/rm --force /tmp/surpress.out 2>/dev/null
# shellcheck disable=SC2069
/bin/rm --force /tmp/surpress.out 2> /dev/null; "$@" 2>&1 > /tmp/surpress.out || cat /tmp/surpress.out; /bin/rm /tmp/surpress.out;
"$@" 2>&1 >/tmp/surpress.out || cat /tmp/surpress.out
/bin/rm /tmp/surpress.out
}
# parse and derive params
BUILD_DIR=$1
CACHE_DIR=$2
CUR_DIR=$(cd "$(dirname "$0")"; cd ..; pwd)
CUR_DIR=$(cd "$(dirname "$0")" && cd .. && pwd)
mkdir -p "$BUILD_DIR" "$CACHE_DIR"
@ -130,19 +133,19 @@ fi
# Update the PATH
mkdir -p "$BUILD_DIR/.profile.d"
cat > "$BUILD_DIR/.profile.d/nginx.sh" <<"EOF"
cat >"$BUILD_DIR/.profile.d/nginx.sh" <<"EOF"
export PATH="$PATH:$HOME/nginx"
EOF
cd "$CUR_DIR"
# Add support for app-nginx.conf.sigil
if [ -f "$BUILD_DIR/app-nginx.conf.sigil" ] ; then
if [ -f "$BUILD_DIR/app-nginx.conf.sigil" ]; then
echo "-----> Using user provided app-nginx.conf.sigil"
cp "$BUILD_DIR/app-nginx.conf.sigil" "$BUILD_DIR/nginx/app-nginx.conf.sigil"
# Allow deprecated nginx.conf.erb
elif [ -f "$BUILD_DIR/nginx.conf.erb" ] ; then
elif [ -f "$BUILD_DIR/nginx.conf.erb" ]; then
echo "-----> DEPRECATED: Using user provided nginx.conf.erb"
cp "$BUILD_DIR/nginx.conf.erb" "$BUILD_DIR/nginx/nginx.conf.erb"
@ -153,7 +156,7 @@ else
fi
# build mime.types unless overridden by user
if [ -f "$BUILD_DIR/mime.types" ] ; then
if [ -f "$BUILD_DIR/mime.types" ]; then
echo "-----> Using user provided mime.types"
cp "$BUILD_DIR/mime.types" "$BUILD_DIR/nginx/mime.types"

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash
# bin/detect <build-dir> <cache-dir>
set -eo pipefail; [[ $TRACE ]] && set -x
set -eo pipefail
[[ $TRACE ]] && set -x
# Exit early if app is clearly not an nginx app
if [[ ! -f "$1/.static" ]]; then

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash
# bin/release <build-dir>
set -eo pipefail; [[ $TRACE ]] && set -x
set -eo pipefail
[[ $TRACE ]] && set -x
cat <<EOF
---

45
site/index.html Normal file
View File

@ -0,0 +1,45 @@
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type="text/css">
body {
background-color: #f0f0f2;
margin: 0;
padding: 0;
font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
div {
width: 600px;
margin: 5em auto;
padding: 2em;
background-color: #fdfdff;
border-radius: 0.5em;
box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
}
a:link, a:visited {
color: #38488f;
text-decoration: none;
}
@media (max-width: 700px) {
div {
margin: 0 auto;
width: auto;
}
}
</style>
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents. You may use this
domain in literature without prior coordination or asking for permission.</p>
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

2
site/robots.txt Normal file
View File

@ -0,0 +1,2 @@
User-agent: *
Disallow: /