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

chore: b17s1 merge staging into master #243

Merged
merged 84 commits into from
Feb 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
7123c3f
feat: Start updating site for Docker
darcywong00 Nov 30, 2022
e158faa
fix: add .htaccess for kmw engine
darcywong00 Dec 1, 2022
562c48a
fix: Update Docker for Access-Control-Allow-Origin
darcywong00 Dec 1, 2022
e35866a
chore: Update AddTypes
darcywong00 Dec 1, 2022
f914aa0
chore: Set scripts executable
darcywong00 Dec 1, 2022
b916eee
Merge branch 'master' into epic/docker-linux
darcywong00 Jan 26, 2023
d3971af
fix: Update Dockerfile
darcywong00 Jan 26, 2023
5b81608
Merge remote-tracking branch 'origin/master' into epic/docker-linux
darcywong00 Mar 7, 2023
2b154ee
fix: Cleanup from review comments
darcywong00 Mar 7, 2023
c1a809d
Merge remote-tracking branch 'origin/master' into epic/docker-linux
darcywong00 Apr 20, 2023
b243617
Merge remote-tracking branch 'origin/master' into chore/master/a17s11
darcywong00 Apr 27, 2023
56d25b8
Merge pull request #80 from keymanapp/chore/master/a17s11
darcywong00 May 10, 2023
9497db3
Merge remote-tracking branch 'origin/master' into chore/master/a17s12
darcywong00 May 12, 2023
94a53c5
Merge pull request #82 from keymanapp/chore/master/a17s12
darcywong00 May 12, 2023
f800bc5
Apply suggestions from code review
darcywong00 May 15, 2023
3cf78ad
chore: Remove files per review comments
darcywong00 May 15, 2023
fd517dc
Merge pull request #73 from keymanapp/epic/docker-linux
darcywong00 May 15, 2023
313bb6d
chore: remove web.config
darcywong00 May 15, 2023
b262bb9
Merge pull request #83 from keymanapp/more-cleanup
darcywong00 May 16, 2023
c38a91d
chore: Update builder.inc.sh
darcywong00 May 24, 2023
0f2a10a
update build.sh
darcywong00 May 24, 2023
a36853b
add tests
darcywong00 May 24, 2023
f17ec6d
add workflow
darcywong00 May 25, 2023
e7b305d
Merge branch 'master' into master-a17s13
darcywong00 May 26, 2023
9166636
chore: Merge branch 'staging' into chore/merge-master-into-staging-A1…
mcdurdin Jun 12, 2023
a73a83b
Merge pull request #86 from keymanapp/master-a17s13
mcdurdin Jun 13, 2023
c312967
Merge pull request #87 from keymanapp/chore/merge-master-into-staging…
mcdurdin Jun 13, 2023
4d48bea
Merge branch 'staging' into chore/merge-master-into-staging-A17S15
darcywong00 Jun 22, 2023
5f728cf
Merge pull request #88 from keymanapp/chore/merge-master-into-staging…
darcywong00 Jun 23, 2023
97945db
Merge branch 'staging' into chore/merge-master-into-staging-A17S16
darcywong00 Jul 6, 2023
a6fca4b
Merge pull request #91 from keymanapp/chore/merge-master-into-staging…
darcywong00 Jul 11, 2023
33a0679
Merge branch 'staging' into merge-master-to-staging-a17s17
darcywong00 Jul 20, 2023
13c94a0
Merge pull request #94 from keymanapp/merge-master-to-staging-a17s17
darcywong00 Jul 24, 2023
e82fc88
Merge branch 'staging' into merge-master-to-staging-a17s18
darcywong00 Aug 3, 2023
95e0cb5
Merge pull request #95 from keymanapp/merge-master-to-staging-a17s18
darcywong00 Aug 3, 2023
789972a
Merge branch 'staging' into chore/merge-master-to-staging-s17a19
darcywong00 Aug 18, 2023
c1e88be
Merge branch 'staging' into fix/add-unit-tests
darcywong00 Aug 25, 2023
838d51d
Merge pull request #97 from keymanapp/chore/merge-master-to-staging-s…
darcywong00 Aug 25, 2023
2ca963b
fix: Incorporate common changes
darcywong00 Aug 25, 2023
be52949
Merge remote-tracking branch 'origin/staging' into fix/add-unit-tests
darcywong00 Aug 25, 2023
5f8174f
add test of generating static file
darcywong00 Aug 25, 2023
8c7310a
chore: cleanup
darcywong00 Aug 25, 2023
c327c39
chore: remove comment about vendor/
darcywong00 Aug 25, 2023
e3d3484
fix: Split action for starting site and generating static file
darcywong00 Aug 28, 2023
0644108
Merge remote-tracking branch 'origin/staging' into chore/merge-master…
darcywong00 Sep 15, 2023
cf71218
Merge pull request #100 from keymanapp/chore/merge-master-to-staging-…
darcywong00 Sep 15, 2023
c1f714f
Merge branch 'staging' into chore/merge-master-to-staging-a17s22
darcywong00 Sep 28, 2023
8f5e316
Merge pull request #102 from keymanapp/chore/merge-master-to-staging-…
darcywong00 Oct 2, 2023
2621a01
Merge pull request #84 from keymanapp/fix/add-unit-tests
darcywong00 Oct 2, 2023
c3bd4fb
Merge branch 'staging' into chore/merge-master-to-staging-a17s23
darcywong00 Oct 11, 2023
a5bdb61
Merge pull request #104 from keymanapp/chore/merge-master-to-staging-…
darcywong00 Oct 12, 2023
07bb174
chore: Install jq in Dockerfile
darcywong00 Oct 18, 2023
cc866bd
chore: Generate static file in init-container.sh
darcywong00 Oct 18, 2023
25e9d73
Merge pull request #105 from keymanapp/chore/staging-init-container
darcywong00 Oct 18, 2023
42b85ee
Merge branch 'staging' into chore/merge-master-to-staging-a17s24
darcywong00 Oct 26, 2023
bff96af
Merge pull request #110 from keymanapp/chore/merge-master-to-staging-…
mcdurdin Oct 27, 2023
27b6501
Merge branch 'staging' into chore/merge-master-to-staging-a17s25
darcywong00 Nov 8, 2023
3860532
Merge pull request #129 from keymanapp/chore/merge-master-to-staging-…
darcywong00 Nov 9, 2023
3c335b0
Merge branch 'staging' into chore/merge-master-to-staging-a17s26
darcywong00 Nov 23, 2023
35ba34c
Merge pull request #151 from keymanapp/merge-master-to-staging-a17s26
darcywong00 Nov 24, 2023
d830d75
fix: Pin sha of php:7.4-apache
darcywong00 Nov 25, 2023
bf2cac0
Merge pull request #154 from keymanapp/sha-php-apache
darcywong00 Nov 30, 2023
299f229
Merge branch 'staging' into chore/merge-master-to-staging-a17s27
darcywong00 Dec 7, 2023
3d6655f
Merge pull request #173 from keymanapp/chore/merge-master-to-staging-…
darcywong00 Dec 12, 2023
4a1df7f
Merge remote-tracking branch 'origin/staging' into chore/merge-master…
darcywong00 Dec 20, 2023
ee6b2c4
Merge pull request #186 from keymanapp/chore/merge-master-to-staging-…
darcywong00 Dec 20, 2023
cbdef8f
Merge branch 'staging' into chore/merge-master-to-staging-a17s29
darcywong00 Jan 8, 2024
a096638
Merge pull request #198 from keymanapp/chore/merge-master-to-staging-…
darcywong00 Jan 8, 2024
2704831
Merge remote-tracking branch 'origin/staging' into chore/merge-master…
darcywong00 Jan 18, 2024
a8bdaee
Merge pull request #209 from keymanapp/chore/merge-master-to-staging-…
darcywong00 Jan 18, 2024
494b417
chore: Add info.php to show Tier
darcywong00 Jan 19, 2024
7c23b4a
fix: Apply review comments
darcywong00 Jan 19, 2024
4fe0f8a
Merge pull request #211 from keymanapp/chore/tier-info
darcywong00 Jan 24, 2024
056f255
chore: Add _control/ready
darcywong00 Jan 26, 2024
d22d5da
Merge pull request #219 from keymanapp/chore/ready
darcywong00 Jan 30, 2024
7337374
Merge remote-tracking branch 'origin/staging' into chore/master-to-st…
darcywong00 Feb 1, 2024
d084316
Merge pull request #230 from keymanapp/chore/master-to-staging-a17s31
darcywong00 Feb 1, 2024
4e39741
Update staging to use common-sites v0.4
darcywong00 Feb 5, 2024
727143b
Merge pull request #236 from keymanapp/use-v04
darcywong00 Feb 5, 2024
0b22424
chore: Add liveliness check
darcywong00 Feb 8, 2024
a2fc7f3
Merge pull request #244 from keymanapp/chore/alive
mcdurdin Feb 8, 2024
c15986c
chore: alive.txt to alive
mcdurdin Feb 12, 2024
b020e5f
Merge pull request #250 from keymanapp/chore/alive-txt-to-alive
mcdurdin Feb 12, 2024
e53616a
Merge pull request #249 from keymanapp/master
mcdurdin Feb 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@

Dockerfile text eol=lf
*.sh eol=lf
65 changes: 65 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: CI

on: [pull_request]

jobs:

build-test:
runs-on: ubuntu-20.04
env:
KEYMANHOSTS_TIER: TIER_TEST

steps:
- name: Checkout
uses: actions/checkout@v3

# Build the docker image
- name: Build the Docker image
shell: bash
run: |
echo "TIER_TEST" > tier.txt
./build.sh build start
env:
fail-fast: true

#
# Finally, run the tests; note that this is almost all replicated in build.sh; here logging is reduced (TODO sync)
#
- name: Lint
shell: bash
run: |
( set +e; set +o pipefail; find . -name '*.php' | grep -v '/vendor/' | xargs -n 1 -d '\n' php -l | grep -v "No syntax errors detected"; exit ${PIPESTATUS[2]} )

# Link checker not needed. No html files to verify

- name: Check PHP errors
shell: bash
run: |
CONTAINER=`docker container ls -l -q`
if docker container logs $CONTAINER 2>&1 | grep -q 'php7'; then
echo 'PHP reported errors or warnings:'
docker container logs $CONTAINER 2>&1 | grep 'php7'
exit 1
else
echo 'No PHP errors found'
exit 0
fi

- name: Check static file generated
shell: bash
run: |
pwd
if [ ! -f ./metadata/kmwversions.json ]; then
echo "Failed to generate static file"
exit 1
fi
#
# If any of the tests fail, let's grab a bit more detail on the environment
#
- name: Report errors
if: ${{ failure() }}
shell: bash
run: |
CONTAINER=`docker container ls -l -q`
echo "--- PHP errors in Docker log ---"
docker container logs $CONTAINER 2>&1 | grep 'php7'
18 changes: 0 additions & 18 deletions .github/workflows/deploy.yml

This file was deleted.

9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
.idea/

# Ignore CI-generated static file of kmwversions
metadata/
metadata/

/vendor

# Shared files are bootstrapped:
resources/bootstrap.inc.sh
resources/.bootstrap-version
_common/
17 changes: 16 additions & 1 deletion .htaccess
Original file line number Diff line number Diff line change
@@ -1,8 +1,23 @@
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
<IfModule mod_mime.c>
AddType font/ttf .ttf
AddType font/woff .woff
AddType font/woff2 .woff2
AddType font/otf .otf
AddType application/vnd.ms-fontobject .eot
AddType application/x-apple-aspen-config .mobileconfig
AddType image/svg+xml .svg
AddType application/javascript .js

AddCharset UTF-8 .js
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on

RewriteRule ^(cdnrefresh.php|Dockerfile|web.config|.git|App_Data)$ - [R=404,L]
RewriteRule ^(build.sh|Dockerfile|.git|resources/)$ - [R=404,L]
</IfModule>

# Ready
RewriteRule "^_control/ready$" "_control/ready.php" [END]
23 changes: 0 additions & 23 deletions App_Data/jobs/continuous/deploy/README.md

This file was deleted.

25 changes: 0 additions & 25 deletions App_Data/jobs/continuous/deploy/run.bat

This file was deleted.

3 changes: 0 additions & 3 deletions App_Data/jobs/continuous/deploy/settings.job

This file was deleted.

13 changes: 11 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,2 +1,11 @@
FROM php:5.6-apache
RUN a2enmod rewrite
# syntax=docker/dockerfile:1
# Site
FROM php:7.4-apache@sha256:c9d7e608f73832673479770d66aacc8100011ec751d1905ff63fae3fe2e0ca6d

# Install jq
RUN apt-get update && apt-get install -y \
jq
RUN cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
RUN chown -R www-data:www-data /var/www/html/

RUN a2enmod headers mime rewrite
2 changes: 2 additions & 0 deletions _control/alive
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Alive

19 changes: 19 additions & 0 deletions _control/info.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php
// Determine tier - copied from KeymanHosts.php
$env = getenv();
const TIER_DEVELOPMENT = "TIER_DEVELOPMENT";
const TIER_STAGING = "TIER_STAGING";
const TIER_PRODUCTION = "TIER_PRODUCTION";
const TIER_TEST = "TIER_TEST";

if(isset($env['KEYMANHOSTS_TIER']) && in_array($env['KEYMANHOSTS_TIER'],
[TIER_DEVELOPMENT, TIER_STAGING,
TIER_PRODUCTION, TIER_TEST])) {
$tier = $env['KEYMANHOSTS_TIER'];
} else if(file_exists(__DIR__ . '/../tier.txt')) {
$tier = trim(file_get_contents(__DIR__ . '/../tier.txt'));
} else {
$tier = TIER_DEVELOPMENT;
}

echo "<p>TIER: " . $tier . "</p>";
9 changes: 9 additions & 0 deletions _control/ready.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php
header("Content-Type: text/plain");

// Test web server ready
if (!file_exists(__DIR__ . '/../metadata/kmwversions.json')) {
die('/metadata/kmwversions.json not ready');
}

echo "ready\n";
18 changes: 0 additions & 18 deletions api/deploy.php

This file was deleted.

61 changes: 0 additions & 61 deletions api/webhooks.php

This file was deleted.

63 changes: 63 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/usr/bin/env bash
## START STANDARD SITE BUILD SCRIPT INCLUDE
readonly THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
readonly BOOTSTRAP="$(dirname "$THIS_SCRIPT")/resources/bootstrap.inc.sh"
readonly BOOTSTRAP_VERSION=v0.4
[ -f "$BOOTSTRAP" ] && source "$BOOTSTRAP" || source <(curl -fs https://raw.githubusercontent.com/keymanapp/shared-sites/$BOOTSTRAP_VERSION/bootstrap.inc.sh)
## END STANDARD SITE BUILD SCRIPT INCLUDE

readonly S_KEYMAN_CONTAINER_NAME=s-keyman-website
readonly S_KEYMAN_CONTAINER_DESC=s-keyman-com-app
readonly S_KEYMAN_IMAGE_NAME=s-keyman-website
readonly HOST_S_KEYMAN_COM=s.keyman.com.localhost

source _common/keyman-local-ports.inc.sh
source _common/docker.inc.sh

################################ Main script ################################

builder_describe \
"Setup s.keyman.com site to run via Docker." \
configure \
clean \
build \
start \
stop \
test \

builder_parse "$@"

function test_docker_container() {
# Note: ci.yml replicates these

# TODO: Run unit tests
#docker exec $S_KEYMAN_CONTAINER_DESC sh -c "vendor/bin/phpunit --testdox"

# Lint .php files for obvious errors
docker exec $S_KEYMAN_CONTAINER_DESC sh -c "find . -name '*.php' | grep -v '/vendor/' | xargs -n 1 -d '\\n' php -l"

# Link checker not needed. No html files to verify

# Verify static file generated
if [ ! -f ./metadata/kmwversions.json ]; then
builder_die "Failed to generate static file"
fi
}

# Custom cleanup of static file
function clean_docker_container_s() {
clean_docker_container $S_KEYMAN_IMAGE_NAME $S_KEYMAN_CONTAINER_NAME

# Cleanup static file
if [ -f ./metadata/kmwversions.json ]; then
rm ./metadata/kmwversions.json
fi
}

builder_run_action configure bootstrap_configure
builder_run_action clean clean_docker_container_s
builder_run_action stop stop_docker_container $S_KEYMAN_IMAGE_NAME $S_KEYMAN_CONTAINER_NAME
builder_run_action build build_docker_container $S_KEYMAN_IMAGE_NAME $S_KEYMAN_CONTAINER_NAME
builder_run_action start start_docker_container $S_KEYMAN_IMAGE_NAME $S_KEYMAN_CONTAINER_NAME $S_KEYMAN_CONTAINER_DESC $HOST_S_KEYMAN_COM $PORT_S_KEYMAN_COM

builder_run_action test test_docker_container
Binary file removed deploy/jq-win64.exe
Binary file not shown.
Loading
Loading