Compare commits
10 Commits
439718de1e
...
62c899cf30
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
62c899cf30 | ||
|
|
e46679dc00 | ||
|
|
3a9afdfb61 | ||
|
|
f269d0a667 | ||
|
|
30a7228a1b | ||
|
|
20ad4c8ede | ||
|
|
4ec8bdc471 | ||
|
|
3dfc077095 | ||
|
|
03a937b7a2 | ||
|
|
278d120310 |
59
.dev/ops/s3-sync.sh
Executable file
59
.dev/ops/s3-sync.sh
Executable file
@@ -0,0 +1,59 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
USAGE="sync-s3-uploads.sh <source env> <target env>"
|
||||||
|
|
||||||
|
MY_PATH="`dirname \"$0\"`"
|
||||||
|
UPLOADS_DIR="$(cd "$MY_PATH" && cd "../../web/app/uploads" && pwd)"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=$(heroku config:get AWS_ACCESS_KEY_ID)
|
||||||
|
export AWS_ACCESS_KEY_ID
|
||||||
|
AWS_SECRET_ACCESS_KEY=$(heroku config:get AWS_SECRET_ACCESS_KEY)
|
||||||
|
export AWS_SECRET_ACCESS_KEY
|
||||||
|
AWS_REGION=$(heroku config:get AWS_REGION)
|
||||||
|
export AWS_REGION
|
||||||
|
|
||||||
|
USE_CDN=$(heroku config:get USE_CDN)
|
||||||
|
USE_CDN=${USE_CDN-false}
|
||||||
|
|
||||||
|
BLOG_SLUG=$(heroku config:get BLOG_SLUG)
|
||||||
|
BLOG_SLUG=${BLOG_SLUG-hvg-blog}
|
||||||
|
|
||||||
|
if [[ $USE_CDN == true ]]; then
|
||||||
|
FOLDER="$BLOG_SLUG/uploads"
|
||||||
|
else
|
||||||
|
FOLDER="uploads"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check args
|
||||||
|
if [ -z "$1" ] || [ -z "$2" ]; then
|
||||||
|
echo $USAGE >&2;
|
||||||
|
[[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get bucket urls
|
||||||
|
if [[ $1 == 'local' ]]; then
|
||||||
|
SOURCE_URL=$UPLOADS_DIR
|
||||||
|
else
|
||||||
|
SOURCE_URL=s3://`heroku config:get BUCKET_NAME -r $1`/$FOLDER;
|
||||||
|
fi;
|
||||||
|
|
||||||
|
if [[ $2 == 'local' ]]; then
|
||||||
|
TARGET_URL=$UPLOADS_DIR
|
||||||
|
else
|
||||||
|
TARGET_URL=s3://`heroku config:get BUCKET_NAME -r $2`/$FOLDER;
|
||||||
|
fi;
|
||||||
|
|
||||||
|
echo "You are about to copy all files from $SOURCE_URL to $TARGET_URL";
|
||||||
|
read -p "Are you sure you want to do this? (y/n)
|
||||||
|
";
|
||||||
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
[[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use aws-cli to synchronize buckets
|
||||||
|
aws s3 sync $SOURCE_URL $TARGET_URL
|
||||||
|
|
||||||
|
echo "Success!"
|
||||||
|
exit 0
|
||||||
57
.github/workflows/docker-publish.yml
vendored
57
.github/workflows/docker-publish.yml
vendored
@@ -15,9 +15,7 @@ on:
|
|||||||
branches: [ "main" ]
|
branches: [ "main" ]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
PACK_VERSION: "0.27.0"
|
DESCRIPTION: "HVG Blog Wordpress Heroku App Image https://hvgblog.hu"
|
||||||
YQ_VERSION: "4.25.3"
|
|
||||||
JQ_VERSION: "1.6"
|
|
||||||
COMPOSER_AUTH: "{\"github-oauth\":{\"github.com\":\"${{ secrets.HVG_DEV_GH_TOKEN }}\"}}"
|
COMPOSER_AUTH: "{\"github-oauth\":{\"github.com\":\"${{ secrets.HVG_DEV_GH_TOKEN }}\"}}"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -27,7 +25,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
- uses: andrioid/setup-pack@v1.0.1
|
- uses: buildpacks/github-actions/setup-pack@v4.8.0
|
||||||
- name: Docker registry login
|
- name: Docker registry login
|
||||||
uses: docker/login-action@v1
|
uses: docker/login-action@v1
|
||||||
with:
|
with:
|
||||||
@@ -43,57 +41,16 @@ jobs:
|
|||||||
tag="${GITHUB_REF#tags/*/}";
|
tag="${GITHUB_REF#tags/*/}";
|
||||||
[[ $tag == '' ]] || tag="${year}.${day}.${{ github.run_number }}";
|
[[ $tag == '' ]] || tag="${year}.${day}.${{ github.run_number }}";
|
||||||
echo "TAG=$tag" >> $GITHUB_ENV;
|
echo "TAG=$tag" >> $GITHUB_ENV;
|
||||||
- name: Setup Pack
|
|
||||||
run: |
|
|
||||||
echo "Installing pack ${PACK_VERSION}"
|
|
||||||
mkdir -p "${PWD}/bin"
|
|
||||||
curl \
|
|
||||||
--show-error \
|
|
||||||
--silent \
|
|
||||||
--location \
|
|
||||||
--fail \
|
|
||||||
--retry 3 \
|
|
||||||
--connect-timeout 5 \
|
|
||||||
--max-time 60 \
|
|
||||||
"https://github.com/buildpacks/pack/releases/download/v${PACK_VERSION}/pack-v${PACK_VERSION}-linux.tgz" \
|
|
||||||
| tar -C "${PWD}/bin" -xz pack
|
|
||||||
- name: Setup YQ
|
|
||||||
run: |
|
|
||||||
echo "Installing yq ${YQ_VERSION}"
|
|
||||||
curl \
|
|
||||||
--show-error \
|
|
||||||
--silent \
|
|
||||||
--location \
|
|
||||||
--fail \
|
|
||||||
--retry 3 \
|
|
||||||
--connect-timeout 5 \
|
|
||||||
--max-time 60 \
|
|
||||||
"https://github.com/mikefarah/yq/releases/download/v${YQ_VERSION}/yq_linux_amd64.tar.gz" \
|
|
||||||
| tar -C "${PWD}/bin" --transform='flags=r;s|yq_linux_amd64|yq|' -xz --wildcards 'yq'
|
|
||||||
- name: Setup JQ
|
|
||||||
run: |
|
|
||||||
echo "Installing jq ${JQ_VERSION}"
|
|
||||||
mkdir -p "${PWD}/bin"
|
|
||||||
curl \
|
|
||||||
--show-error \
|
|
||||||
--silent \
|
|
||||||
--location \
|
|
||||||
--fail \
|
|
||||||
--retry 3 \
|
|
||||||
--connect-timeout 5 \
|
|
||||||
--max-time 60 \
|
|
||||||
-o "${PWD}/bin/jq"
|
|
||||||
"https://github.com/stedolan/jq/releases/download/jq-${JQ_VERSION}/jq-${JQ_VERSION}.tar.gz"
|
|
||||||
chmod +x "${PWD}/bin/jq"
|
|
||||||
- name: Build Image with pack
|
- name: Build Image with pack
|
||||||
run: |
|
run: |
|
||||||
[[ ! -z $(bin/yq e '. | keys' Procfile | cut -c 3- | grep bash) ]] \
|
[[ ! -z $(yq e '. | keys' Procfile | cut -c 3- | grep bash) ]] \
|
||||||
|| echo 'bash: bash -l' >> Procfile
|
|| echo 'bash: bash -l' >> Procfile
|
||||||
bin/pack build "ghcr.io/hvg/blog:$TAG" \
|
pack build "ghcr.io/hvg/blog:$TAG" \
|
||||||
--builder heroku/buildpacks:20 \
|
--builder heroku/builder-classic:22 \
|
||||||
--descriptor project.toml \
|
--descriptor project.toml \
|
||||||
--workspace /app \
|
--workspace /app \
|
||||||
--env COMPOSER_AUTH=$COMPOSER_AUTH;
|
--env COMPOSER_AUTH=$COMPOSER_AUTH \
|
||||||
|
--env ALLOW_EOL_SHIMMED_BUILDER=1;
|
||||||
- name: Tag Docker image to ref
|
- name: Tag Docker image to ref
|
||||||
run: |
|
run: |
|
||||||
docker tag ghcr.io/hvg/blog:$TAG ghcr.io/hvg/blog:$REF
|
docker tag ghcr.io/hvg/blog:$TAG ghcr.io/hvg/blog:$REF
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
alias d-composer="docker-compose run --rm wordpress composer"
|
alias d-composer="docker-compose run --rm wordpress composer"
|
||||||
alias d-wp="docker-compose run --rm wordpress wp"
|
alias d-wp="docker-compose run --rm wordpress wp"
|
||||||
|
alias d-s3-sync="docker-compose run --rm wordpress .dev/ops/s3-sync.sh"
|
||||||
alias d-heroku="docker-compose run --rm --entrypoint=heroku wordpress"
|
alias d-heroku="docker-compose run --rm --entrypoint=heroku wordpress"
|
||||||
alias d-bash="docker-compose run --rm --entrypoint=bash wordpress -l"
|
alias d-bash="docker-compose run --rm --entrypoint=bash wordpress -l"
|
||||||
alias dc-build="docker-compose build --pull --no-cache"
|
alias dc-build="docker-compose build --pull --no-cache"
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ function d-wp {
|
|||||||
dc run --rm wordpress wp $args
|
dc run --rm wordpress wp $args
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function d-s3-sync {
|
||||||
|
dc run --rm wordpress .dev/ops/s3-sync.sh $args
|
||||||
|
}
|
||||||
|
|
||||||
function d-heroku {
|
function d-heroku {
|
||||||
dc run --rm --entrypoint=heroku wordpress $args
|
dc run --rm --entrypoint=heroku wordpress $args
|
||||||
}
|
}
|
||||||
|
|||||||
1
Procfile
1
Procfile
@@ -1,2 +1 @@
|
|||||||
web: PHP_INI_SCAN_DIR=${PHP_INI_SCAN_DIR-:/app/config/php.d} heroku-php-nginx -C config/nginx.conf web
|
web: PHP_INI_SCAN_DIR=${PHP_INI_SCAN_DIR-:/app/config/php.d} heroku-php-nginx -C config/nginx.conf web
|
||||||
bash: bash -l
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.4 <8.1",
|
"php": ">=7.4 <8.2",
|
||||||
"ext-gd": "*",
|
"ext-gd": "*",
|
||||||
"ext-redis": "*",
|
"ext-redis": "*",
|
||||||
"ext-mbstring": "*",
|
"ext-mbstring": "*",
|
||||||
|
|||||||
2593
composer.lock
generated
2593
composer.lock
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user