|
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