42 Commits

Author SHA1 Message Date
bel
f62ab35fa8 use variable findings to set build_before/after to varaible for checking if should docker build 2023-10-15 08:16:30 -06:00
bel
a2a6cccd93 whitespace dockerfile 2023-10-15 08:16:11 -06:00
bel
523c4fd9a6 only docker build if push to main 2023-10-15 08:16:02 -06:00
bel
fb68fce267 whitespace to GO 2023-10-15 08:13:45 -06:00
bel
95c4253e26 hm weird syntax parsing i guess 2023-10-15 08:13:21 -06:00
bel
8e246d07be add debug git diff name only 2023-10-15 08:11:52 -06:00
bel
76ea44a124 add echoes to dockerfile.cicd 2023-10-15 08:09:30 -06:00
bel
a3f7753a71 move vale to inside deploy.firebase.sh 2023-10-15 08:09:01 -06:00
bel
e23d61a4f0 un-debug building portfolio/resume/builder 2023-10-15 08:08:49 -06:00
bel
155bba7b5a sleep until docker ready 2023-10-15 08:05:32 -06:00
bel
143ae9ba04 sleep 2023-10-15 08:04:00 -06:00
bel
0512028c40 copy https://docs.gitness.com/pipelines/samples/docker_dind 2023-10-15 08:01:59 -06:00
bel
78e6af29ed mount dockersock for docker in docker 2023-10-15 07:58:58 -06:00
bel
fce00bad38 force build 2023-10-15 07:56:40 -06:00
bel
be5671616f install git for docker change detection 2023-10-15 07:55:42 -06:00
bel
e8bd522a52 rename portfolio/resume:latest to portfolio/resume/builder:latest 2023-10-15 07:54:08 -06:00
bel
30fdbe31f9 self-host registry for one portfolio/resume:latest builder 2023-10-15 07:48:07 -06:00
bel
6c9d11f035 change all ttf fonts to woff2 and replace in public 2023-10-15 07:25:13 -06:00
bel
47c11b8fba rm debug 2023-10-14 20:49:19 -06:00
bel
de9d53f494 readme 2023-10-14 20:44:34 -06:00
bel
712881ad02 Updated pipeline firebase-deploy 2023-10-15 02:39:56 +00:00
bel
41cee6f459 noninteractive and not home killing 2023-10-14 20:30:59 -06:00
bel
e3e14d6ed0 deploy.firebase.sh pushes static files to gitlab.com/breel/resume for render 2023-10-14 20:22:10 -06:00
bel
8ae43a6356 secret w env 2023-10-11 21:18:04 -06:00
bel
9068fa6647 newline 2023-10-11 21:14:57 -06:00
bel
c72098a66c log 2023-10-11 21:13:51 -06:00
bel
3d2c4ef882 log 2023-10-11 21:12:36 -06:00
bel
ddf2af808c log 2023-10-11 21:12:25 -06:00
bel
a66222e143 go 2023-10-11 21:11:11 -06:00
bel
5570e6edbe go 2023-10-11 21:11:09 -06:00
bel
5b3106f981 go 2023-10-11 21:10:13 -06:00
bel
5f51d1564e mk 2023-10-11 21:07:29 -06:00
bel
e295b06efe agro 2023-10-11 21:06:32 -06:00
bel
143dabb7d9 agro 2023-10-11 21:04:50 -06:00
bel
cc81b47e49 agro 2023-10-11 21:03:43 -06:00
bel
e7ed323f2c agro 2023-10-11 21:01:37 -06:00
bel
507f3436c7 agro 2023-10-11 21:00:28 -06:00
bel
077a03c35e agro 2023-10-11 20:59:33 -06:00
bel
a504c357c5 agro 2023-10-11 20:58:34 -06:00
bel
c24ab809a5 gogo 2023-10-11 20:55:46 -06:00
bel
76aa1a20cf hist 2023-10-11 20:54:26 -06:00
bel
d4560d05fd try vale 2023-10-11 20:53:42 -06:00
6 changed files with 162 additions and 133 deletions

View File

@@ -2,26 +2,73 @@ version: 1
kind: pipeline
spec:
stages:
- name: build
type: ci
spec:
steps:
- name: debug
type: run
spec:
name: debug
container: alpine/git
shell: sh
script: |
echo build.event = ${{ build.event }}
echo build.target = ${{ build.target }}
- name: build
type: run
when: build.event == "push" && build.target == "main"
spec:
name: build
container: andreysenov/firebase-tools
shell: sh
script: >
bash ./deploy.firebase.sh '${{
secrets.get("resume-firebase-squeaky2x3-gmail-token") }}'
- name: build
type: ci
spec:
volumes:
- name: dockersock
spec: {}
type: temp
steps:
- name: debug
type: run
spec:
name: debug
container: alpine/git
shell: sh
script: |
export build_event=${{ build.event }}
export build_target=${{ build.target }}
export build_before=${{ build.before }}
export build_after=${{ build.after }}
env | grep ^build_
git --no-pager diff --name-only $build_before..$build_after
- name: dind
when: build.event == "push" && build.target == "main"
type: background
spec:
container:
image: registry-app.inhome.blapointe.com:5001/docker:latest
privileged: true
mount:
- name: dockersock
path: /var/run
- name: docker
type: run
when: build.event == "push" && build.target == "main"
spec:
name: docker
container: registry-app.inhome.blapointe.com:5001/docker:latest
mount:
- name: dockersock
path: /var/run
shell: sh
script: |
set -ueo pipefail
export build_before=${{ build.before }}
export build_after=${{ build.after }}
apk add --no-cache git
t=registry-app.inhome.blapointe.com:5001/portfolio/resume/builder:latest
if git diff --name-only $build_before..$build_after | grep Dockerfile.cicd; then
until docker ps; do
sleep 5
done
docker build -t "$t" -f ./Dockerfile.cicd .
docker push "$t"
fi
- name: build
type: run
when: build.event == "push" && build.target == "main"
spec:
name: build
container:
image: registry-app.inhome.blapointe.com:5001/portfolio/resume/builder:latest
user: root
envs:
FIREBASE_CI_TOKEN: ${{ secrets.get("resume-firebase-squeaky2x3-gmail-token") }}
GITLAB_PAT: ${{ secrets.get("resume-gitlab-gitlab-breel-dev-token") }}
shell: sh
script: |
bash ./deploy.firebase.sh

9
.vale.ini Normal file
View File

@@ -0,0 +1,9 @@
StylesPath = styles
MinAlertLevel = suggestion
Packages = proselint, write-good, Readability, Joblint
[*]
BasedOnStyles = Vale, proselint, write-good, Readability, Joblint

11
Dockerfile.cicd Normal file
View File

@@ -0,0 +1,11 @@
FROM jdkato/vale:latest as vale
FROM andreysenov/firebase-tools:latest
RUN echo installing dependencies...
RUN apt -y install git woff2 bash
RUN echo copying vale...
COPY --from=vale /bin/vale /bin/vale
RUN echo OK

View File

@@ -10,3 +10,14 @@
1. `pbpaste > ./open-resume.com.d/resume.html`
1. `cd ./open-resume.com.d/; bash ./clean_resume_html.sh; cd ..`
1. `bash ./deploy.firebase.sh`
# Today
1. `gitness.inhome.blapointe.com` has a `./.harness` pipeline
1. the pipeline
1. renders [Resume](#resume) as `$(mktemp -d)/public`
1. clones [gitlab](https://gitlab.com/breel/resume.git)
1. replaces [gitlab](https://gitlab.com/breel/resume.git) with `.../public/`
1. pushes [gitlab](https://gitlab.com/breel/resume.git)
1. [render](https://dashboard.render.com/static/srv-cklkk8o710pc73d7fn7g) detects public repo event and updates its static site hosting for [breel.dev](https://breel.dev)
1. [firebase](https://console.firebase.google.com/u/0/project/blapointe-com/overview) deploys `.../public/` for [blapointe.com](https://blapointe.com)

View File

@@ -4,6 +4,13 @@ set -o pipefail
set -e
set -u
if which vale; then
f=$(mktemp)
cat open-resume.com.d/local-storage-about-srcdoc-open-resume.json | sed 's/"[^"]*":/"."/g' > $f
vale sync
vale $f || true
fi
if tty && ! which firebase; then
f="$(mktemp)"
wget https://firebase.tools -O - > "$f"
@@ -24,15 +31,61 @@ cp ./open-resume.com.d/resume.html.2 $outdir/public/index.html
cp ./open-resume.com.d/resume.pdf $outdir/public/BreeLaPointeResume.pdf
cp -r ./open-resume.com.d/fonts $outdir/public/
(
if ! which woff2_compress; then
sudo apt -y install woff2
fi
set -ueo pipefail
for f in "$outdir"/public/fonts/*.ttf; do
echo ttf to woff2 for "$f"
if [ -f "$f" ]; then
woff2_compress "$f"
rm "$f"
fi
basename_f="${f##*/}"
find "$outdir/public" -type f | grep -v public.fonts | while read -r f2; do
sed -i "s#$basename_f#${basename_f%.ttf}.woff2#g" "$f2"
done
echo asserting no $basename_f
! grep -R "$basename_f" "$outdir/public"
echo asserting ${basename_f%.ttf}.woff2
grep -R "${basename_f%.ttf}.woff2" "$outdir/public"
done
du -sh "$outdir/public/fonts/"*
)
cp -r ./firebase.json ./.firebaserc ./.firebase $outdir/
sed -i "s#deploy/public#public#" $outdir/firebase.json
cd $outdir
echo firebase uses squeaky2x3@gmail.com
! tty || firebase login
echo firebase init
args=()
if ! tty; then
args+=("--token" "$1")
fi
firebase deploy "${args[@]}"
(
set -ueo pipefail
if [ -n "$GITLAB_PAT" ]; then
export HOME="$(mktemp -d)"
git clone https://gitlab%40breel.dev:"$GITLAB_PAT"@gitlab.com/breel/resume.git gitlab-resume.d
git config --global user.name "gitlab@breel.dev"
git config --global user.email "gitlab@breel.dev"
rm -rf ./gitlab-resume.d/*
cp -r ./public/* ./gitlab-resume.d/
cd ./gitlab-resume.d/
git add -A :/
git commit -m "$(date -u +%Y-%m-%dT%H:%M:%S)"
git push origin main
fi
) || true
(
set -ueo pipefail
echo firebase uses squeaky2x3@gmail.com
! tty || firebase login
echo firebase init
args=()
log_args=()
if ! tty; then
args+=("--token" "$FIREBASE_CI_TOKEN")
log_args+=("--token" "${FIREBASE_CI_TOKEN:0:1}")
test "${FIREBASE_CI_TOKEN:0:1}" != "$"
fi
echo firebase deploy "${log_args[@]}"
firebase deploy "${args[@]}"
)

View File

@@ -1,102 +0,0 @@
resume:
custom:
descriptions: []
educations:
- date: Dec 2017
degree: Master of Science in Computer Science
descriptions: []
gpa: 3.88/4.00
school: Wake Forest University
- date: Dec 2015
degree: Bachelor of Arts in Computer Science
descriptions: []
gpa: 3.91/4.00
school: High Point University
profile:
email: contact@blapointe.com
location: Provo, UT
name: Bree LaPointe
phone: (336) 701-6159
summary: Senior Software Engineer
url: linkedin.com/in/lapoba16
projects:
- date: June 2018
descriptions:
- Refactored to correct bugs and improve efficiency by orders of magnitude
project: Arabidopsis thaliana computationally-generated next-state gene interaction models
skills:
descriptions:
- 'Languages: Golang, Bash, Python3'
- 'Platforms: Docker, Hashicorp, Linux/Unix, AWS, Jenkins, REST, Microservices, Git'
- 'Datastores: MongoDB, Redis, S3, Couchbase, DynamoDB'
featuredSkills:
- rating: 4
skill: ""
- rating: 4
skill: ""
- rating: 4
skill: ""
- rating: 4
skill: ""
- rating: 4
skill: ""
- rating: 4
skill: ""
notfeaturedSkills:
- rating: 4
skill: Golang
- rating: 4
skill: Bash
- rating: 3
skill: Python3
workExperiences:
- company: Qualtrics
date: May 2022 - Present
descriptions:
- Mentored entry and mid-level engineers on stability, clean code, and distributed systems.
- Hosted engineering book and white paper clubs for continuous improvement and cross-team experience sharing for 2 years.
- Recovered 98% of data lost in critical incident via coordinating cross team efforts and dissecting native database operation logs.
jobTitle: Senior Software Engineer, Team Lead
- company: Qualtrics
date: Oct 2019 - May 2022
descriptions:
- Developed and owned highly available and reliable data storage and operational tooling.
- Mentored 2 interns, 2 new hires, and 3 mid-level cross team engineers on operational tools, maintainable software, and career development.
- Genericized AWS asset management tooling ahead of company-wide mass migration initiative.
- Championed disaster recovery by supporting training runs with documentation, tools, and live support across teams and enforced continuous compliance for 17 database clusters with monitoring and alerting.
- Lent expertise owning MongoDB across teams by advising on configuration and data models and genericizing disaster recovery tooling for 21 teams.
jobTitle: Software Engineer II
- company: Qualtrics
date: Feb 2018 - Oct 2019
descriptions:
- Automated no-downtime system patching for 30 services and 25 database clusters by creating a modular and testable scripting framework.
- Raised backend service's availability to 99.99% and reduced hardware costs by 40% by selecting, training team on, and live migrating to a different datastore.
jobTitle: Software Engineer I
settings:
documentSize: Letter
fontFamily: Lato
fontSize: "11"
formToHeading:
custom: PUBLICATIONS
educations: EDUCATION
projects: PUBLICATIONS
skills: SKILLS
workExperiences: WORK EXPERIENCE
formToShow:
custom: false
educations: true
projects: true
skills: true
workExperiences: true
formsOrder:
- workExperiences
- educations
- projects
- skills
- custom
showBulletPoints:
custom: false
educations: false
projects: true
skills: true
themeColor: '#818cf8'