Skip to content

Commit

Permalink
Merge pull request #109 from JSchmie/workflow
Browse files Browse the repository at this point in the history
Added new Workflows
  • Loading branch information
JSchmie authored Aug 30, 2024
2 parents 6783352 + 9494e71 commit 4a091fb
Show file tree
Hide file tree
Showing 9 changed files with 276 additions and 153 deletions.
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

0 comments on commit 4a091fb

Please sign in to comment.