Merge pull request #10 from creyD/dev #78
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Lint, Test, Tag & Publish | |
on: | |
push: | |
branches: | |
- master | |
- dev | |
paths-ignore: | |
- "**/.gitignore" | |
- "**/.vscode/**" | |
- "**/README.md" | |
- "**/CHANGELOG.md" | |
pull_request: | |
branches: | |
- dev | |
workflow_dispatch: | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
if: github.ref_name != 'master' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: psf/black@stable | |
with: | |
options: "-l 100 --exclude '/.venv/|/__init__.py'" | |
- uses: creyD/autoflake_action@master | |
with: | |
no_commit: True | |
options: --in-place --remove-all-unused-imports -r --exclude **/__init__.py,**/db/models.py, | |
- uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: Adjusted files for isort & autopep | |
test: | |
runs-on: ubuntu-latest | |
needs: lint | |
if: github.ref_name != 'master' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- run: python -m pip install --upgrade pip | |
- run: python -m pip install -r requirements.txt | |
- run: python test.py | |
tag_and_publish: | |
runs-on: ubuntu-latest | |
if: github.ref == 'master' || github.ref == 'dev' | |
needs: test | |
permissions: | |
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
contents: write # for the tags | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-tags: true | |
ref: ${{ github.ref }} | |
fetch-depth: 0 | |
- name: setup git | |
run: | | |
git config --local user.email "15138480+creyD@users.noreply.github.com" | |
git config --local user.name "creyD" | |
- name: set version format | |
id: version_format | |
run: | | |
if [[ ${{ github.ref }} == 'master' ]]; then | |
echo "version_format=\${major}.\${minor}.\${patch}" >> $GITHUB_OUTPUT | |
else | |
echo "version_format=\${major}.\${minor}.\${patch}rc\${increment}" >> $GITHUB_OUTPUT | |
fi | |
- name: Git Version | |
uses: PaulHatch/semantic-version@v5.4.0 | |
id: git_version | |
with: | |
tag_prefix: "" | |
major_pattern: "breaking:" | |
minor_pattern: "feat:" | |
enable_prerelease_mode: false | |
version_format: ${{ steps.version_format.outputs.version_format }} | |
- name: Create & Push Tag | |
run: | | |
git tag ${{ steps.git_version.outputs.version }} | |
git push origin ${{ steps.git_version.outputs.version }} | |
- name: Sync tag to dev branch | |
if: github.ref == 'master' | |
run: | | |
git fetch origin dev | |
git checkout dev | |
git merge --no-ff ${{ steps.git_version.outputs.version }} | |
git push origin dev | |
git checkout master | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.build.txt | |
python setup.py sdist bdist_wheel | |
- name: Build and publish | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} |