Skip to content

Commit

Permalink
Merge pull request #765 from slaclab/v4.11.7_candidate
Browse files Browse the repository at this point in the history
Limit size of running SystemLog variable
  • Loading branch information
slacrherbst authored Feb 24, 2021
2 parents 102403a + d97979e commit 26b6be8
Show file tree
Hide file tree
Showing 7 changed files with 386 additions and 273 deletions.
34 changes: 34 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[flake8]
exclude = __init__.py, rogue_plugin.py
#############################################################
# Note: Command to remove white space at the end of lines
# $ find . -type f -name "*.py" -print0 | xargs -0 sed -i 's/\s*$//g'
#############################################################
# E116 unexpected indentation (comment)
# E128 continuation line under-indented for visual indent
# E131 continuation line unaligned for hanging indent
# E201 whitespace after '('
# E202 whitespace before ')'
# E203 whitespace before ':'
# E211 whitespace before '('
# E221 multiple spaces before operator
# E222 multiple spaces after operator
# E225 missing whitespace around operator
# E226 missing whitespace around arithmetic operator
# E227 missing whitespace around bitwise or shift operator
# E228 missing whitespace around modulo operator
# E231 missing whitespace after ','
# E241 multiple spaces after ','
# E251 unexpected spaces around keyword / parameter equals
# E261 at least two spaces before inline comment
# E262 inline comment should start with '# '
# E265 block comment should start with '# '
# E266 too many leading '#' for block comment
# E272 multiple spaces before keyword
# E302 expected 2 blank lines, found 1
# E303 too many blank lines
# E305 expected 2 blank lines after class or function definition
# E306 expected 1 blank line before a nested definition, found 0
# E501 line too long
#############################################################
ignore = E116,E128,E131,E201,E202,E203,E211,E221,E222,E225,E226,E227,E228,E231,E241,E251,E261,E262,E265,E266,E272,E302,E303,E305,E306,E501
299 changes: 299 additions & 0 deletions .github/workflows/rogue_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,299 @@
# ----------------------------------------------------------------------------
# Title : ROGUE GitHub Actions Script
# ----------------------------------------------------------------------------
# This file is part of the rogue software package. It is subject to
# the license terms in the LICENSE.txt file found in the top-level directory
# of this distribution and at:
# https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.
# No part of the rogue software package, including this file, may be
# copied, modified, propagated, or distributed except according to the terms
# contained in the LICENSE.txt file.
# ----------------------------------------------------------------------------
# The following environment variables are required for this process:
# secrets.GH_TOKEN
# secrets.CONDA_UPLOAD_TOKEN_DEV
# secrets.CONDA_UPLOAD_TOKEN_TAG
# secrets.DOCKERHUB_TOKEN

name: Rogue Integration
on: [push]

jobs:
full_build_test:
name: Full Build Test
runs-on: ubuntu-latest
steps:

# This step checks out a copy of your repository.
- uses: actions/checkout@v2
with:
fetch-depth: 0

- uses: actions/setup-python@v2
with:
python-version: 3.8

- name: Setup Environment
run: |
EPICS_BASE=${HOME}/packages/epics/base-7.0.3
EPICS_PCAS_ROOT=${HOME}/packages/pcas/pcas-4.13.2
LD_LIBRARY_PATH=/usr/lib:${EPICS_BASE}/lib/linux-x86_64:${EPICS_PCAS_ROOT}/lib/linux-x86_64
echo "EPICS_BASE=$EPICS_BASE" >> $GITHUB_ENV
echo "EPICS_PCAS_ROOT=$EPICS_PCAS_ROOT" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $GITHUB_ENV
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install doxygen doxygen-doc libzmq3-dev libboost-all-dev
python -m pip install --upgrade pip
pip install setuptools
pip install -r pip_requirements.txt
pip install codecov coverage pytest-cov flake8
- name: Install EPICS Base
run: |
mkdir -p ${EPICS_BASE}
cd ${EPICS_BASE}
pwd
wget -O base-7.0.3.tar.gz https://github.com/epics-base/epics-base/archive/R7.0.3.tar.gz
tar xzf base-7.0.3.tar.gz --strip 1
make clean && make && make install
- name: Install EPICS PCAS
run: |
mkdir -p ${EPICS_PCAS_ROOT}
cd ${EPICS_PCAS_ROOT}
wget -O pcas-4.13.2.tar.gz https://github.com/epics-modules/pcas/archive/v4.13.2.tar.gz
tar xzf pcas-4.13.2.tar.gz --strip 1
echo "EPICS_BASE=$EPICS_BASE" >> configure/RELEASE.local
make clean && make && make install
# Rogue
- name: Build Rogue
run: |
python -c "import numpy; print(numpy.get_include())"
mkdir build; cd build
cmake .. -DROGUE_INSTALL=local
make -j4 install
# Run Tests
- name: Rogue Tests
run: |
source setup_rogue.sh
python -m pytest --cov
# Flake 8 check
- name: Flake8 Tests
run: |
source setup_rogue.sh
python -m compileall -f ./python/
#flake8 --count ./python/
# Code Coverage
- name: Code Coverage
run: |
source setup_rogue.sh
codecov
coverage report -m
# Generate Documentation
- name: Generate Documentation
if: github.ref == 'refs/heads/documentation'
run: |
source setup_rogue.sh
cd docs
make html
- name: Deploy Documentation
if: github.ref == 'refs/heads/documentation'
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GH_TOKEN }}
publish_dir: docs/build/html

small_build_test:
name: Small Build Test
runs-on: ubuntu-latest
steps:

# This step checks out a copy of your repository.
- uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install libzmq3-dev
# Rogue
- name: Build Rogue
run: |
mkdir build; cd build
cmake .. -DROGUE_INSTALL=local -DNO_PYTHON=1 -DSTATIC_LIB=1
make -j4 install
gen_release:
name: Generate Release
runs-on: ubuntu-latest
needs: [full_build_test, small_build_test]
if: startsWith(github.ref, 'refs/tags/')
steps:

- uses: actions/checkout@v2
with:
fetch-depth: 0

- uses: actions/setup-python@v2
with:
python-version: 3.8

- name: Get Image Information
id: get_image_info
run: |
echo ::set-output name=tag::`git describe --tags`
- name: Get Ruckus
run: |
git clone https://github.com/slaclab/ruckus.git
python -m pip install --upgrade pip
pip install -r ruckus/scripts/pip_requirements.txt
- name: Gen Release
env:
TRAVIS_REPO_SLUG: ${{ github.repository }}
TRAVIS_TAG: ${{ steps.get_image_info.outputs.tag }}
GH_REPO_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
python ruckus/scripts/releaseGen.py
conda_build:
name: Anaconda Build
needs: [full_build_test, small_build_test]
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/pre-release'
strategy:
matrix:
os:
- ubuntu-latest
- macos-10.15
runs-on: ${{ matrix.os }}
steps:

# This step checks out a copy of your repository.
- uses: actions/checkout@v2
with:
fetch-depth: 0

- uses: actions/setup-python@v2
with:
python-version: 3.8

- name: Setup anaconda
env:
OS_NAME: ${{ matrix.os }}
run: |
cd ${HOME}
if [ $OS_NAME == "macos-10.15" ]
then
wget -O miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
else
wget -O miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
fi
bash miniconda.sh -b -p ${HOME}/miniconda
export PATH="${HOME}/miniconda/bin:$PATH"
source ${HOME}/miniconda/etc/profile.d/conda.sh
conda config --set always_yes yes
conda install conda-build anaconda-client conda-verify
if [ $OS_NAME == "macos-10.15" ]
then
conda install libiconv libarchive -c conda-forge
fi
conda update -q conda conda-build
conda update --all
- name: Setup MacOS
if: matrix.os == 'macos-10.15'
run: |
cd ${HOME}
wget https://github.com/phracker/MacOSX-SDKs/releases/download/10.15/MacOSX10.15.sdk.tar.xz
tar xzf MacOSX10.15.sdk.tar.xz
sudo mkdir -p /opt/
sudo mv MacOSX10.15.sdk /opt/
CONDA_BUILD_SYSROOT=/opt/MacOSX10.15.sdk
CONDA_BUILD=1
echo "CONDA_BUILD_SYSROOT=$CONDA_BUILD_SYSROOT" >> $GITHUB_ENV
echo "CONDA_BUILD=$CONDA_BUILD" >> $GITHUB_ENV
- name: Get Image Information
id: get_image_info
env:
CONDA_UPLOAD_TOKEN_DEV: ${{ secrets.CONDA_UPLOAD_TOKEN_DEV }}
CONDA_UPLOAD_TOKEN_TAG: ${{ secrets.CONDA_UPLOAD_TOKEN_TAG }}
OS_NAME: ${{ matrix.os }}
run: |
if [ ${GITHUB_REF} == "refs/heads/pre-release" ]
then
echo ::set-output name=token::$CONDA_UPLOAD_TOKEN_DEV
else
echo ::set-output name=token::$CONDA_UPLOAD_TOKEN_TAG
fi
if [ ${OS_NAME} == "macos-10.15" ]
then
echo ::set-output name=os::osx-64
else
echo ::set-output name=os::linux-64
fi
- name: Build And Upload
run: |
export PATH="${HOME}/miniconda/bin:$PATH"
source ${HOME}/miniconda/etc/profile.d/conda.sh
conda build conda-recipe --debug --output-folder bld-dir -c tidair-packages -c conda-forge
anaconda -t ${{ steps.get_image_info.outputs.token }} upload --force bld-dir/${{ steps.get_image_info.outputs.os }}/*.tar.bz2
docker_build:
name: Docker Build
runs-on: ubuntu-latest
needs: [full_build_test, small_build_test]
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/pre-release'
steps:

# This step checks out a copy of your repository.
- uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Get Image Information
id: get_image_info
run: |
echo ::set-output name=tag::`git describe --tags`
echo ::set-output name=branch::`echo ${GITHUB_REF} | awk 'BEGIN { FS = "/" } ; { print $3 }'`
if [ ${GITHUB_REF} == "refs/heads/pre-release" ]
then
echo ::set-output name=name::"rogue-dev"
else
echo ::set-output name=name::"rogue"
fi
# Setup docker build environment
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

# Login to Dockerhub
- name: Login to Dockerhub
uses: docker/login-action@v1
with:
username: tidair
password: ${{ secrets.DOCKERHUB_TOKEN }}

# Build and push the docker image
- name: Build and push image to Dockerhub
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: true
tags: tidair/${{ steps.get_image_info.outputs.name }}:${{ steps.get_image_info.outputs.tag }}
build-args: branch=${{ steps.get_image_info.outputs.branch }}

Loading

0 comments on commit 26b6be8

Please sign in to comment.