Skip to content

Commit

Permalink
Merge pull request #63 from almusil/fix_dist_doc
Browse files Browse the repository at this point in the history
ci: Fix automation for dist-docs
  • Loading branch information
putnopvut committed Feb 8, 2024
2 parents 2a9582c + 0121757 commit 5825c4c
Showing 1 changed file with 54 additions and 95 deletions.
149 changes: 54 additions & 95 deletions .github/workflows/dist-docs.yml
Original file line number Diff line number Diff line change
@@ -1,161 +1,120 @@
name: Rebuild src/static/support/dist-docs
name: Rebuild dist-docs

on:
workflow_dispatch:

jobs:
build-linux:
env:
dependencies: |
automake libtool gcc bc libjemalloc1 libjemalloc-dev \
libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev \
selinux-policy-dev \
ghostscript markdown
m32_dependecies: gcc-multilib
ASAN: ${{ matrix.asan }}
BRANCH: ${{ matrix.branch }}
CC: gcc
LIBS: ${{ matrix.libs }}
M32: ${{ matrix.m32 }}
OPTS: --disable-ssl
TESTSUITE: ${{ matrix.testsuite }}

name: linux ${{ join(matrix.*, ' ') }}
runs-on: ubuntu-18.04
container: fedora:latest
runs-on: ubuntu-22.04

strategy:
fail-fast: false
matrix:
include:
- branch: main
- branch: branch-22.03
- branch: branch-22.06
- branch: branch-22.09
- branch: branch-22.12
- branch: branch-23.03
- branch: branch-23.06
- branch: branch-23.09
- branch: branch-24.03

steps:
- name: install dependencies
run: dnf install -y dnf-plugins-core ghostscript git man

- name: checkout ovn-website
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
path: 'ovn-website'
ref: 'main'

- name: checkout OVN
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
repository: 'ovn-org/ovn'
path: 'ovn'
ref: ${{ matrix.branch }}
submodules: recursive

- name: update APT cache
run: sudo apt update
- name: install build dependencies
run: |
sed -e 's/@VERSION@/0.0.1/' rhel/ovn-fedora.spec.in \
> /tmp/ovn.spec
dnf builddep -y /tmp/ovn.spec
working-directory: ovn

- name: install required dependencies
run: sudo apt install -y ${{ env.dependencies }}
- name: configure OvS
run: ./boot.sh && ./configure
working-directory: ovn/ovs

- name: install libunbound libunwind
if: matrix.m32 == ''
run: sudo apt install -y libunbound-dev libunwind-dev
- name: make dist OvS
run: make -j4 dist
working-directory: ovn/ovs

- name: install 32-bit dependencies
if: matrix.m32 != ''
run: sudo apt install -y ${{ env.m32_dependecies }}
- name: configure OVN
run: ./boot.sh && ./configure
working-directory: ovn

- name: update PATH
run: |
echo "$HOME/bin" >> $GITHUB_PATH
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: make dist-docs OVN
run: make -j4 dist-docs
working-directory: ovn

- name: set up python
uses: actions/setup-python@v2
with:
python-version: '3.x'

- name: prepare ovn
run: |
pushd ./ovn
./.ci/linux-prepare.sh
popd
- name: build ovn
run: |
pushd ./ovn
./.ci/linux-build.sh
popd
- name: build ovn dist-docs
run: |
pushd ./ovn
make dist-docs
popd
- name: archive dist-docs
run: tar -czvf /tmp/dist-docs.tgz dist-docs
working-directory: ovn

- name: replace dist-docs content
if: ${{ success() }}
run: |
pushd ./ovn
tar -czvf /tmp/dist-docs.tgz dist-docs
popd
DOCS_DIR="dist-docs"
[ "${BRANCH}" == "main" ] || DOCS_DIR="${DOCS_DIR}-${BRANCH}"
pushd ./ovn-website
git config user.name github-actions
git config user.email [email protected]
export OVN_WEBSITE_BRANCH="dist-docs-${BRANCH}"
git checkout ${OVN_WEBSITE_BRANCH} || git checkout -b ${OVN_WEBSITE_BRANCH}
pushd ./src/static/support
rm -rf ./${DOCS_DIR}
mkdir -v ./${DOCS_DIR}
tar xzvf /tmp/dist-docs.tgz --strip-components=1 -C ./${DOCS_DIR}
git add ${DOCS_DIR}
popd
git commit -m "dist-docs: Update OVN $BRANCH manpages"
git push --force origin "${OVN_WEBSITE_BRANCH}"
popd
# Setting these variables for the pull request
echo "PULL_REQUEST_FROM_BRANCH=${OVN_WEBSITE_BRANCH}" >> $GITHUB_ENV
echo "PULL_REQUEST_TITLE=Pulling dist-docs from OVN ${BRANCH}" >> $GITHUB_ENV
[ "${{ matrix.branch }}" == "main" ] || DOCS_DIR="${DOCS_DIR}-${{ matrix.branch }}"
rm -rf ${DOCS_DIR}
mkdir -v ${DOCS_DIR}
tar xzvf /tmp/dist-docs.tgz --strip-components=1 -C ${DOCS_DIR}
working-directory: ovn-website/src/static/support

- name: pull-request for updated dist-docs
if: ${{ success() }}
id: pull_request
uses: vsoch/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PULL_REQUEST_BRANCH: "main"
BRANCH_PREFIX: "dist-docs-"
PULL_REQUEST_UPDATE: true
uses: peter-evans/create-pull-request@v6
with:
path: ovn-website
commit-message: |
dist-docs: Update OVN ${{ matrix.branch }} manpages
committer: github-actions <[email protected]>
author: github-actions <[email protected]>
branch: dist-docs-${{ matrix.branch }}
title: Pulling dist-docs from OVN ${{ matrix.branch }}
body: Automated changes to pull latest dist-docs from OVN ${{ matrix.branch }}

- name: pull-request info
if: ${{ success() }}
env:
pull_request_number_output: ${{ steps.pull_request.outputs.pull_request_number }}
pull_request_url_output: ${{ steps.pull_request.outputs.pull_request_url }}
run: |
echo "Pull request number: ${pull_request_number_output}"
echo "Pull request url: ${pull_request_url_output}"
echo "Pull request number: ${{ steps.pull_request.outputs.pull-request-number }}"
echo "Pull request url: ${{ steps.pull_request.outputs.pull-request-url }}"
- name: copy logs on failure
if: failure() || cancelled()
run: |
pushd ./ovn
# upload-artifact@v2 doesn't work well enough with wildcards.
# upload-artifact doesn't work well enough with wildcards.
# So, we're just archiving everything here to avoid any issues.
mkdir logs
cp config.log ./logs/
tar -czvf logs.tgz logs/
popd
working-directory: ovn

- name: upload logs on failure
if: failure() || cancelled()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: logs-linux-${{ join(matrix.*, '-') }}
path: ovn/logs.tgz

- name: upload dist-docs on failure
if: failure() || cancelled()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: dist-docs-${{ join(matrix.*, '-') }}
path: /tmp/dist-docs.tgz

0 comments on commit 5825c4c

Please sign in to comment.