Skip to content

Commit

Permalink
feat(demo): publish
Browse files Browse the repository at this point in the history
  • Loading branch information
MM25Zamanian committed Apr 8, 2024
1 parent 07c0171 commit 662ef08
Show file tree
Hide file tree
Showing 94 changed files with 345 additions and 10 deletions.
114 changes: 114 additions & 0 deletions .github/workflows/publish-container.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json

name: Build & Publish Containers

on:
workflow_dispatch:

push:
branches:
- next
- main

env:
USER: alwatr

jobs:
build:
name: Build & Publish Containers
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
include:
- name: hybrid-ui-demo-app
path: ./demo/
context: .

permissions:
contents: read
packages: write
id-token: write

steps:
- name: ⤵️ Checkout repository
uses: actions/[email protected]

- name: ❔ Check Container files changed
id: file_change
if: ${{ github.event_name != 'release' && github.event_name != 'workflow_dispatch' }}
uses: dorny/[email protected]
with:
filters: |
container_folder:
${{ matrix.context }}/**
- name: 🏗 Install cosign
if: ${{ github.event_name != 'pull_request' && steps.file_change.outputs.container_folder != 'false' }}
uses: sigstore/[email protected]

- name: 🏗 Setup Docker Buildx
if: ${{ steps.file_change.outputs.container_folder != 'false' }}
uses: docker/[email protected]

- name: 🏗 Cache Docker Layers
if: ${{ steps.file_change.outputs.container_folder != 'false' }}
uses: actions/[email protected]
with:
path: /tmp/.buildx-cache
key: container/${{ matrix.name }}

# - name: 🏗 Log into docker hub registry
# if: ${{ github.event_name != 'pull_request' && steps.file_change.outputs.container_folder != 'false' }}
# uses: docker/[email protected]
# with:
# username: ${{env.USER}}
# password: ${{secrets.DOCKER_HUB_TOKEN}}

- name: 🏗 Log into ghcr.io registry
if: ${{ github.event_name != 'pull_request' && steps.file_change.outputs.container_folder != 'false' }}
uses: docker/[email protected]
with:
registry: ghcr.io
username: ${{env.USER}}
password: ${{secrets.GITHUB_TOKEN}}

- name: 🏗 Extract metadata
if: ${{ steps.file_change.outputs.container_folder != 'false' }}
id: meta
uses: docker/[email protected]
with:
github-token: ${{secrets.GITHUB_TOKEN}}
images: |
name=ghcr.io/${{env.USER}}/${{matrix.name}},enable=true
name=docker.io/${{env.USER}}/${{matrix.name}},enable=false
tags: |
type=semver,enable=true,pattern={{major}}
type=semver,enable=true,pattern={{major}}.{{minor}}
type=semver,enable=true,pattern={{version}}
type=ref,enable=true,event=branch
labels: |
org.opencontainers.image.title="gecut/${{matrix.name}}"
org.opencontainers.image.vendor="Gecut"
org.opencontainers.image.documentation="https://github.com/gecut/hybrid-ui"
org.opencontainers.image.authors="S. MohammadMahdi Zamanian <[email protected]> (https://mm25zamanian.ir)"
- name: 🚀 Build and push container image
if: ${{ steps.file_change.outputs.container_folder != 'false' }}
id: build_and_push
uses: docker/[email protected]
with:
context: ${{matrix.context}}
file: ${{matrix.path}}/Dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache

# - name: 🏗 Sign the image with GitHub OIDC Token
# if: ${{ github.event_name != 'pull_request' && steps.file_change.outputs.container_folder != 'false' }}
# env:
# COSIGN_EXPERIMENTAL: 'true'
# run: echo "${{steps.meta.outputs.tags}}" | xargs -I {} cosign sign --yes {}@${{steps.build_and_push.outputs.digest}}
7 changes: 7 additions & 0 deletions demo/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.git*
.github
.vscode
deploy
dist
Dockerfile
README.md
23 changes: 23 additions & 0 deletions demo/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
FROM ghcr.io/alwatr/node:21.7.1 as builder

RUN apk add --no-cache git;
RUN set -ex; corepack enable;

COPY . .

RUN set -eux; \
yarn install --immutable; \
yarn build; \
ls -lahF .; \
ls -RlahF /app/demo;

# ---

FROM ghcr.io/alwatr/nginx-cdn:2.5.0 as nginx
LABEL org.opencontainers.image.base.name="ghcr.io/alwatr/nginx-cdn:2.5.0"

COPY --from=builder /app/demo/dist/ .

RUN pwd; ls -lAhF;

EXPOSE 80
1 change: 0 additions & 1 deletion demo/assets/tick.svg

This file was deleted.

3 changes: 3 additions & 0 deletions demo/button/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Gecut Buttons</title>
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/manifest.json" />
<script type="module" src="../main/global.ts"></script>
<script type="module" src="./scripts.ts"></script>
</head>
Expand Down
3 changes: 3 additions & 0 deletions demo/dialog/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Gecut Dialog</title>
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/manifest.json" />
<script type="module" src="../main/global.ts"></script>
<script type="module" src="./scripts.ts"></script>
</head>
Expand Down
3 changes: 3 additions & 0 deletions demo/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Gecut</title>
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/manifest.json" />
<script type="module" src="main/scripts.ts"></script>
<script type="module" src="main/global.ts"></script>
</head>
Expand Down
3 changes: 3 additions & 0 deletions demo/lists/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Gecut Lists</title>
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/manifest.json" />
<script type="module" src="../main/global.ts"></script>
<script type="module" src="./scripts.ts"></script>
</head>
Expand Down
2 changes: 1 addition & 1 deletion demo/lists/scripts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {map} from 'lit/directives/map.js';
import {range} from 'lit/directives/range.js';
import {html, render} from 'lit/html.js';

import placeHolderImage from '../assets/placeholder.webp';
import placeHolderImage from '../public/placeholder.webp';

render(
html`
Expand Down
14 changes: 11 additions & 3 deletions demo/main/scripts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,15 @@ import {classMap} from 'lit/directives/class-map.js';
import {map} from 'lit/directives/map.js';
import {html, render} from 'lit/html.js';

import button from '../public/previews/button.png';
import dialog from '../public/previews/dialog.png';
import lists from '../public/previews/lists.png';
import topBar from '../public/previews/top-bar.png';

interface Demo {
title: string;
href: string;
imageSource: string;

align?: 'center' | 'bottom' | 'top';
}
Expand All @@ -15,21 +21,23 @@ const demos: Demo[] = [
{
title: 'Commons Buttons',
href: '/button/',
align: 'center',
imageSource: button,
},
{
title: 'Dialog',
href: '/dialog/',
align: 'center',
imageSource: dialog,
},
{
title: 'Top App Bar',
href: '/top-bar/',
imageSource: topBar,
align: 'top',
},
{
title: 'Lists',
href: '/lists/',
imageSource: lists,
align: 'top',
},
];
Expand All @@ -45,7 +53,7 @@ if (container)
>
<div class="aspect-w-4 aspect-h-3 w-full overflow-hidden rounded-md relative">
<img
src="${demo.href}preview.png"
src=${demo.imageSource}
class="h-full w-full object-cover invert dark:invert-0 ${classMap({
'object-center': demo.align === 'center' || !demo.align,
'object-top': demo.align === 'top',
Expand Down
Binary file added demo/public/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added demo/public/favicon.ico
Binary file not shown.
Binary file added demo/public/icon-192-maskable.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added demo/public/icon-192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added demo/public/icon-512-maskable.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added demo/public/icon-512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions demo/public/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "Hybrid UI",
"description": "Hybrid UI is a cutting-edge web front-end framework that empowers developers to create high-performance, memory-safe, and visually stunning applications. It provides a comprehensive set of tools and features to streamline development and deliver exceptional user experiences.",
"start_url": "/",
"lang": "en-US",
"display": "standalone",
"icons": [
{"src": "/favicon.ico", "type": "image/x-icon", "sizes": "16x16 32x32"},
{"src": "/icon-192.png", "type": "image/png", "sizes": "192x192"},
{"src": "/icon-512.png", "type": "image/png", "sizes": "512x512"},
{"src": "/icon-192-maskable.png", "type": "image/png", "sizes": "192x192", "purpose": "maskable"},
{"src": "/icon-512-maskable.png", "type": "image/png", "sizes": "512x512", "purpose": "maskable"}
]
}
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
3 changes: 3 additions & 0 deletions demo/top-bar/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Gecut Top Bar</title>
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/manifest.json" />
<script type="module" src="../main/global.ts"></script>
<script type="module" src="./scripts.ts"></script>
</head>
Expand Down
3 changes: 0 additions & 3 deletions demo/vite.config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,6 @@ export default defineConfig(() => {
plugins: [
tsconfigPaths(),
Unfonts({
// fontsource: {
// families: ['Varela Round'],
// },
google: {
families: [
{
Expand Down
Binary file added icons/android/play_store_512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions icons/android/res/mipmap-anydpi-v26/ic_launcher.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<monochrome android:drawable="@mipmap/ic_launcher_monochrome"/>
</adaptive-icon>
Binary file added icons/android/res/mipmap-hdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icons/android/res/mipmap-mdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icons/android/res/mipmap-xhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icons/android/res/mipmap-xxhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added icons/android/res/mipmap-xxxhdpi/ic_launcher.png
Binary file added icons/ios/[email protected]
Binary file added icons/ios/AppIcon-20@2x~ipad.png
Binary file added icons/ios/[email protected]
Binary file added icons/ios/AppIcon-20~ipad.png
Binary file added icons/ios/AppIcon-29.png
Binary file added icons/ios/[email protected]
Binary file added icons/ios/AppIcon-29@2x~ipad.png
Binary file added icons/ios/[email protected]
Binary file added icons/ios/AppIcon-29~ipad.png
Binary file added icons/ios/[email protected]
Binary file added icons/ios/AppIcon-40@2x~ipad.png
Binary file added icons/ios/[email protected]
Binary file added icons/ios/AppIcon-40~ipad.png
Binary file added icons/ios/AppIcon-60@2x~car.png
Binary file added icons/ios/AppIcon-60@3x~car.png
Binary file added icons/ios/AppIcon-83.5@2x~ipad.png
Binary file added icons/ios/[email protected]
Binary file added icons/ios/AppIcon@2x~ipad.png
Binary file added icons/ios/[email protected]
Binary file added icons/ios/AppIcon~ios-marketing.png
Binary file added icons/ios/AppIcon~ipad.png
Loading

0 comments on commit 662ef08

Please sign in to comment.