Repository: jsocol/pystatsd (language: python)

Issue:
Automate releases



Discussion / hints:

Fix patch:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6d0da757..ea1e4fe8 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -16,19 +16,21 @@ jobs:
         python: ['3.7', '3.8', '3.9', '3.10', '3.11', 'pypy-3.9']
     runs-on: ${{ matrix.os }}
     steps:
-      - uses: actions/checkout@v3
-      - uses: actions/setup-python@v4
-        with:
-          python-version: ${{ matrix.python }}
-      - run: pip install --upgrade pip
-      - run: pip install tox
-      - run: tox -e py
+    - uses: actions/checkout@v3
+
+    - uses: ./.github/actions/test
+      with:
+        python-version: ${{ matrix.python }}
+
   lint:
     runs-on: [ubuntu-latest]
     steps:
-      - uses: actions/checkout@v3
-      - uses: actions/setup-python@v4
-        with:
-          python-version: '3.11'
-      - run: pip install flake8
-      - run: flake8 statsd
+    - uses: actions/checkout@v3
+
+    - uses: actions/setup-python@v4
+      with:
+        python-version: '3.11'
+
+    - run: pip install flake8
+
+    - run: flake8 statsd
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 00000000..ab82ace5
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,49 @@
+name: release
+
+on:
+  push:
+    tags:
+      - v*
+
+jobs:
+  test:
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: true
+      matrix:
+        python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
+
+    steps:
+    - uses: actions/checkout@v3
+
+    - uses: ./.github/actions/test
+      with:
+        python-version: ${{ matrix.python-version }}
+
+  release:
+    runs-on: ubuntu-latest
+    needs: [test]
+    steps:
+
+    - uses: actions/checkout@v3
+
+    - name: Set up Python
+      uses: actions/setup-python@v4
+      with:
+        python-version: 3.11
+
+    - name: install dependencies
+      run: |
+        python -m pip install --upgrade pip
+        pip install build twine
+
+    - name: build
+      run: ./run.sh build
+
+    - name: check
+      run: ./run.sh check
+
+    - name: release
+      uses: pypa/gh-action-pypi-publish@release/v1
+      with:
+        password: ${{ secrets.PYPI_DEPLOY_TOKEN }}


Test patch:
diff --git a/.github/actions/test/action.yml b/.github/actions/test/action.yml
new file mode 100644
index 00000000..790017ec
--- /dev/null
+++ b/.github/actions/test/action.yml
@@ -0,0 +1,23 @@
+name: test
+description: 'runs a test matrix'
+inputs:
+  python-version:
+    required: true
+
+runs:
+  using: "composite"
+  steps:
+  - uses: actions/checkout@v3
+
+  - uses: actions/setup-python@v4
+    with:
+      python-version: ${{ inputs.python-version }}
+
+  - run: pip install --upgrade pip
+    shell: sh
+
+  - run: pip install tox
+    shell: sh
+
+  - run: tox -e py
+    shell: sh