Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
7506070
Обновление главной страницы, вырезана возможность зарегистрироваться
Gamer-VII Oct 11, 2025
fec85fe
Обновлен путь установки приложения
Gamer-VII Oct 11, 2025
4f1cf30
Обновлен путь установки приложения
Gamer-VII Oct 11, 2025
0692f52
Добавлен вывод внешней ссылки при выводе информации о пользователе
Gamer-VII Oct 11, 2025
16e9af4
Merge pull request #141 from Gml-Launcher/GML-53
GamerVII-NET Oct 11, 2025
57387a0
Merge pull request #142 from Gml-Launcher/GML-55
GamerVII-NET Oct 12, 2025
5981159
Исправление ошибок lint
Gamer-VII Oct 12, 2025
2e966d7
Update docker-package-publish.yml
GamerVII-NET Oct 12, 2025
0a8059f
Delete .github/workflows/docker-image.yml
GamerVII-NET Oct 12, 2025
5534cca
Merge remote-tracking branch 'origin/master' into develop
Gamer-VII Oct 12, 2025
e2f8b40
Merge branch 'refs/heads/GML-55' into develop
Gamer-VII Oct 12, 2025
3e49620
Обновлены ссылки на документацию
Gamer-VII Oct 13, 2025
d8cf96e
Add ARM Native Build & Over Improvements
shadeov Oct 15, 2025
1b47faa
Добавлен интерфейс управления внешними приложениями и настройками пра…
Gamer-VII Oct 24, 2025
d3e6443
Merge pull request #144 from Gml-Launcher/GML-59
GamerVII-NET Oct 24, 2025
7460992
Обновлен workflow публикации Docker-образов: переход на actions/check…
Gamer-VII Oct 25, 2025
81e6044
Merge pull request #143 from shadeov/feature/arm-native-build
GamerVII-NET Oct 25, 2025
b4c45b7
Добавлена установка cosign в workflow публикации Docker-образов и обн…
Gamer-VII Oct 25, 2025
183b811
Удален дублирующий шаг подписи Docker-образов в workflow.
Gamer-VII Oct 25, 2025
686f753
Обновлен workflow публикации Docker-образов: использование digest из …
Gamer-VII Oct 25, 2025
b3c2d74
Merge pull request #145 from Gml-Launcher/feature/arm-native-build
GamerVII-NET Oct 25, 2025
7b56bba
Обновлена версия проекта до 25.3 в package.json и package-lock.json.
Gamer-VII Oct 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
159 changes: 139 additions & 20 deletions .github/workflows/docker-package-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ name: Docker

on:
push:
branches: [ 'master', 'develop' ]
branches: [ 'master', 'develop', 'feature/*' ]
# Publish semver tags as releases.
tags: [ 'v*.*', 'v*.*.*', 'v*.*.*-beta*' ]
pull_request:
branches: [ 'master', 'develop' ]
branches: [ 'master', 'develop', 'feature/*' ]

env:
# Use docker.io for Docker Hub if empty
Expand All @@ -21,25 +21,43 @@ env:

jobs:
build:
runs-on: ubuntu-latest
name: Build (${{ matrix.platform }})
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- platform: linux/amd64
runner: ubuntu-22.04
- platform: linux/arm64
runner: ubuntu-22.04-arm
permissions:
contents: read
packages: write
# This is used to complete the identity challenge
# with sigstore/fulcio when running outside of PRs.
id-token: write
outputs:
image-name: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

# Install the cosign tool except on PR
# https://github.com/sigstore/cosign-installer
- name: Install cosign
if: github.event_name != 'pull_request'
uses: sigstore/cosign-installer@6e04d228eb30da1757ee4e1dd75a0ec73a653e06 #v3.1.1
with:
cosign-release: 'v2.1.1'
# Ensure repository/image name is lowercase for Docker registry
- name: Set lowercase image name
id: image
run: |
image="${IMAGE_NAME}"
echo "lower=${image,,}" >> "$GITHUB_OUTPUT"
echo "IMAGE_NAME_LC=${image,,}" >> "$GITHUB_ENV"
env:
IMAGE_NAME: ${{ env.IMAGE_NAME }}

- name: Prepare platform name
id: platform
run: |
platform=${{ matrix.platform }}
echo "name=${platform//\//-}" >> $GITHUB_OUTPUT

# Set up BuildKit Docker container builder to be able to build
# multi-platform images and export cache
Expand All @@ -63,17 +81,118 @@ jobs:
id: meta
uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
images: ${{ env.REGISTRY }}/${{ steps.image.outputs.lower }}
flavor: |
latest=false
tags: |
type=raw,value=${{ github.sha }}-${{ steps.platform.outputs.name }}

# Build and push Docker image with Buildx (don't push on PR)
# https://github.com/docker/build-push-action
- name: Build and push Docker image
id: build-and-push
- name: Build and push Docker image by digest
id: build
uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 # v5.0.0
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
outputs: type=image,name=${{ env.REGISTRY }}/${{ steps.image.outputs.lower }},push-by-digest=true,name-canonical=true,push=${{ github.event_name != 'pull_request' }}
cache-from: type=gha,scope=build-${{ steps.platform.outputs.name }}
cache-to: type=gha,mode=max,scope=build-${{ steps.platform.outputs.name }}
provenance: false
sbom: false

- name: Export digest
if: github.event_name != 'pull_request'
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"

- name: Upload digest
if: github.event_name != 'pull_request'
uses: actions/upload-artifact@v4
with:
name: digests-${{ steps.platform.outputs.name }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1

merge:
name: Create multi-arch manifest
runs-on: ubuntu-22.04
needs: build
if: github.event_name != 'pull_request'
permissions:
contents: read
packages: write
id-token: write

steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
pattern: digests-*
path: /tmp/digests
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0

- name: Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# Ensure repository/image name is lowercase for Docker registry
- name: Set lowercase image name
id: image
run: |
image="${IMAGE_NAME}"
echo "lower=${image,,}" >> "$GITHUB_OUTPUT"
echo "IMAGE_NAME_LC=${image,,}" >> "$GITHUB_ENV"
env:
IMAGE_NAME: ${{ env.IMAGE_NAME }}

# Extract metadata (tags, labels) for Docker
# https://github.com/docker/metadata-action
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0
with:
images: ${{ env.REGISTRY }}/${{ steps.image.outputs.lower }}

- name: Create manifest list and push
id: create-manifest
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.REGISTRY }}/${{ steps.image.outputs.lower }}@sha256:%s ' *)

# Get the digest of the manifest
manifest_digest=$(docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ steps.image.outputs.lower }}:${{ steps.meta.outputs.version }} --format '{{json .Manifest}}' | jq -r '.digest // .Digest // empty')
if [ -z "$manifest_digest" ]; then
manifest_digest=$(docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ steps.image.outputs.lower }}:${{ steps.meta.outputs.version }} --format '{{.Digest}}')
fi
echo "digest=${manifest_digest}" >> $GITHUB_OUTPUT

- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ steps.image.outputs.lower }}:${{ steps.meta.outputs.version }}

# Install cosign (before using it)
- name: Install cosign
uses: sigstore/cosign-installer@v3.7.0
with:
cosign-release: 'v2.2.4'

# Sign the pushed image by digest (skip on PRs)
- name: Sign image with cosign
if: github.event_name != 'pull_request'
env:
DIGEST: ${{ steps.create-manifest.outputs.digest }}
TAGS: ${{ steps.meta.outputs.tags }}
run: |
echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST}
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "gml-frontend",
"version": "25.2",
"version": "25.3",
"private": true,
"scripts": {
"dev": "next dev --experimental-https",
Expand Down
14 changes: 6 additions & 8 deletions src/app/auth/signin/page.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import Image from 'next/image';
import Link from 'next/link';

import classes from './styles.module.css';

import { LoginPluginScriptViewer, SignInForm } from '@/features/auth-credentials-form';
import { AUTH_PAGES } from '@/shared/routes';
import logo from '@/assets/logos/logo.svg';

export default function Page() {
Expand All @@ -22,12 +20,12 @@ export default function Page() {
</div>
<SignInForm />
<LoginPluginScriptViewer />
<div className={classes.login__registration}>
Нет аккаунта?{' '}
<Link href={AUTH_PAGES.SIGN_UP} className={classes.login__link}>
Регистрация
</Link>
</div>
{/*<div className={classes.login__registration}>*/}
{/* Нет аккаунта?{' '}*/}
{/* <Link href={AUTH_PAGES.SIGN_UP} className={classes.login__link}>*/}
{/* Регистрация*/}
{/* </Link>*/}
{/*</div>*/}
</div>
</div>
<div className={classes.login__banner}>
Expand Down
35 changes: 2 additions & 33 deletions src/app/auth/signup/page.tsx
Original file line number Diff line number Diff line change
@@ -1,38 +1,7 @@
import Image from 'next/image';
import Link from 'next/link';
import { redirect } from 'next/navigation';

import classes from './styles.module.css';

import { SignUpForm } from '@/features/auth-credentials-form';
import { AUTH_PAGES } from '@/shared/routes';
import logo from '@/assets/logos/logo.svg';

export default function Page() {
return (
<>
<div className={classes.register}>
<div className={classes['register__main-content']}>
<div className={classes.register__form}>
<div className={classes.register__details}>
<Image src={logo} className={classes.register__logo} alt="Gml Frontend" />
<h1 className={classes.register__title}>Регистрация</h1>
<p className={classes.register__subtitle}>
Введите свой адрес электронной почты ниже, чтобы создать свою учетную запись
</p>
</div>
<SignUpForm />
<div className={classes.register__login}>
Уже есть аккаунт?{' '}
<Link href={AUTH_PAGES.SIGN_IN} className={classes.register__link}>
Войти
</Link>
</div>
</div>
</div>
<div className={classes.register__banner}>
<Image src={logo} className={classes['register__banner-image']} alt="Gml Frontend" />
</div>
</div>
</>
);
redirect(AUTH_PAGES.SIGN_IN);
}
2 changes: 1 addition & 1 deletion src/app/mnt/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ export default function MntPage() {
<p className="text-sm">
Расположение каталога данных:{' '}
<b>
<span className="font-mono bg-white/10 p-2 rounded-md">/data/GmlBackend</span>
<span className="font-mono bg-white/10 p-2 rounded-md">/srv/gml</span>
</b>
</p>
</CardContent>
Expand Down
Loading