Skip to content

Commit

Permalink
dev(narugo): add entry system and github workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
narugo1992 committed Sep 4, 2024
1 parent 96914fe commit 8305f76
Show file tree
Hide file tree
Showing 13 changed files with 937 additions and 5 deletions.
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
74 changes: 74 additions & 0 deletions .github/workflows/doc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# 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:
doc:
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
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
python -m pip install -r requirements-transfer.txt
python -m pip install -r requirements-7z.txt
python -m pip install -r requirements-rar.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
184 changes: 184 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
name: Package Release

on:
release:
types: [ published ]

jobs:
release:
name: Publish to official pypi
runs-on: ${{ matrix.os }}
if: ${{ github.repository == 'deepghs/netdriveurls' }}
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

release_cli:
name: CLI Build And Release
runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, 'ci skip')"
strategy:
fail-fast: false
matrix:
os:
- 'ubuntu-20.04'
- 'windows-2019'
- 'macos-12'
python-version:
- '3.8.0'

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 dependencies 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
- name: Set up system dependencies on Windows
if: ${{ env.OS_NAME == 'Windows' }}
shell: bash
run: |
choco install tree cloc wget curl make zip
- name: Set up system dependencies 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 -r requirements.txt
pip install -r requirements-build.txt
pip install -r requirements-transfer.txt
pip install -r requirements-7z.txt
pip install -r requirements-rar.txt
- name: Test the basic environment
shell: bash
run: |
python -V
pip --version
pip list
tree .
- name: Get package version
shell: bash
run: |
python -c 'from netdriveurls.config.meta import __VERSION__;print(__VERSION__)'
echo "PACKAGE_VERSION=$(python -c 'from netdriveurls.config.meta import __VERSION__;print(__VERSION__)')" >> $GITHUB_ENV
echo "GIT_COMMIT_ID=$(echo ${GITHUB_SHA} | cut -c1-7)" >> $GITHUB_ENV
echo "PYTHON_VERSION=$(python -V | xargs -n 1 | tail -1)" >> $GITHUB_ENV
echo "CPU_ARCH=$(uname -m)" >> $GITHUB_ENV
- name: Get CLI name
shell: bash
run: |
echo "ZIP_NAME=netdriveurls-v${{ env.PACKAGE_VERSION }}-${{ env.OS_NAME }}-${{ env.CPU_ARCH }}-${{ env.GIT_COMMIT_ID }}-standalone" >> $GITHUB_ENV
echo "CLI_NAME=netdriveurls-v${{ env.PACKAGE_VERSION }}-${{ env.OS_NAME }}-${{ env.CPU_ARCH }}" >> $GITHUB_ENV
- name: Build standalone cli on Linux and MacOS
if: ${{ env.OS_NAME != 'Windows' }}
shell: bash
run: |
make build
mkdir -p dist/${{ env.CLI_NAME }}
cp dist/netdriveurls dist/${{ env.CLI_NAME }}/netdriveurls
cd dist
zip -r ${{ env.ZIP_NAME }}.zip ${{ env.CLI_NAME }}
cd ..
ls -al dist
dist/netdriveurls -v
dist/netdriveurls -h
- name: Build standalone CLI on Windows
if: ${{ env.OS_NAME == 'Windows' }}
shell: bash
run: |
make build
mkdir -p dist/${{ env.CLI_NAME }}
cp dist/netdriveurls.exe dist/${{ env.CLI_NAME }}/netdriveurls.exe
cd dist
zip -r ${{ env.ZIP_NAME }}.zip ${{ env.CLI_NAME }}
cd ..
ls -al dist
dist/netdriveurls -v
dist/netdriveurls -h
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/${{ env.ZIP_NAME }}.zip
asset_name: ${{ env.ZIP_NAME }}.zip
tag: ${{ github.ref }}
overwrite: true
Loading

0 comments on commit 8305f76

Please sign in to comment.