@@ -2,55 +2,69 @@ name: Release
2
2
3
3
on :
4
4
push :
5
+ branches :
6
+ - main
5
7
tags :
6
- - v[0-9]+.[0-9]+.[0-9]+
8
+ - v*
7
9
8
10
jobs :
9
- pypi :
11
+ version :
12
+ runs-on : ubuntu-latest
13
+ outputs :
14
+ version : ${{ steps.version.outputs.version }}
15
+ steps :
16
+ - uses : actions/checkout@v4
17
+ - name : Get version
18
+ id : version
19
+ run : |
20
+ LATEST_TAG=v$(git describe --tags --abbrev=0 || echo "0.0.0")
21
+ GIT_DESCRIBE=$(git describe --always --tags --long)
22
+ # Check if the current commit is exactly on a tag
23
+ if [[ "$GIT_DESCRIBE" == "$LATEST_TAG" ]]; then
24
+ echo "version=${LATEST_TAG}" >> $GITHUB_OUTPUT
25
+ else
26
+ echo "version=${LATEST_TAG}.dev-${GIT_DESCRIBE#$LATEST_TAG-}" >> $GITHUB_OUTPUT
27
+ fi
28
+
29
+ pypi :
10
30
runs-on : ubuntu-latest
11
31
container : python:3.12
32
+ needs : version
12
33
steps :
13
- - uses : actions/checkout@v4
14
- - name : Install package tools
15
- run : pip install twine setuptools wheel
16
- - run : python setup.py sdist bdist_wheel
17
- - uses : actions/upload-artifact@v4
18
- with :
19
- name : dist
20
- path : dist
21
- - run : twine upload dist/*
22
- env :
23
- TWINE_USERNAME : ${{secrets.PYPI_USERNAME}}
24
- TWINE_PASSWORD : ${{secrets.PYPI_PASSWORD}}
34
+ - uses : actions/checkout@v4
35
+ - name : Install package tools
36
+ run : pip install twine setuptools wheel
37
+ - name : Build package
38
+ run : python setup.py sdist bdist_wheel
39
+ - name : Upload to PyPI
40
+ run : twine upload dist/*
41
+ env :
42
+ TWINE_USERNAME : ${{ secrets.PYPI_USERNAME }}
43
+ TWINE_PASSWORD : ${{ secrets.PYPI_PASSWORD }}
25
44
26
45
docker :
27
46
runs-on : ubuntu-latest
47
+ needs : version
28
48
steps :
29
- -
30
- name : Checkout
49
+ - name : Checkout
31
50
uses : actions/checkout@v4
32
- -
33
- name : Docker meta
51
+ - name : Docker meta
34
52
id : meta
35
53
uses : docker/metadata-action@v5
36
54
with :
37
55
images : |
38
56
rwnxt/pynonymizer
39
57
tags : |
40
- type=semver,pattern={{version}}
41
- type=semver,pattern={{major}}.{{minor}}
42
- -
43
- name : Login to DockerHub
44
- if : github.event_name != 'pull_request'
58
+ type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/v') }}
59
+ type=raw,value=${{ needs.version.outputs.version }},enable=${{ github.event_name == 'push' }}
60
+ - name : Login to DockerHub
45
61
uses : docker/login-action@v3
46
62
with :
47
63
username : ${{ secrets.DOCKERHUB_USERNAME }}
48
64
password : ${{ secrets.DOCKERHUB_TOKEN }}
49
- -
50
- name : Build and push
65
+ - name : Build and push
51
66
uses : docker/build-push-action@v5
52
67
with :
53
68
context : .
54
- push : ${{ github.event_name != 'pull_request' }}
55
69
tags : ${{ steps.meta.outputs.tags }}
56
- labels : ${{ steps.meta.outputs.labels }}
70
+ labels : ${{ steps.meta.outputs.labels }}
0 commit comments