Migrate to python (#265)

* Add initial python migration

* Add pylint

* Add pre-commit

* Add Dockerfile

* Add expression matching

* Use shelve to store previous matches

* Add notifications

* Calculate post age

* Update README.md
This commit is contained in:
Dave Gallant
2023-02-20 23:23:29 -05:00
committed by GitHub
parent 4dbb9f97e8
commit 9ba64a3de5
33 changed files with 1938 additions and 2121 deletions

View File

@@ -1,7 +1,6 @@
version: 2
updates:
- package-ecosystem: cargo
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: weekly

10
.github/workflows/black.yml vendored Normal file
View File

@@ -0,0 +1,10 @@
name: Black
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: psf/black@stable

View File

@@ -1,71 +0,0 @@
# Based on https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md
on: [pull_request]
name: ci
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Run cargo check
uses: actions-rs/cargo@v1
with:
command: check
test:
name: Test Suite
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Run cargo test
uses: actions-rs/cargo@v1
with:
command: test
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt, clippy
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Run cargo clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings

23
.github/workflows/pre-commit.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: pre-commit
on:
pull_request:
push:
branches: [main]
env:
PYTHON_VERSION: "3.11"
jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
pip install poetry==1.3.2
poetry install
- uses: pre-commit/action@v3.0.0

View File

@@ -1,5 +1,8 @@
name: Publish Container
on: [push]
on:
push:
branches:
- main
jobs:
push_to_registry:
@@ -15,7 +18,7 @@ jobs:
VERSION=${GITHUB_REF##*/}
if [[ $GITHUB_REF == refs/heads/main ]]; then
VERSION=latest
VERSION=1
fi
if [[ $GITHUB_REF == refs/tags/* ]]; then
@@ -25,7 +28,7 @@ jobs:
TAGS="${IMAGE_NAME}:${VERSION}"
if [[ $VERSION =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
TAGS="$TAGS,${IMAGE_NAME}:latest"
TAGS="$TAGS,${IMAGE_NAME}:1"
fi
echo ::set-output name=tags::${TAGS}
@@ -47,4 +50,3 @@ jobs:
file: ./Dockerfile
push: true
tags: ${{ steps.prep.outputs.tags }}

22
.github/workflows/pylint.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: Pylint
on: [push, pull_request]
env:
PYTHON_VERSION: "3.11"
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
pip install poetry==1.3.2
poetry install
- name: Lint
run: poetry run pylint ./rfd_notify

View File

@@ -1,42 +0,0 @@
name: Publish
on:
push:
tags:
- '*'
jobs:
publish:
name: Publish for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
artifact_name: rfd-notify
asset_name: rfd-notify-linux-amd64
- os: windows-latest
artifact_name: rfd-notify.exe
asset_name: rfd-notify-windows-amd64
- os: macos-latest
artifact_name: rfd-notify
asset_name: rfd-notify-macos-amd64
steps:
- uses: hecrj/setup-rust-action@v1
with:
rust-version: stable
- uses: actions/checkout@v3
- name: Build
run: cargo build --release --locked
- name: Upload binaries to release
uses: svenstaro/upload-release-action@2.4.1
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: target/release/${{ matrix.artifact_name }}
asset_name: ${{ matrix.asset_name }}
tag: ${{ github.ref }}