1
- name : Publish
1
+ name : Release
2
2
3
3
on :
4
4
push :
5
- branches :
6
- - main
7
5
tags :
8
6
- " v20*"
9
7
8
+ permissions :
9
+ contents : write
10
+ packages : write
11
+
10
12
env :
11
13
IMAGE_NAME : asciinema-server
12
14
13
15
jobs :
14
16
publish :
15
17
runs-on : ubuntu-24.04
16
- permissions :
17
- packages : write
18
- contents : read
19
18
20
19
steps :
21
20
- uses : actions/checkout@v4
22
21
23
22
- name : Set up outputs
24
23
id : vars
25
24
run : |
25
+ VERSION=$(echo "${{ github.ref_name }}" | sed -e 's/^v//')
26
26
IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME
27
- # Change all uppercase to lowercase
28
27
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
29
- IMAGE_TAG="${{ github.ref_name }}"
30
- # Strip "v" prefix from tag name
31
- [[ "${{ github.ref_type }}" == "tag" ]] && IMAGE_TAG=$(echo $IMAGE_TAG | sed -e 's/^v//')
32
- # Use Docker `latest` tag convention
33
- [ "$IMAGE_TAG" == "main" ] && IMAGE_TAG=latest
34
- VERSION="${{ github.sha }}"
35
- [[ "${{ github.ref_type }}" == "tag" ]] && VERSION="${{ github.ref_name }}"
36
- [[ "${{ github.ref_type }}" == "branch" ]] && VERSION="${{ github.ref_name }}-${{ github.sha }}"
28
+ IMAGE_TAG=$VERSION
29
+ echo VERSION=$VERSION >> $GITHUB_OUTPUT
37
30
echo IMAGE_ID=$IMAGE_ID >> $GITHUB_OUTPUT
38
31
echo IMAGE_TAG=$IMAGE_TAG >> $GITHUB_OUTPUT
39
- echo VERSION=$VERSION >> $GITHUB_OUTPUT
32
+
33
+ - name : Create the release
34
+ env :
35
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
36
+ run : |
37
+ gh release create ${{ github.ref_name }} --draft --verify-tag --title ${{ steps.vars.outputs.VERSION }}
40
38
41
39
- name : Set up Docker Buildx
42
40
uses : docker/setup-buildx-action@v3
@@ -49,11 +47,11 @@ jobs:
49
47
password : ${{ secrets.GITHUB_TOKEN }}
50
48
51
49
- name : Build image
52
- uses : docker/build-push-action@v5
50
+ uses : docker/build-push-action@v6
53
51
with :
54
52
context : .
55
53
push : true
56
- tags : ${{ steps.vars.outputs.IMAGE_ID }}:${{ steps.vars.outputs.IMAGE_TAG }}
54
+ tags : ${{ steps.vars.outputs.IMAGE_ID }}:${{ steps.vars.outputs.IMAGE_TAG }},${{ steps.vars.outputs.IMAGE_ID }}:latest
57
55
labels : runnumber=${{ github.run_id }}
58
56
cache-from : type=gha
59
57
cache-to : type=gha,mode=max
0 commit comments