Skip to content

Commit

Permalink
CI and deploy steps for docs
Browse files Browse the repository at this point in the history
Signed-off-by: Pawel Leszczynski <[email protected]>
  • Loading branch information
pawel-big-lebowski committed Jul 24, 2024
1 parent c0f6c01 commit d9c47ce
Show file tree
Hide file tree
Showing 9 changed files with 165 additions and 170 deletions.
23 changes: 0 additions & 23 deletions .circleci/continue_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -993,29 +993,6 @@ jobs:
- run: mkdir -p target/wheels && cp target/wheels/* dist/
- run: python -m twine upload --non-interactive --verbose --repository pypi dist/*

publish-javadoc:
working_directory: ~/openlineage/client/java
docker:
- image: cimg/openjdk:11.0
steps:
- *checkout_project_root
- add_ssh_keys:
fingerprints:
- "7d:bc:78:35:09:c9:25:04:63:f9:eb:4b:f1:f4:d1:91"
- run: ./gradlew --console=plain javadoc
- run: ./release-javadoc.sh

publish-spec:
working_directory: ~/openlineage
docker:
- image: cimg/base:2021.07
steps:
- *checkout_project_root
- add_ssh_keys:
fingerprints:
- "7d:bc:78:35:09:c9:25:04:63:f9:eb:4b:f1:f4:d1:91"
- run: spec/release.sh

build-proxy-fluentd:
working_directory: ~/openlineage/proxy/fluentd
docker:
Expand Down
11 changes: 0 additions & 11 deletions .circleci/workflows/openlineage-integration-publish.yml

This file was deleted.

10 changes: 1 addition & 9 deletions .circleci/workflows/openlineage-java.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,4 @@ workflows:
requires:
- compile-integration-sql-java-linux-arm
- compile-integration-sql-java-linux-x86
- compile-integration-sql-java-macos
- publish-javadoc:
filters:
branches:
only: main
context: release
- workflow_complete:
requires:
- publish-javadoc
- compile-integration-sql-java-macos
46 changes: 46 additions & 0 deletions .github/workflows/javadoc-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Build & Deploy javadoc

on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
branches:
# testing only, not allowed to run on OpenLineage/OpenLineage repo
- test-docs-deploy

jobs:
generate_javadoc:
if: |
(github.event.base_ref == 'test-docs-deploy' && github.repository != 'OpenLineage/OpenLineage' ) ||
(github.event.base_ref != 'test-docs-deploy' && github.repository == 'OpenLineage/OpenLineage')
name: "Generate Java docs"
runs-on: ubuntu-latest
steps:
- uses: actions/setup-java@v4
with:
distribution: 'corretto'
java-version: '11'
- name: Clear existing javadoc
run: rm -rf website/static/apidocs/javadoc
- name: Generate new java doc
run: |
cd client/java
./gradlew --console=plain javadoc
- name: Copy docs to website directory
run: cp client/java/build/docs/javadoc website/static/apidocs
- name: Commit javadoc to main
run: |
git config user.name github-actions
git config user.email [email protected]
git fetch
git checkout main
git add website/static/apidocs/*
git commit -m "[generated] reloading javadoc"
git push
netlify-deploy-changes:
uses: ./.github/workflows/netlify-deploy.yml
needs: generate_javadoc
secrets:
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
NETLIFY_TOKEN_SECRET: ${{ secrets.NETLIFY_TOKEN_SECRET }}
43 changes: 43 additions & 0 deletions .github/workflows/netlify-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: 'Reusable netlify deploy workflow'

on:
workflow_call:
secrets:
NETLIFY_SITE_ID:
required: true
NETLIFY_TOKEN_SECRET:
required: true

jobs:
netlify-deploy:
runs-on: ubuntu-latest
steps:
- name: Repository Checkout
uses: actions/checkout@v4
- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
cache-dependency-path: website/package-lock.json
- name: Install Netlify
run: |
cd website
npm install [email protected] -g
- name: Install Dependencies
run: |
cd website
yarn
- name: Build project
run: |
cd website
yarn build
- name: Deploy to Netlify
id: netlify_deploy
run: |
cd website/build
netlify deploy \
--cwd . \
--site ${{ secrets.NETLIFY_SITE_ID }} \
--auth ${{ secrets.NETLIFY_TOKEN_SECRET }} \
--prod
74 changes: 74 additions & 0 deletions .github/workflows/spec-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: Build & Deploy spec to Netlify

on:
pull_request:
branches:
- main
- test-docs-deploy # testing only, not allowed to run on OpenLineage/OpenLineage repo

jobs:
generate_spec:
if: |
(github.base.ref == 'test-docs-deploy' && github.repository != 'OpenLineage/OpenLineage' ) ||
(github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'main' && github.repository == 'OpenLineage/OpenLineage')
name: 'Commit Spec definition'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Check changes
id: check-changes
run: |
if git diff --name-only --exit-code HEAD^ HEAD -- 'spec/*.json' 'spec/OpenLineage.yml' >> /dev/null; then
echo "no changes in spec detected, skipping publishing spec"
exit 0
fi
exit -1
continue-on-error: true
- name: Check & Commit spec changes
if: steps.check-changes.outcome == 'success'
run: |
# Copy changed spec JSON files to target location
git diff --name-only HEAD^ HEAD -- 'spec/*.json' | while read LINE; do
# ignore registry files
if [[ $LINE =~ "registry.json" ]]; then
continue
fi
# extract target file name from $id field in spec files
URL=$(cat $LINE | jq -r '.["$id"]')
# extract target location in website repo
LOC="website/static/${URL#*//*/}"
LOC_DIR="${LOC%/*}"
# create dir if necessary, and copy files
echo "change detected in $LINE"
mkdir -p $LOC_DIR
cp $LINE $LOC
done
- name: Commit changes
if: steps.check-changes.outcome == 'success'
run: |
# verify if there are any changes
if [[ $(git status --porcelain | wc -l) -gt 0 ]]; then
git config user.name github-actions
git config user.email [email protected]
git fetch
git checkout main
git add website/static/spec/*
git commit -m "[generated] adding spec changes"
git push
else
echo "nothing to commit"
fi
# TODO: openapi build, question should be committed ?

netlify-deploy-changes:
uses: ./.github/workflows/netlify-deploy.yml
needs: generate_spec
secrets:
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
NETLIFY_TOKEN_SECRET: ${{ secrets.NETLIFY_TOKEN_SECRET }}
46 changes: 0 additions & 46 deletions client/java/release-javadoc.sh

This file was deleted.

2 changes: 1 addition & 1 deletion spec/OpenLineage.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://openlineage.io/spec/2-0-2/OpenLineage.json",
"$id": "https://openlineage.io/spec/2-0-/OpenLineage.json",
"$defs": {
"BaseEvent": {
"type": "object",
Expand Down
80 changes: 0 additions & 80 deletions spec/release.sh

This file was deleted.

0 comments on commit d9c47ce

Please sign in to comment.