Skip to content

Commit bdff978

Browse files
committed
ci: add php workflow
1 parent 1de7dd7 commit bdff978

File tree

2 files changed

+389
-33
lines changed

2 files changed

+389
-33
lines changed
+277
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,277 @@
1+
# #
2+
# @type github workflow
3+
# @desc deploys docker container
4+
# @author Aetherinox
5+
# @url https://github.com/Aetherinox
6+
# #
7+
8+
name: "⚙️ Deploy › Docker › Main"
9+
run-name: "⚙️ Deploy › Docker › Main"
10+
11+
# #
12+
# triggers
13+
# #
14+
15+
on:
16+
17+
# #
18+
# Trigger > Workflow Dispatch
19+
# #
20+
21+
workflow_dispatch:
22+
inputs:
23+
24+
# #
25+
# true: runs all actions, even ones not scheduled
26+
# false: only scheduled tasks will run
27+
# #
28+
29+
PRINT_ONLY:
30+
description: "📑 Print Debugs Only"
31+
required: true
32+
default: false
33+
type: boolean
34+
35+
# #
36+
# Trigger > Push
37+
# #
38+
39+
push:
40+
tags:
41+
- '*'
42+
43+
# #
44+
# environment variables
45+
# #
46+
47+
env:
48+
BOT_NAME_1: AdminServ
49+
BOT_NAME_2: AdminServX
50+
BOT_NAME_3: EuropaServ
51+
BOT_NAME_DEPENDABOT: dependabot[bot]
52+
53+
# #
54+
# jobs
55+
# #
56+
57+
jobs:
58+
59+
60+
# #
61+
# Job > Docker Release > Github
62+
# #
63+
64+
docker-release-github:
65+
name: >-
66+
📦 Release › Github
67+
runs-on: ubuntu-latest
68+
permissions:
69+
contents: read
70+
packages: write
71+
attestations: write
72+
id-token: write
73+
steps:
74+
75+
# #
76+
# Release > Github > Start
77+
# #
78+
79+
- name: "✅ Start"
80+
id: task_release_gh_start
81+
run: |
82+
echo "Starting Github docker release"
83+
84+
# #
85+
# Release > Github > Checkout
86+
# #
87+
88+
- name: "☑️ Checkout"
89+
id: task_release_gh_checkout
90+
uses: actions/checkout@v4
91+
with:
92+
fetch-depth: 0
93+
94+
# #
95+
# Release > Github > QEMU
96+
# #
97+
98+
- name: "⚙️ Set up QEMU"
99+
id: task_release_gh_qemu
100+
uses: docker/setup-qemu-action@v3
101+
102+
# #
103+
# Release > Github > Setup BuildX
104+
# #
105+
106+
- name: "⚙️ Setup Buildx"
107+
id: task_release_gh_buildx
108+
uses: docker/setup-buildx-action@v3
109+
with:
110+
version: latest
111+
driver-opts: 'image=moby/buildkit:v0.10.5'
112+
113+
# #
114+
# Release > Github > Registry Login
115+
# #
116+
117+
- name: "⚙️ Login to DockerHub"
118+
id: task_release_gh_registry
119+
if: github.event_name != 'pull_request'
120+
uses: docker/login-action@v3
121+
with:
122+
registry: ghcr.io
123+
username: ${{ github.actor }}
124+
password: ${{ secrets.SELF_TOKEN_CL }}
125+
126+
# #
127+
# Release > Github > Meta
128+
# #
129+
130+
- name: "🔨 Docker meta"
131+
id: task_release_gh_meta
132+
uses: docker/metadata-action@v5
133+
with:
134+
images: |
135+
ghcr.io/Aetherinox/thetvapp-docker
136+
tags: |
137+
type=raw,value=latest,enable=${{ endsWith(github.ref, 'main') }}
138+
type=ref,event=tag
139+
140+
# #
141+
# Release > Github > Debug
142+
# #
143+
144+
- name: "🪪 Debug › Print"
145+
id: task_release_gh_print
146+
run: |
147+
echo "registry ............. Github"
148+
echo "github.actor.......... ${{ github.actor }}"
149+
echo "github.ref ........... ${{ github.ref }}"
150+
echo "github.event_name .... ${{ github.event_name }}"
151+
echo "tags ................. ${{ steps.task_release_gh_meta.outputs.tags }}"
152+
echo "labels ............... ${{ steps.task_release_gh_meta.outputs.labels }}"
153+
154+
# #
155+
# Release > Github > Build and Push
156+
# #
157+
158+
- name: "📦 Build and push"
159+
id: task_release_gh_push
160+
uses: docker/build-push-action@v3
161+
if: ( github.event_name == 'workflow_dispatch' && inputs.PRINT_ONLY == 'false' )
162+
with:
163+
context: .
164+
file: Dockerfile
165+
platforms: linux/amd64
166+
push: ${{ github.event_name != 'pull_request' }}
167+
tags: ${{ steps.task_release_gh_meta.outputs.tags }}
168+
labels: ${{ steps.task_release_gh_meta.outputs.labels }}
169+
170+
# #
171+
# Job > Docker Release > Github
172+
# #
173+
174+
docker-release-dockerhub:
175+
name: >-
176+
📦 Release › Dockerhub
177+
runs-on: ubuntu-latest
178+
permissions:
179+
contents: read
180+
packages: write
181+
attestations: write
182+
id-token: write
183+
steps:
184+
185+
# #
186+
# Release > Dockerhub > Start
187+
# #
188+
189+
- name: "✅ Start"
190+
id: task_release_dh_start
191+
run: |
192+
echo "Starting Github docker release"
193+
194+
# #
195+
# Release > Dockerhub > Checkout
196+
# #
197+
198+
- name: "☑️ Checkout"
199+
id: task_release_dh_checkout
200+
uses: actions/checkout@v4
201+
with:
202+
fetch-depth: 0
203+
204+
# #
205+
# Release > Dockerhub > QEMU
206+
# #
207+
208+
- name: "⚙️ Set up QEMU"
209+
id: task_release_dh_qemu
210+
uses: docker/setup-qemu-action@v3
211+
212+
# #
213+
# Release > Dockerhub > Setup BuildX
214+
# #
215+
216+
- name: "⚙️ Setup Buildx"
217+
id: task_release_dh_buildx
218+
uses: docker/setup-buildx-action@v3
219+
with:
220+
version: latest
221+
driver-opts: 'image=moby/buildkit:v0.10.5'
222+
223+
# #
224+
# Release > Dockerhub > Registry Login
225+
# #
226+
227+
- name: "⚙️ Login to DockerHub"
228+
id: task_release_dh_registry
229+
if: github.event_name != 'pull_request'
230+
uses: docker/login-action@v3
231+
with:
232+
username: aetherinox
233+
password: ${{ secrets.SELF_DOCKERHUB_TOKEN }}
234+
235+
# #
236+
# Release > Dockerhub > Meta
237+
# #
238+
239+
- name: "🔨 Docker meta"
240+
id: task_release_dh_meta
241+
uses: docker/metadata-action@v5
242+
with:
243+
images: |
244+
aetherinox/thetvapp
245+
tags: |
246+
type=raw,value=latest,enable=${{ endsWith(github.ref, 'main') }}
247+
type=ref,event=tag
248+
249+
# #
250+
# Release > Dockerhub > Debug
251+
# #
252+
253+
- name: "🪪 Debug › Print"
254+
id: task_release_dh_print
255+
run: |
256+
echo "registry ............. Dockerhub"
257+
echo "github.actor.......... ${{ github.actor }}"
258+
echo "github.ref ........... ${{ github.ref }}"
259+
echo "github.event_name .... ${{ github.event_name }}"
260+
echo "tags ................. ${{ steps.task_release_dh_meta.outputs.tags }}"
261+
echo "labels ............... ${{ steps.task_release_dh_meta.outputs.labels }}"
262+
263+
# #
264+
# Release > Dockerhub > Build and Push
265+
# #
266+
267+
- name: "📦 Build and push"
268+
id: task_release_dh_push
269+
uses: docker/build-push-action@v3
270+
if: ( github.event_name == 'workflow_dispatch' && inputs.PRINT_ONLY == 'false' )
271+
with:
272+
context: .
273+
file: Dockerfile
274+
platforms: linux/amd64
275+
push: ${{ github.event_name != 'pull_request' }}
276+
tags: ${{ steps.task_release_dh_meta.outputs.tags }}
277+
labels: ${{ steps.task_release_dh_meta.outputs.labels }}

0 commit comments

Comments
 (0)