-
Notifications
You must be signed in to change notification settings - Fork 1
129 lines (108 loc) · 4.17 KB
/
docker-publish-develop.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: Docker ALBS (develop)
# Ayuskey-Legacy Build System
on:
push:
# Publish `v11-lts` as Docker `latest` image.
branches:
- develop
# Publish `v1.2.3` tags as releases.
# no tag
# tags:
# - 11.37.1*
# Run tests for any PRs.
#pull_request:
env:
# TODO: Change variable to your image's name.
# ayuskey
# IMAGE_NAME_LTS: ayuskey-lts # not stable
# IMAGE_NAME_LATEST: ayuskey-latest # todo
IMAGE_NAME: ayuskey10 # (仮)
# akariskey
AKARI_IMAGE_NAME: akariskey
jobs:
# Run tests.
# See also https://docs.docker.com/docker-hub/builds/automated-testing/
# dockle.ymlなどで十分
# test:
# runs-on: ubuntu-22.04
#
# steps:
# - uses: actions/checkout@v3
# with:
# submodules: true
#
# - name: Run tests
# run: |
# if [ -f docker-compose.test.yml ]; then
# docker-compose --file docker-compose.test.yml build
# docker-compose --file docker-compose.test.yml run sut
# else
# docker build . --file Dockerfile
# fi
# Push image to GitHub Packages.
# See also https://docs.docker.com/docker-hub/builds/
push:
# Ensure test job passes before pushing image.
# needs: test
runs-on: ubuntu-22.04
if: >-
github.event_name == 'push' ||
github.repository == 'TeamBlackCrystal/ayuskey' ||
github.repository == 'AkariNext/akariskey'
# 他で使うときは↑を書き換える
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Build image
run: |
[[ "${{github.repository}}" == "AkariNext/akariskey" ]] && IMAGE_NAME=$AKARI_IMAGE_NAME && echo "akariskey mode"
docker build . --file Dockerfile --tag $IMAGE_NAME #--tag $IMAGE_NAME_LATEST #--tag $IMAGE_NAME_LTS
- name: Log into registry
#run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login docker.pkg.github.com -u ${{ github.actor }} --password-stdin
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
# - name: Push image (lts)
# run: |
# #IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME_LTS
# IMAGE_ID=ghcr.io/teamblackcrystal/$IMAGE_NAME_LTS
#
# # Change all uppercase to lowercase
# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
#
# # Strip git ref prefix from version
# VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
#
# # Strip "v" prefix from tag name
# [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
#
# # Use Docker `latest` tag convention
# [ "$VERSION" == "v11-lts" ] && VERSION=latest
#
# echo IMAGE_ID=$IMAGE_ID
# echo VERSION=$VERSION
#
# docker tag $IMAGE_NAME_LTS $IMAGE_ID:$VERSION
# docker push $IMAGE_ID:$VERSION
- name: Push image (version)
run: |
#IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME
IMAGE_ID=ghcr.io/teamblackcrystal/$IMAGE_NAME
[[ "${{github.repository}}" == "AkariNext/akariskey" ]] && IMAGE_ID=ghcr.io/akarinext/$AKARI_IMAGE_NAME && IMAGE_NAME=$AKARI_IMAGE_NAME && echo "akariskey mode"
# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Use Docker `latest` tag convention
[ "$VERSION" == "v11-lts" ] && VERSION=latest
# developはコミットハッシュで
# まともにタブもつけてないしこれで十分 (本当は"git describe --tags HEAD"の方が人間にもわかりやすいかも)
VERSION=$(git rev-parse --short HEAD)
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION