|
5 | 5 | branches: |
6 | 6 | - "develop" |
7 | 7 | - "main" |
8 | | - tags: |
9 | | - - "v*" |
| 8 | + - "releases/**/*" |
10 | 9 | pull_request: |
11 | 10 | branches: |
12 | 11 | - "develop" |
@@ -60,19 +59,33 @@ jobs: |
60 | 59 |
|
61 | 60 | outputs: |
62 | 61 | continue: ${{ steps.check.outputs.continue }} |
| 62 | + type: ${{ steps.check.outputs.type }} |
| 63 | + version: ${{ steps.check.outputs.version }} |
63 | 64 |
|
64 | 65 | steps: |
65 | 66 | - id: check |
66 | 67 | name: Check Context |
67 | 68 | run: | |
68 | 69 | if [[ "${{ github.repository }}" == "torrust/torrust-tracker" ]]; then |
69 | 70 | if [[ "${{ github.event_name }}" == "push" ]]; then |
70 | | - if [[ "${{ github.ref }}" == "refs/heads/main" || |
71 | | - "${{ github.ref }}" == "refs/heads/develop" || |
72 | | - "${{ github.ref }}" =~ ^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ ]]; then |
| 71 | + if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then |
| 72 | +
|
| 73 | + echo "type=development" >> $GITHUB_OUTPUT |
| 74 | + echo "continue=true" >> $GITHUB_OUTPUT |
| 75 | +
|
| 76 | + fi |
| 77 | + if [[ "${{ github.ref }}" == "refs/heads/develop" ]]; then |
| 78 | +
|
| 79 | + echo "type=development" >> $GITHUB_OUTPUT |
| 80 | + echo "continue=true" >> $GITHUB_OUTPUT |
| 81 | +
|
| 82 | + if [[ "${{ github.ref }}" =~ ^(refs\/heads\/releases\/)(v)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ ]]; then |
| 83 | +
|
| 84 | + version=$(echo "${{ github.ref }}" | sed -n -E 's/^(refs\/heads\/releases\/)//p') |
| 85 | + echo "version=$version" >> $GITHUB_OUTPUT |
| 86 | + echo "type=release" >> $GITHUB_OUTPUT |
| 87 | + echo "continue=true" >> $GITHUB_OUTPUT |
73 | 88 |
|
74 | | - echo "Context is torrust/torrust-tracker, and push is: main, develop, docker, or a tag with a semantic version" |
75 | | - echo "continue=true" >> $GITHUB_OUTPUT |
76 | 89 | fi |
77 | 90 | fi |
78 | 91 | fi |
@@ -103,17 +116,28 @@ jobs: |
103 | 116 | runs-on: ubuntu-latest |
104 | 117 |
|
105 | 118 | steps: |
106 | | - - id: meta |
107 | | - name: Docker meta |
| 119 | + - id: meta_development |
| 120 | + if: needs.secrets.check.type == 'development' |
| 121 | + name: Docker Meta (development) |
108 | 122 | uses: docker/metadata-action@v4 |
109 | 123 | with: |
110 | 124 | images: | |
111 | 125 | "${{ secrets.DOCKER_HUB_USERNAME }}/${{secrets.DOCKER_HUB_REPOSITORY_NAME }}" |
112 | 126 | tags: | |
113 | 127 | type=ref,event=branch |
114 | | - type=ref,event=pr |
115 | | - type=semver,pattern={{version}} |
116 | | - type=semver,pattern={{major}}.{{minor}} |
| 128 | +
|
| 129 | + - id: meta_release |
| 130 | + if: needs.secrets.check.type == 'release' |
| 131 | + name: Docker Meta (release) |
| 132 | + uses: docker/metadata-action@v4 |
| 133 | + with: |
| 134 | + images: | |
| 135 | + "${{ secrets.DOCKER_HUB_USERNAME }}/${{secrets.DOCKER_HUB_REPOSITORY_NAME }}" |
| 136 | + tags: | |
| 137 | + type=semver,value=${{ needs.secrets.check.version }},pattern={{raw}} |
| 138 | + type=semver,value=${{ needs.secrets.check.version }},pattern={{version}} |
| 139 | + type=semver,value=${{ needs.secrets.check.version }},pattern=v{{major}} |
| 140 | + type=semver,value=${{ needs.secrets.check.version }},pattern={{major}}.{{minor}} |
117 | 141 |
|
118 | 142 | - id: login |
119 | 143 | name: Login to Docker Hub |
|
0 commit comments