forked from Hubs-Foundation/hubs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Geng Tan
committed
Nov 22, 2021
1 parent
3f2893a
commit c50f3c0
Showing
4 changed files
with
139 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
name: hubs | ||
on: | ||
push: | ||
paths-ignore: ["README.md"] | ||
workflow_dispatch: | ||
|
||
env: | ||
registryName: mozillareality | ||
containerName: hubs | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: checkout-hubs | ||
uses: actions/checkout@v2 | ||
with: | ||
path: "./hubs" | ||
- name: docker setup buildx | ||
uses: docker/setup-buildx-action@v1 | ||
with: | ||
install: true | ||
- name: docker login | ||
uses: docker/login-action@v1 | ||
with: | ||
username: ${{ env.registryName }} | ||
password: ${{ secrets.DOCKER_HUB_PWD }} | ||
- name: docker build(x) push | ||
uses: docker/build-push-action@v2 | ||
with: | ||
context: hubs/ | ||
file: hubs/RetPageOriginDockerfile | ||
tags: ${{ env.registryName }}/${{ env.containerName }}:${{ github.run_number }} | ||
cache-from: type=registry,ref=${{ env.registryName }}/${{ env.containerName }}:buildcache | ||
cache-to: type=registry,ref=${{ env.registryName }}/${{ env.containerName }}:buildcache,mode=max | ||
push: true | ||
|
||
# turkeyGitops: | ||
# needs: build | ||
# uses: mozilla/hubs-ops/.github/workflows/turkeyGitops.yml@feature/gha-template | ||
# with: | ||
# promoteFrom: mozillareality/hubs:${{ github.run_number }} | ||
# promoteTo: mozillareality/hubs:${GITHUB_REF/'refs/heads/'/} | ||
# # https://docs.github.com/en/actions/learn-github-actions/reusing-workflows#limitations | ||
# # Any environment variables set in an env context defined at the workflow level in the caller workflow are not propagated to the called workflow. | ||
# # promoteFrom: ${{ env.registryName }}/${{ env.containerName }}:${{ github.run_number }} | ||
# # promoteTo: ${{ env.registryName }}/${{ env.containerName }}:${GITHUB_REF/'refs/heads/'/} | ||
|
||
promote: | ||
if: github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/staging' || github.ref == 'refs/heads/prod' | ||
runs-on: ubuntu-latest | ||
needs: build | ||
steps: | ||
- name: promote artifact | ||
run: | | ||
fromTag=${{ env.registryName }}/${{ env.containerName }}:${{ github.run_number }} | ||
toTag=${{ env.registryName }}/${{ env.containerName }}:${GITHUB_REF/'refs/heads/'/} | ||
echo ${{ secrets.DOCKER_HUB_PWD }} | sudo docker login --username $registryName --password-stdin | ||
docker pull $fromTag && docker tag $fromTag $toTag && sudo docker push $toTag | ||
echo "promoted :$fromTag to :$toTag" | ||
staging_pr_to_prod: | ||
if: github.ref == 'refs/heads/staging' | ||
runs-on: ubuntu-latest | ||
needs: promote | ||
steps: | ||
- name: create pr for staging -> prod | ||
run: | | ||
gh pr create -H staging -B prod | ||
prod_cut_release_branch: | ||
if: github.ref == 'refs/heads/prod' | ||
runs-on: ubuntu-latest | ||
needs: promote | ||
steps: | ||
- name: cut release branch for prod | ||
run: | | ||
git checkout -b releases/$(date '+%y%m%d').$GITHUB_RUN_NUMBER |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
### | ||
# this dockerfile produces image/container that serves customly packaged hubs and admin static files | ||
# the result container should serve reticulum as "hubs_page_origin" and "admin_page_origin" on (path) "/hubs/pages" | ||
### | ||
from node:16.13 as builder | ||
run mkdir -p /hubs/admin/ && cd /hubs | ||
copy package.json ./ | ||
copy package-lock.json ./ | ||
run npm ci | ||
copy admin/package.json admin/ | ||
copy admin/package-lock.json admin/ | ||
run cd admin && npm ci && cd .. | ||
copy . . | ||
env BASE_ASSETS_PATH="{{rawhubs-base-assets-path}}" | ||
run npm run build 1> /dev/null | ||
run cd admin && npm run build 1> /dev/null && cp -R dist/* ../dist && cd .. | ||
run mkdir -p dist/pages && mv dist/*.html dist/pages && mv dist/hub.service.js dist/pages && mv dist/schema.toml dist/pages | ||
run mkdir /hubs/rawhubs && mv dist/pages /hubs/rawhubs && mv dist/assets /hubs/rawhubs && mv dist/react-components /hubs/rawhubs/pages && mv dist/favicon.ico /hubs/rawhubs/pages | ||
|
||
from alpine/openssl as ssl | ||
run mkdir /ssl && openssl req -x509 -newkey rsa:2048 -sha256 -days 36500 -nodes -keyout /ssl/key -out /ssl/cert -subj '/CN=hubs' | ||
|
||
from nginx:alpine | ||
run apk add bash | ||
run mkdir /ssl && mkdir -p /www/hubs && mkdir -p /www/hubs/pages && mkdir -p /www/hubs/assets | ||
copy --from=ssl /ssl /ssl | ||
copy --from=builder /hubs/rawhubs/pages /www/hubs/pages | ||
copy --from=builder /hubs/rawhubs/assets /www/hubs/assets | ||
copy scripts/docker/nginx.config /etc/nginx/conf.d/default.conf | ||
copy scripts/docker/run.sh /run.sh | ||
run chmod +x /run.sh && cat /run.sh | ||
cmd bash /run.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
server { | ||
listen 8080 ssl; | ||
ssl_certificate /ssl/cert; | ||
ssl_certificate_key /ssl/key; | ||
location / { | ||
root /www; | ||
autoindex off; | ||
add_header 'Access-Control-Allow-Origin' '*'; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
|
||
# TODO: need a better one | ||
healthcheck(){ | ||
while true; do (echo -e 'HTTP/1.1 200 OK\r\n\r\n 1') | nc -lp 1111 > /dev/null; done | ||
} | ||
|
||
find /www/hubs/ -type f -name *.html -exec sed -i "s/{{rawhubs-base-assets-path}}\//https:\/\/${SUB_DOMAIN}-assets.${DOMAIN}\/hubs\//g" {} \; | ||
find /www/hubs/ -type f -name *.html -exec sed -i "s/{{rawhubs-base-assets-path}}/https:\/\/${SUB_DOMAIN}-assets.${DOMAIN}\/hubs\//g" {} \; | ||
find /www/hubs/ -type f -name *.css -exec sed -i "s/{{rawhubs-base-assets-path}}\//https:\/\/${SUB_DOMAIN}-assets.${DOMAIN}\/hubs\//g" {} \; | ||
find /www/hubs/ -type f -name *.css -exec sed -i "s/{{rawhubs-base-assets-path}}/https:\/\/${SUB_DOMAIN}-assets.${DOMAIN}\/hubs\//g" {} \; | ||
anchor="<!-- DO NOT REMOVE\/EDIT THIS COMMENT - META_TAGS -->" | ||
for f in /www/hubs/pages/*.html; do | ||
for var in $(printenv); do | ||
var=$(echo $var | cut -d"=" -f1 ); prefix="turkeyCfg_"; | ||
[[ $var == $prefix* ]] && sed -i "s/$anchor/ <meta name=\"env:${var#$prefix}\" content=\"${!var//\//\\\/}\"\/> $anchor/" $f; | ||
done | ||
done | ||
healthcheck & | ||
nginx -g "daemon off;" |