Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added new Workflows #109

Merged
merged 10 commits into from
Aug 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/auto-label.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
labelsSynonyms: {
bug: ['error', 'need fix', 'not working', 'failure', 'crash', 'problem', 'issue', 'defect', 'glitch', 'fault', 'anomaly'],
enhancement: ['upgrade', 'update', 'improve', 'feature request', 'new feature', 'enhance', 'extension', 'add-on', 'improvement'],
"help wanted": ['help', 'how can i', 'assistance needed', 'support needed', 'question', 'guidance', 'aid', 'need assistance', 'advice', 'instruction'],
documentation: ['docs', 'Readme', 'documentation', 'guide', 'manual', 'instructions', 'how-to', 'reference', 'tutorial', 'specification'],
docker: ['compose', 'Dockerfile', 'container', 'docker-compose', 'image', 'docker setup', 'kubernetes', 'docker swarm', 'containerization'],
performance: ['slow', 'lag', 'performance', 'speed', 'optimization', 'tuning', 'efficiency', 'latency', 'improve performance', 'boost', 'performance issue'],
security: ['vulnerability', 'exploit', 'attack', 'breach', 'security', 'protection', 'patch', 'secure', 'threat', 'risk', 'malware'],
ui: ['user interface', 'ui', 'ux', 'design', 'layout', 'front-end', 'visual', 'interface', 'experience', 'aesthetic', 'theme', 'style'],
test: ['test', 'testing', 'unit test', 'integration test', 'e2e test', 'automated test', 'test case', 'test suite', 'qa', 'quality assurance'],
compatibility: ['compatible', 'incompatible', 'version', 'compatibility', 'interop', 'support', 'versioning', 'cross-platform', 'integration', 'compatibility issue']
},
labelsNotAllowed: [
'duplicate',
'good first issue',
'invalid'
],
//defaultLabels: ['triage'],
ignoreComments: true
}
62 changes: 62 additions & 0 deletions .github/auto_label_pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# .github/labeler.yml

# Label for documentation changes
documentation:
- changed-files:
- any-glob-to-any-file:
- 'docs/**'
- 'README.md'
- 'CHANGELOG.md'
- 'CONTRIBUTING.md'
- 'Makefile'
- 'Pictures'


# Label for Docker changes
docker:
- changed-files:
- any-glob-to-any-file:
- '*docker*'
- 'Docker*'

# Label for release-related changes
release:
- changed-files:
- any-glob-to-any-file:
- 'scraibe/**'
- 'pyproject.toml'
- 'LICENCE'

tests:
- changed-files:
- any-glob-to-any-file:
- 'test/**'

workflows:
- changed-files:
- any-glob-to-any-file:
- '.github/workflows/*'
- '.github/*'

github:
- changed-files:
- any-glob-to-any-file:
- '.gitignore'

dependencies:
- changed-files:
- any-glob-to-any-file:
- 'requirements.txt'
- 'environment.yml'
- 'pyproject.toml'
- head-branch: ['^dependencies', 'dependencies', '^dependency', 'dependency']

feature:
- head-branch: ['^feature', 'feature']

patch:
- head-branch: ['^patch', 'patch', '^bug', 'bug']

ignore-pr-title-for-release:
- head-branch: ['develop']
- base-branch: ['main']
47 changes: 47 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#Automatically generated release notes from GIthub used by softprops/action-gh-release@v2 in .github/workflows/release.yaml

changelog:
exclude:
labels:
- ignore-for-release
- ignore-pr-title-for-release
- workflows
- github
- documentation
authors:
- octocat
- github-actions[bot]

categories:
- title: New Features 🎉
labels:
- enhancement
- feature
- Semver-Minor

- title: Bug Fixes 🐛
labels:
- bug
- fix
- patch

- title: Dependency Updates 📦
labels:
- dependency
- dependencies
- dependency-update

- title: Breaking Changes 🛠
labels:
- breaking-change
- Semver-Major

- title: Container and Compose Updates 🐳
labels:
- docker
- compose
- docker-compose

- title: Other Changes 🔧
labels:
- "*"
18 changes: 18 additions & 0 deletions .github/workflows/auto-label-issue.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Labeling new issue
on:
issues:
types: ['opened', 'reopened']

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
sparse-checkout: |
.github/auto-label.json5
sparse-checkout-cone-mode: false
- uses: Renato66/auto-label@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
configuration-file: .github/auto-label.json5
22 changes: 22 additions & 0 deletions .github/workflows/autolabel-pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Auto Label PRs

on:
pull_request:
types: [opened, synchronize, reopened, edited]

jobs:
label:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
outputs:
all-labels: ${{ steps.label-the-PR.outputs.all-labels }}
steps:
- name: Apply Labels
id: label-the-PR
uses: actions/labeler@v5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
configuration-path: .github/auto_label_pr.yml
sync-labels: true
29 changes: 0 additions & 29 deletions .github/workflows/manuel_publish.yml

This file was deleted.

47 changes: 34 additions & 13 deletions .github/workflows/pypi.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,35 @@
name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI

on:
pull_request:
types: [closed]
pull_request_target:
branches:
- develop
- main
types:
- closed
push:
tags:
- 'v*.*.*'

workflow_dispatch:
inputs:
job:
description: "Select job to run"
required: true
type: choice
options:
- Build-and-publish-to-Test-PyPI
- test-install
- publish-to-pypi
test:
description: "Run tests"
default: true
type: boolean
publish_to_pypi:
description: "Publish to PyPI"
default: false
type: boolean

jobs:
Build-and-publish-to-Test-PyPI:
if: |
(github.event_name == 'workflow_dispatch' &&
github.event.inputs.test == 'true') ||
(github.event_name == 'pull_request_target' &&
github.event.pull_request.merged &&
contains(github.event.pull_request.labels.*.name, 'release')) ||
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -32,7 +43,7 @@ jobs:
repository_name: "scraibe"
repository_url: "https://test.pypi.org/legacy/"

test-install:
Test-PyPi-install:
name: Test Installation from TestPyPI
needs: Build-and-publish-to-Test-PyPI
runs-on: ubuntu-latest
Expand All @@ -54,8 +65,18 @@ jobs:

publish-to-pypi:
name: Publish to PyPI
needs: test-install
needs: Test-PyPi-install
runs-on: ubuntu-latest
if: |
always() &&
(( needs.Build-and-publish-to-Test-PyPI.result != 'failure' &&
needs.Test-PyPi-install.result != 'failure' ) &&
((github.event_name == 'workflow_dispatch' &&
github.event.inputs.publish_to_pypi == 'true') ||
(github.event_name == 'pull_request_target' &&
github.event.pull_request.merged &&
contains(github.event.pull_request.labels.*.name, 'release')) ||
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))))
steps:
- name: Checkout Repository Tags
uses: actions/checkout@v4
Expand Down
72 changes: 72 additions & 0 deletions .github/workflows/release_on_tag.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: release

on:
push:
tags:
- 'v*.*.*'

jobs:
build-on-workflow:
runs-on: ubuntu-latest
if: |
github.event_name == 'workflow_run' &&
github.event.workflow_run.conclusion == 'success'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure all history is fetched
ref: main

- name: Get Latest Tag
id: get-latest-tag
if:
run: |
git fetch --tags
latest_tag=$(git describe --tags `git rev-list --tags --max-count=1`)
echo "latest_tag=$latest_tag" >> $GITHUB_OUTPUT

- name: Release from Workflow Run
if: |
github.event_name == 'workflow_run' &&
github.event.workflow_run.conclusion == 'success'
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
append_body: true
tag_name: ${{ steps.get-latest-tag.outputs.latest_tag }}

build-on-tag:
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure all history is fetched
ref: main
- name: Release from Tag Push
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
append_body: true

write_changelog:
runs-on: ubuntu-latest
needs: [build-on-workflow, build-on-tag]
if: |
always() &&
(needs.build-on-workflow.result == 'success' || needs.build-on-tag.result == 'success' )
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure all history is fetched
ref: main

- name: Write CHANGELOG.md
uses: rhysd/changelog-from-release/action@v3
with:
file: CHANGELOG.md
github_token: ${{ secrets.GITHUB_TOKEN }}
Loading
Loading