diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9eac00336..eb6d6b764 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,12 +1,9 @@ -name: build romm image +name: Build and Push Docker Image on: - workflow_dispatch: - inputs: - version: - description: "romm version" - required: true - type: string + push: + tags: + - 'v*' jobs: build: @@ -19,19 +16,6 @@ jobs: - name: Checkout code uses: actions/checkout@v3 - - name: Set environment variables - run: | - CURRENT_RC_VERSION=$(wget -q -O - "https://hub.docker.com/v2/repositories/zurdi15/romm/tags?page_size=2" | grep -o '"name": *"[^"]*' | grep -o '[^"]*$' | grep "dev-${{ inputs.version }}-rc" | cut -d "-" -f 3 | cut -d "." -f 2) - [[ -z $CURRENT_RC_VERSION ]] && CURRENT_RC_VERSION=0 - NEXT_RC_VERSION="$(($CURRENT_RC_VERSION + 1))" - echo "VERSION_PREFIX=${{ github.ref != format('refs/heads/{0}', 'release') && 'dev-' || '' }}" >> $GITHUB_ENV - echo "VERSION_SUFFIX=${{ github.ref == format('refs/heads/{0}', 'master') && '-rc.$NEXT_RC_VERSION' || '' }}" >> $GITHUB_ENV - - - name: Set version - run: | - version=${{ env.VERSION_PREFIX }}${{ inputs.version }}${{ env.VERSION_SUFFIX }} - sed -i 's//'"${version}"'/' backend/__version__.py - - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -58,18 +42,19 @@ jobs: images: | name=zurdi15/romm name=ghcr.io/zurdi15/romm - flavor: | - # latest on release branch, prefix dev on other branches - latest=true - prefix=${{ env.VERSION_PREFIX }},onlatest=true - suffix=${{ env.VERSION_SUFFIX }},onlatest=false tags: | - type=raw,value=${{ inputs.version }} + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} labels: | - org.opencontainers.image.version=${{ inputs.version }} + org.opencontainers.image.version={{version}} org.opencontainers.image.title="zurdi15/romm" - org.opencontainers.image.description="RomM (stands for Rom Manager) is a game library manager focused in retro gaming. Manage and organize all of your games from a web browser" + org.opencontainers.image.description="RomM (ROM Manager) allows you to scan, enrich, and browse your game collection with a clean and responsive interface. With support for multiple platforms, various naming schemes and custom tags, RomM is a must-have for anyone who plays on emulators." org.opencontainers.image.licenses="GPL-3.0" + + - name: Set version + run: | + sed -i 's//${{ steps.meta.outputs.version }}/' backend/__version__.py + - name: Build image uses: docker/build-push-action@v4 with: diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 0fd6520cf..f22e0566e 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -1,4 +1,4 @@ -name: run pytest +name: Run Pytest on: pull_request: diff --git a/README.md b/README.md index 22a6a3bb0..c31cc4cde 100644 --- a/README.md +++ b/README.md @@ -28,12 +28,13 @@ RomM (ROM Manager) allows you to scan, enrich, and browse your game collection w ## Features -- Scans your existing games library [folder-structure] and enchances it with metadata from [IGDB][igdb] +- Scans your existing games library and enchances it with metadata from [IGDB][igdb] - Supports a large number of **[platforms][platform-support]** +- Play games directly from the browser using [EmulatorJS][wiki-emulatorjs-url] +- Built-in [authentication][authentication] with multiple users and permissions - Supports [MAME][mame-xml-update], [Nintendo Switch][switch-titledb-update] and PS2 naming schemes - Detects and groups **multifile games** (e.g. PS1 games with multiple CDs) - Can [parse tags][tag-support] in filenames (e.g. (E), (USA), (rev v1), etc.) -- Built-in [authentication][authentication] with multiple users and permissions - View, upload, update, and delete games from any modern web browser ## Preview @@ -120,7 +121,7 @@ As mentioned in the installation section, RomM requires a specific folder struct -For device naming conventions, review the [Platforms Support][platform-support] section. To override default system names in the folder structure (if your directories are named differently), see the [Configuration File][configuration-file] section. +For folder naming conventions, review the [Platform Support][platform-support] section. To override default system names in the folder structure (if your directories are named differently), see the [Configuration File][configuration-file] section. ## Configuration File @@ -180,7 +181,9 @@ When a change is detected, a scan will be scheduled for sometime in the future ( ## Platform Support -If you adhere to the [RomM folder structure][folder-structure], RomM supports any platform listed in the [IGDB platforms list][igdb-platforms-list]. RomM will retrieve game information, metadata, and covers for platforms in that list. Additionally, some of these platforms have custom icons available ([learn more about platform icons in our wiki][wiki-platforms-icons-url]). +If you adhere to the [RomM folder structure][folder-structure], RomM supports all platforms listed on the [Supported Platforms][wiki-supported-platforms-url] page. **The folder is is case sensitive and must be used exactly how it appears in the list.** When scanning your library, RomM will use the folder name to determine the platform and fetch the appropriate game information, metadata, and cover art. + +Additionally, some of these platforms have custom icons available ([learn more about platform icons in our wiki][wiki-platforms-icons-url]). ## Tag Support @@ -235,9 +238,11 @@ Here are a few projects that we think you might like: [wiki-url]: https://github.com/zurdi15/romm/wiki +[wiki-supported-platforms-url]: https://github.com/zurdi15/romm/wiki/Supported-Platforms [wiki-authentication-url]: https://github.com/zurdi15/romm/wiki/Authentication [wiki-platforms-icons-url]: https://github.com/zurdi15/romm/wiki/Custom-Platform-Icons [wiki-troubleshooting-url]: https://github.com/zurdi15/romm/wiki/Troubleshooting +[wiki-emulatorjs-url]: https://github.com/zurdi15/romm/wiki/EmulatorJS-Player diff --git a/backend/__version__.py b/backend/__version__.py index cc4a13849..d4654dcfa 100644 --- a/backend/__version__.py +++ b/backend/__version__.py @@ -1 +1 @@ -__version__ = '' +__version__ = "" diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 7932ddcf6..eb77059fe 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,14 @@ { "name": "romm", - "version": "2.1.0", + "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "romm", + "version": "0.0.1", "hasInstallScript": true, + "license": "GPL-3.0-only", "dependencies": { "@mdi/font": "7.0.96", "axios": "^1.6.0", @@ -47,6 +49,9 @@ "vite-plugin-static-copy": "0.17.1", "vite-plugin-vuetify": "^1.0.0-alpha.12", "vue-tsc": "^1.8.27" + }, + "engines": { + "node": "16" } }, "node_modules/@ampproject/remapping": { diff --git a/frontend/package.json b/frontend/package.json index 72732d422..20359fe89 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,23 @@ { "name": "romm", "private": true, + "version": "0.0.1", + "author": "Zurdi ", + "description": "A beautiful, powerful, self-hosted rom manager", + "license": "GPL-3.0-only", + "homepage": "https://github.com/zurdi15/romm", + "repository": { + "type": "git", + "url": "git+gihub.com/zurdi15/romm.git" + }, + "bugs": { + "url": "https://github.com/zurdi15/romm/issues" + }, + "keywords": [ + "rom", + "manager", + "emulation" + ], "scripts": { "dev": "vite --host", "build": "npm run typecheck && vite build", @@ -50,5 +67,8 @@ "vite-plugin-static-copy": "0.17.1", "vite-plugin-vuetify": "^1.0.0-alpha.12", "vue-tsc": "^1.8.27" + }, + "engines": { + "node": "16" } } diff --git a/frontend/src/components/Details/Saves.vue b/frontend/src/components/Details/Saves.vue index b13da6ed5..4515dd3d1 100644 --- a/frontend/src/components/Details/Saves.vue +++ b/frontend/src/components/Details/Saves.vue @@ -75,7 +75,7 @@ async function uploadSaves() {