Skip to content

Commit

Permalink
dev(narugo): init commit
Browse files Browse the repository at this point in the history
  • Loading branch information
narugo1992 committed Dec 26, 2024
1 parent fb3d420 commit 205fc39
Show file tree
Hide file tree
Showing 53 changed files with 2,902 additions and 1 deletion.
50 changes: 50 additions & 0 deletions .github/workflows/badge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Badge Creation

on:
push:
branches: [ main, 'badge/*', 'doc/*' ]

jobs:
update-badges:
name: Update Badges
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ 3.8 ]
steps:
- name: Checkout code
uses: actions/[email protected]
with:
fetch-depth: 20
submodules: 'recursive'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Download cloc
run: |
sudo apt-get update -y
sudo apt-get install -y cloc
- name: Get the Numbers
run: |
cloc .
echo "CODE_LINES=$(./cloc.sh --loc)" >> $GITHUB_ENV
echo "COMMENT_LINES=$(./cloc.sh --percentage)%" >> $GITHUB_ENV
- name: Create Lines-of-Code-Badge
uses: schneegans/[email protected]
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: ${{ secrets.BADGE_GIST_ID }}
filename: loc.json
label: Lines of Code
message: ${{ env.CODE_LINES }}
color: lightgrey
- name: Create Comments-Badge
uses: schneegans/[email protected]
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: ${{ secrets.BADGE_GIST_ID }}
filename: comments.json
label: Comments
message: ${{ env.COMMENT_LINES }}
color: green
131 changes: 131 additions & 0 deletions .github/workflows/doc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# This workflow will check flake style
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Docs Deploy

on:
push:
# branches: [ main, 'doc/*', 'dev/*' ]
release:
types: [ published ]

jobs:
contents:
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
strategy:
matrix:
python-version: [ 3.8 ]

services:
plantuml:
image: plantuml/plantuml-server:jetty-v1.2023.6
ports:
- 18080:8080

steps:
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
with:
swap-size-gb: 8
- name: Checkout code
uses: actions/[email protected]
with:
fetch-depth: 20
submodules: 'recursive'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
if: ${{ github.event_name == 'push' }}
run: |
sudo apt-get update -y
sudo apt-get install -y make wget curl cloc graphviz pandoc
dot -V
python -m pip install -r requirements.txt
python -m pip install -r requirements-doc.txt
- name: Generate the contents
if: ${{ github.event_name == 'push' }}
env:
ENV_PROD: 'true'
PLANTUML_HOST: http://localhost:18080
run: |
plantumlcli -c
make docs
- name: Change Commit
if: ${{ github.event_name == 'push' }}
id: commit
run: |
git config user.name 'narugo1992'
git config user.email '[email protected]'
git add -A
git diff-index --quiet HEAD || git commit -a -m "dev(narugo): auto sync $(date -R)"
- name: Push changes
uses: ad-m/github-push-action@master
if: ${{ github.event_name == 'push' }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}

doc:
runs-on: ubuntu-latest
needs:
- contents
if: "!contains(github.event.head_commit.message, 'ci skip')"
strategy:
matrix:
python-version: [ 3.8 ]

services:
plantuml:
image: plantuml/plantuml-server:jetty-v1.2023.6
ports:
- 18080:8080

steps:
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
with:
swap-size-gb: 8
- name: Checkout code
uses: actions/[email protected]
with:
fetch-depth: 20
submodules: 'recursive'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
sudo apt-get update -y
sudo apt-get install -y make wget curl cloc graphviz pandoc
dot -V
python -m pip install -r requirements.txt
python -m pip install -r requirements-doc.txt
- name: Sync from ref
if: ${{ github.event_name == 'push' }}
run: |
git pull
- name: Generate
env:
ENV_PROD: 'true'
PLANTUML_HOST: http://localhost:18080
run: |
git fetch --all --tags
git branch -av
git remote -v
git tag
plantumlcli -c
make pdocs
mv ./docs/build/html ./public
- name: Deploy to Github Page
uses: JamesIves/[email protected]
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_CONFIG_NAME: narugo1992
GIT_CONFIG_EMAIL: [email protected]
BRANCH: gh-pages # The branch the action should deploy to.
FOLDER: public # The folder the action should deploy.
CLEAN: true # Automatically remove deleted files from the deploy branch
50 changes: 50 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Package Release

on:
release:
types: [ published ]

jobs:
release:
name: Publish to official pypi
runs-on: ${{ matrix.os }}
if: ${{ github.repository == 'deepghs/videoutils' }}
strategy:
matrix:
os:
- 'ubuntu-latest'
python-version:
- '3.8'

steps:
- name: Checkout code
uses: actions/[email protected]
with:
fetch-depth: 20
submodules: 'recursive'
- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Set up python dependences
run: |
pip install --upgrade pip
pip install --upgrade flake8 setuptools wheel twine
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f requirements-test.txt ]; then pip install -r requirements-test.txt; fi
pip install --upgrade build
- name: Build packages
run: |
python -m build --sdist --wheel --outdir dist/
- name: Publish distribution 📦 to real PyPI
uses: pypa/[email protected]
with:
password: ${{ secrets.PYPI_PASSWORD }}
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/*
tag: ${{ github.ref }}
overwrite: true
file_glob: true
44 changes: 44 additions & 0 deletions .github/workflows/release_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Release Test

on:
push:
workflow_dispatch:

jobs:
source_release:
name: Try package the source
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- 'ubuntu-20.04'
python-version:
- '3.8'

steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 20
- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Set up python dependences
run: |
pip install --upgrade pip
pip install --upgrade flake8 setuptools wheel twine
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f requirements-build.txt ]; then pip install -r requirements-build.txt; fi
if [ -f requirements-test.txt ]; then pip install -r requirements-test.txt; fi
pip install --upgrade build
- name: Build packages
run: |
make package
ls -al dist
- name: Upload packed files to artifacts
uses: actions/upload-artifact@v3
with:
name: build-artifacts-source-pack
path: ./dist/*
114 changes: 114 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
#file: noinspection YAMLSchemaValidation
name: Code Test

on:
- push

jobs:
unittest:
name: Code test
runs-on: ${{ matrix.os }}
if: ${{ !contains(github.event.head_commit.message, 'ci skip') && !contains(github.event.head_commit.message, 'test skip') }}
strategy:
fail-fast: false
matrix:
os:
- 'ubuntu-latest'
- 'windows-latest'
- 'macos-latest'
python-version:
- '3.8'
- '3.9'
- '3.10'
- '3.11'
- '3.12'

steps:
- name: Get system version for Linux
if: ${{ contains(matrix.os, 'ubuntu') }}
shell: bash
run: |
echo "OS_NAME=Linux" >> $GITHUB_ENV
echo "IS_WIN=" >> $GITHUB_ENV
echo "IS_MAC=" >> $GITHUB_ENV
- name: Get system version for Windows
if: ${{ contains(matrix.os, 'windows') }}
shell: bash
run: |
echo "OS_NAME=Windows" >> $GITHUB_ENV
echo "IS_WIN=1" >> $GITHUB_ENV
echo "IS_MAC=" >> $GITHUB_ENV
- name: Get system version for MacOS
if: ${{ contains(matrix.os, 'macos') }}
shell: bash
run: |
echo "OS_NAME=MacOS" >> $GITHUB_ENV
echo "IS_WIN=" >> $GITHUB_ENV
echo "IS_MAC=1" >> $GITHUB_ENV
- name: Set environment for Cpython
if: ${{ !contains(matrix.python-version, 'pypy') }}
shell: bash
run: |
echo "IS_PYPY=" >> $GITHUB_ENV
- name: Set environment for PyPy
if: ${{ contains(matrix.python-version, 'pypy') }}
shell: bash
run: |
echo "IS_PYPY=1" >> $GITHUB_ENV
- name: Checkout code
uses: actions/[email protected]
with:
fetch-depth: 20
submodules: 'recursive'
- name: Set up system dependences on Linux
if: ${{ env.OS_NAME == 'Linux' }}
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y tree cloc wget curl make zip
sudo apt-get install -y git-lfs
- name: Set up system dependences on Windows
if: ${{ env.OS_NAME == 'Windows' }}
shell: bash
run: |
choco install tree cloc wget curl make zip
- name: Set up system dependences on MacOS
if: ${{ env.OS_NAME == 'MacOS' }}
run: |
brew install tree cloc wget curl make zip
- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
shell: bash
run: |
python -m pip install --upgrade pip
pip install --upgrade flake8 setuptools wheel twine
pip install -r requirements.txt
pip install -r requirements-model.txt
pip install -r requirements-test.txt
- name: Test the basic environment
shell: bash
run: |
python -V
pip --version
pip list
tree .
cloc videoutils
cloc test
- name: Run unittest
env:
CI: 'true'
REMOTE_PIXIV_SESSION_INDEX_URL: ${{ secrets.REMOTE_PIXIV_SESSION_INDEX_URL }}
shell: bash
run: |
make unittest IS_WIN=${{ env.IS_WIN }} IS_MAC=${{ env.IS_MAC }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
Loading

0 comments on commit 205fc39

Please sign in to comment.