2222 env :
2323 DOCKER_BUILDKIT : 1
2424 COMPOSE_DOCKER_CLI_BUILD : 1
25+ REPOSITORY : ${{github.repository}}
2526 permissions :
2627 contents : read
2728 packages : write
@@ -33,23 +34,22 @@ jobs:
3334 - name : Set .env
3435 run : cp .env.example .env
3536 - name : Login to GitHub Container Registry
36- uses : docker/login-action@v2
37+ uses : docker/login-action@v2.1.0
3738 with :
3839 registry : ghcr.io
3940 username : ${{ github.actor }}
4041 password : ${{ secrets.GITHUB_TOKEN }}
4142 - name : Set up QEMU
42- uses : docker/setup-qemu-action@v2
43+ uses : docker/setup-qemu-action@v2.1.0
4344 - name : Set up Docker Buildx
4445 id : buildx
45- uses : docker/setup-buildx-action@v2
46+ uses : docker/setup-buildx-action@v2.2.1
4647 - run : echo "TAG_NAME=${HEAD_REF//\//-}" >> "$GITHUB_ENV"
4748 env :
4849 HEAD_REF : ${{github.head_ref}}
4950 if : ${{ github.event_name == 'pull_request' }}
5051 - run : echo 'TAG_NAME=${{ github.event.release.tag_name }}' >> "$GITHUB_ENV"
5152 if : ${{ github.event_name == 'release' }}
52- - run : echo "REPOSITORY=${{github.repository}}" >> "${GITHUB_ENV}"
5353 - name : Build and push (build)
5454 uses : docker/bake-action@v2.3.0
5555 env :
9797 with :
9898 push : true
9999 files : docker-compose.yml,dev.docker-compose.yml
100+ - name : Start docker
101+ env :
102+ DOCKER_CONTENT_TRUST : 1
103+ run : bash "${GITHUB_WORKSPACE}/scripts/deploy_hato_bot/deploy_docker_image/test.sh"
100104
101105 # .python-version をDockerイメージと同期させる
102106 update-version-python-version :
@@ -106,74 +110,34 @@ jobs:
106110 pull-requests : write
107111 env :
108112 DOCKER_CONTENT_TRUST : 1
113+ REPOSITORY : ${{github.repository}}
109114 needs : deploy_docker_image
110115 if : always() && (needs.deploy_docker_image.result == 'success' || (github.event_name == 'pull_request' && github.event.action == 'closed'))
111116 steps :
112117 - uses : actions/checkout@v3.1.0
113118 with :
114119 fetch-depth : 0
115120 ref : ${{ github.event.pull_request.head.sha }}
116- - name : Set .env
117- run : cp .env.example .env
118- - run : echo "TAG_NAME=${HEAD_REF//\//-}" >> "$GITHUB_ENV"
119- env :
120- HEAD_REF : ${{github.head_ref}}
121- - run : echo "REPOSITORY=${{github.repository}}" >> "${GITHUB_ENV}"
122- - run : docker compose pull
123121 - name : Get Python version
124122 id : get_python_version
125- run : |
126- DOCKER_CMD="python --version 2>&1 | sed -e 's/^Python //g'"
127- python_version=$(docker compose run hato-bot sh -c "${DOCKER_CMD}")
128- echo "Python version:" "${python_version}"
129- echo "python_version=${python_version}" >> "${GITHUB_OUTPUT}"
130- - name : Update versions
131- run : |
132- PYTHON_VERSION="${{steps.get_python_version.outputs.python_version}}"
133- echo "${PYTHON_VERSION}" > .python-version
134- - uses : dev-hato/actions-diff-pr-management@v1.0.6
123+ run : bash "${GITHUB_WORKSPACE}/scripts/deploy_hato_bot/update_version_python_version/get_python_version.sh"
124+ env :
125+ HEAD_REF : ${{github.head_ref}}
126+ - uses : dev-hato/actions-diff-pr-management@v1.1.0
135127 with :
136128 github-token : ${{secrets.GITHUB_TOKEN}}
137129 branch-name-prefix : fix-version-python-version
138130 pr-title-prefix : .python-versionを直してあげたよ!
139131 repo-name : dev-hato/hato-bot
140132
141- pr-docker :
142- runs-on : ubuntu-latest
143- env :
144- DOCKER_CONTENT_TRUST : 1
145- needs : deploy_docker_image
146- steps :
147- - uses : actions/checkout@v3.1.0
148- with :
149- fetch-depth : 0
150- - name : Set .env
151- run : cp .env.example .env
152- - name : Login to GitHub Container Registry
153- uses : docker/login-action@v2
154- with :
155- registry : ghcr.io
156- username : ${{ github.actor }}
157- password : ${{ secrets.GITHUB_TOKEN }}
158- - run : echo "TAG_NAME=${HEAD_REF//\//-}" >> "$GITHUB_ENV"
159- env :
160- HEAD_REF : ${{github.head_ref}}
161- - run : echo "REPOSITORY=${{github.repository}}" >> "${GITHUB_ENV}"
162- - run : docker compose pull
163- - name : Start docker
164- run : docker compose up -d --wait
165- # Dockerコンテナに疎通できるかテストする
166- - name : Test
167- run : curl http://localhost:3000/status
168-
169133 update-dockle :
170134 runs-on : ubuntu-latest
171135 steps :
172136 - uses : actions/checkout@v3.1.0
173137 with :
174138 fetch-depth : 0
175139 ref : ${{ github.event.pull_request.head.sha }}
176- - uses : dev-hato/actions-update-dockle@v0.0.23
140+ - uses : dev-hato/actions-update-dockle@v0.0.31
177141 with :
178142 github-token : ${{secrets.GITHUB_TOKEN}}
179143 repo-name : dev-hato/hato-bot
@@ -185,43 +149,26 @@ jobs:
185149 - deploy_docker_image
186150 env :
187151 DOCKER_CONTENT_TRUST : 1
152+ REPOSITORY : ${{github.repository}}
188153 steps :
189154 - uses : actions/checkout@v3.1.0
190- - name : Set .env
191- run : cp .env.example .env
192- - run : echo "TAG_NAME=${HEAD_REF//\//-}" >> "$GITHUB_ENV"
155+ - run : bash "${GITHUB_WORKSPACE}/scripts/deploy_hato_bot/dockle/run_dockle.sh"
193156 env :
194157 HEAD_REF : ${{github.head_ref}}
195- - run : echo "REPOSITORY=${{github.repository}}" >> "${GITHUB_ENV}"
196- - run : |
197- dockle_version="$(cat .dockle-version)"
198- curl -L -o dockle.deb "https://github.com/goodwithtech/dockle/releases/download/v${dockle_version}/dockle_${dockle_version}_Linux-64bit.deb"
199- sudo dpkg -i dockle.deb
200- - run : docker compose pull
201- - run : docker compose up -d
202- - run : |
203- for image_name in $(docker compose images | awk 'OFS=":" {print $2,$3}' | tail -n +2); do
204- cmd="dockle --exit-code 1 "
205-
206- if [[ "${image_name}" =~ "postgres" ]]; then
207- cmd+="-ak key "
208- fi
209-
210- cmd+="${image_name}"
211- echo "> ${cmd}"
212- eval "${cmd}"
213- done
214158
215159 deploy-complete :
216160 runs-on : ubuntu-latest
217161 if : always()
218162 needs :
219163 - update-version-python-version
220- - pr-docker
221164 - update-dockle
222165 - dockle
223166 steps :
224- - if : needs.update-dockle.result == 'success' && (github.event_name == 'push' || (github.event_name == 'pull_request' && github.repository != github.event.pull_request.head.repo.full_name) || (needs.update-version-python-version.result == 'success' && (github.event.action == 'closed' || ( needs.pr-docker.result == 'success' && needs. dockle.result == 'success') )))
167+ - if : needs.update-dockle.result == 'success' && (github.event_name == 'push' || (github.event_name == 'pull_request' && github.repository != github.event.pull_request.head.repo.full_name) || (needs.update-version-python-version.result == 'success' && (github.event.action == 'closed' || needs.dockle.result == 'success')))
225168 run : exit 0
226- - if : ${{ !(needs.update-dockle.result == 'success' && (github.event_name == 'push' || (github.event_name == 'pull_request' && github.repository != github.event.pull_request.head.repo.full_name) || (needs.update-version-python-version.result == 'success' && (github.event.action == 'closed' || ( needs.pr-docker.result == 'success' && needs. dockle.result == 'success') )))) }}
169+ - if : ${{ !(needs.update-dockle.result == 'success' && (github.event_name == 'push' || (github.event_name == 'pull_request' && github.repository != github.event.pull_request.head.repo.full_name) || (needs.update-version-python-version.result == 'success' && (github.event.action == 'closed' || needs.dockle.result == 'success')))) }}
227170 run : exit 1
171+
172+ concurrency :
173+ group : ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
174+ cancel-in-progress : true
0 commit comments