feat:dockerized & test actions added
Runner Test / hello (push) Successful in 5s

This commit is contained in:
2026-09-05 13:21:22 +03:30
parent df6cb33731
commit ed5eead80f
7 changed files with 160 additions and 40 deletions
+7
View File
@@ -0,0 +1,7 @@
node_modules
.next
out
docs
.git
.gitignore
npm-debug.log
+34
View File
@@ -0,0 +1,34 @@
name: Runner Test
on:
push:
branches: [ main ]
workflow_dispatch: # lets you trigger it manually from the UI too
jobs:
hello:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Print basic info
run: |
echo "✅ Runner is working!"
echo "Hostname: $(hostname)"
echo "Date: $(date)"
echo "User: $(whoami)"
pwd
ls -la
- name: Test env variables
run: |
echo "Branch: ${{ github.ref_name }}"
echo "Commit SHA: ${{ github.sha }}"
echo "Actor: ${{ github.actor }}"
- name: Simulate a build step
run: |
mkdir -p build
echo "Build artifact content" > build/output.txt
cat build/output.txt
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JsonSchemaMappingsProjectConfiguration">
<state>
<map>
<entry key="GitHub Workflow">
<value>
<SchemaInfo>
<option name="name" value="GitHub Workflow" />
<option name="relativePathToSchema" value="https://www.schemastore.org/github-workflow.json" />
<option name="applicationDefined" value="true" />
<option name="patterns">
<list>
<Item>
<option name="path" value=".gitea/workflows/test.yml" />
</Item>
</list>
</option>
</SchemaInfo>
</value>
</entry>
</map>
</state>
</component>
</project>
+45 -32
View File
@@ -5,12 +5,12 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="bb7b50a5-be9c-4cd7-a05b-979f0e91b173" name="Changes" comment="update"> <list default="true" id="bb7b50a5-be9c-4cd7-a05b-979f0e91b173" name="Changes" comment="update">
<change afterPath="$PROJECT_DIR$/.dockerignore" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.gitea/workflows/test.yml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Dockerfile" afterDir="false" />
<change afterPath="$PROJECT_DIR$/docker-compose.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/page.jsx" beforeDir="false" afterPath="$PROJECT_DIR$/app/page.jsx" afterDir="false" /> <change beforePath="$PROJECT_DIR$/next.config.js" beforeDir="false" afterPath="$PROJECT_DIR$/next.config.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/components/AboutSection.jsx" beforeDir="false" afterPath="$PROJECT_DIR$/components/AboutSection.jsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/components/Header.jsx" beforeDir="false" afterPath="$PROJECT_DIR$/components/Header.jsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/components/ThemeToggle.jsx" beforeDir="false" afterPath="$PROJECT_DIR$/components/ThemeToggle.jsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/components/VendingCard.jsx" beforeDir="false" afterPath="$PROJECT_DIR$/components/VendingCard.jsx" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -93,32 +93,33 @@
<option name="hideEmptyMiddlePackages" value="true" /> <option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" /> <option name="showLibraryContents" value="true" />
</component> </component>
<component name="PropertiesComponent">{ <component name="PropertiesComponent"><![CDATA[{
&quot;keyToString&quot;: { "keyToString": {
&quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;, "ASKED_MARK_IGNORED_FILES_AS_EXCLUDED": "true",
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;, "ModuleVcsDetector.initialDetectionPerformed": "true",
&quot;RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252&quot;: &quot;true&quot;, "RunOnceActivity.ShowReadmeOnStart": "true",
&quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;, "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
&quot;RunOnceActivity.typescript.service.memoryLimit.init&quot;: &quot;true&quot;, "RunOnceActivity.git.unshallow": "true",
&quot;codeWithMe.voiceChat.enabledByDefault&quot;: &quot;false&quot;, "RunOnceActivity.typescript.service.memoryLimit.init": "true",
&quot;git-widget-placeholder&quot;: &quot;main&quot;, "codeWithMe.voiceChat.enabledByDefault": "false",
&quot;javascript.nodejs.core.library.configured.version&quot;: &quot;24.20.0&quot;, "git-widget-placeholder": "main",
&quot;javascript.nodejs.core.library.typings.version&quot;: &quot;24.13.3&quot;, "javascript.nodejs.core.library.configured.version": "24.20.0",
&quot;javascript.preferred.runtime.type.id&quot;: &quot;node&quot;, "javascript.nodejs.core.library.typings.version": "24.13.3",
&quot;js.debugger.nextJs.config.created.client&quot;: &quot;true&quot;, "javascript.preferred.runtime.type.id": "node",
&quot;js.debugger.nextJs.config.created.server&quot;: &quot;true&quot;, "js.debugger.nextJs.config.created.client": "true",
&quot;kronk.content.tree.expanded.paths&quot;: &quot;&quot;, "js.debugger.nextJs.config.created.server": "true",
&quot;last_opened_file_path&quot;: &quot;/home/hamed/Documents/Projects/GIthubRepo/robot-market-launcher-pwa&quot;, "kronk.content.tree.expanded.paths": "",
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;, "last_opened_file_path": "/home/hamed/Documents/Projects/GItLabRepo/device_web",
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;, "node.js.detected.package.eslint": "true",
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;, "node.js.detected.package.tslint": "true",
&quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;, "node.js.selected.package.eslint": "(autodetect)",
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;, "node.js.selected.package.tslint": "(autodetect)",
&quot;settings.editor.selected.configurable&quot;: &quot;editor.preferences.fonts.default&quot;, "nodejs_package_manager_path": "npm",
&quot;ts.external.directory.path&quot;: &quot;C:\\Program Files\\JetBrains\\WebStorm 2026.1.1\\plugins\\javascript-plugin\\jsLanguageServicesImpl\\external&quot;, "settings.editor.selected.configurable": "editor.preferences.fonts.default",
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot; "ts.external.directory.path": "C:\\Program Files\\JetBrains\\WebStorm 2026.1.1\\plugins\\javascript-plugin\\jsLanguageServicesImpl\\external",
"vue.rearranger.settings.migration": "true"
} }
}</component> }]]></component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS"> <key name="MoveFile.RECENT_KEYS">
<recent name="D:\Project\GitHubRepo\robot-market-landing\public\images\icons" /> <recent name="D:\Project\GitHubRepo\robot-market-landing\public\images\icons" />
@@ -180,7 +181,11 @@
<workItem from="1788148958104" duration="1576000" /> <workItem from="1788148958104" duration="1576000" />
<workItem from="1788244010046" duration="3900000" /> <workItem from="1788244010046" duration="3900000" />
<workItem from="1788412255571" duration="40000" /> <workItem from="1788412255571" duration="40000" />
<workItem from="1788412435362" duration="4318000" /> <workItem from="1788412435362" duration="4637000" />
<workItem from="1788423298952" duration="3393000" />
<workItem from="1788580635152" duration="776000" />
<workItem from="1788592387411" duration="8000" />
<workItem from="1788592424522" duration="8370000" />
</task> </task>
<task id="LOCAL-00001" summary="update"> <task id="LOCAL-00001" summary="update">
<option name="closed" value="true" /> <option name="closed" value="true" />
@@ -374,7 +379,15 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1788245193637</updated> <updated>1788245193637</updated>
</task> </task>
<option name="localTasksCounter" value="25" /> <task id="LOCAL-00025" summary="update">
<option name="closed" value="true" />
<created>1788418070013</created>
<option name="number" value="00025" />
<option name="presentableId" value="LOCAL-00025" />
<option name="project" value="LOCAL" />
<updated>1788418070013</updated>
</task>
<option name="localTasksCounter" value="26" />
<servers /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
+29
View File
@@ -0,0 +1,29 @@
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV HOSTNAME=0.0.0.0
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
EXPOSE 3000
CMD ["node", "server.js"]
+11
View File
@@ -0,0 +1,11 @@
services:
robot-market:
build:
context: .
container_name: robot-market
ports:
- "3000:3000"
environment:
NODE_ENV: production
HOSTNAME: 0.0.0.0
restart: unless-stopped
+8 -7
View File
@@ -1,16 +1,17 @@
/** @type {import('next').NextConfig} */
const basePath = process.env.NEXT_PUBLIC_BASE_PATH || ''; const basePath = process.env.NEXT_PUBLIC_BASE_PATH || '';
const nextConfig = { const nextConfig = {
reactStrictMode: true, reactStrictMode: true,
// AntD ships CJS + uses some patterns that benefit from transpilation in the App Router.
transpilePackages: ['antd', '@ant-design/icons', 'rc-util', 'rc-pagination', 'rc-picker'],
transpilePackages: [
'antd',
'@ant-design/icons',
'rc-util',
'rc-pagination',
'rc-picker'
],
output: 'export', output: 'standalone',
images: {unoptimized: true},
trailingSlash: true, trailingSlash: true,