mirror of
https://github.com/BluemediaGER/muse.git
synced 2024-11-23 09:15:29 +01:00
Merge branch 'master' into feature/slash-commands
This commit is contained in:
commit
556c4080ae
5
.github/pull_request_template.md
vendored
Normal file
5
.github/pull_request_template.md
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
Closes #
|
||||||
|
|
||||||
|
<!-- A brief description of changes -->
|
||||||
|
|
||||||
|
- [ ] I updated the changelog
|
51
.github/workflows/build.yml
vendored
51
.github/workflows/build.yml
vendored
|
@ -1,31 +1,28 @@
|
||||||
name: Lint & build
|
name: Lint & build
|
||||||
|
|
||||||
on:
|
on: push
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: Lint & build
|
name: Lint & build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
- uses: actions/setup-node@v2
|
- uses: actions/setup-node@v2
|
||||||
with:
|
with:
|
||||||
node-version: '16'
|
node-version: '16'
|
||||||
- name: Cache dependencies
|
- name: Cache dependencies
|
||||||
uses: actions/cache@v1
|
uses: actions/cache@v1
|
||||||
with:
|
with:
|
||||||
path: ./node_modules
|
path: ./node_modules
|
||||||
key: ${{ runner.OS }}-dependencies-${{ hashFiles('**/yarn.lock') }}
|
key: ${{ runner.OS }}-dependencies-${{ hashFiles('**/yarn.lock') }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.OS }}-dependencies-${{ env.cache-name }}-
|
${{ runner.OS }}-dependencies-${{ env.cache-name }}-
|
||||||
${{ runner.OS }}-dependencies-
|
${{ runner.OS }}-dependencies-
|
||||||
${{ runner.OS }}-
|
${{ runner.OS }}-
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: yarn install
|
run: yarn install
|
||||||
- name: Run lint
|
- name: Run lint
|
||||||
run: yarn lint
|
run: yarn lint
|
||||||
- name: Build
|
- name: Build
|
||||||
run: yarn build
|
run: yarn build
|
||||||
|
|
20
.github/workflows/pr.yml
vendored
20
.github/workflows/pr.yml
vendored
|
@ -4,27 +4,9 @@ on:
|
||||||
pull_request:
|
pull_request:
|
||||||
types: [opened, synchronize, ready_for_review, edited, closed]
|
types: [opened, synchronize, ready_for_review, edited, closed]
|
||||||
branches:
|
branches:
|
||||||
- main
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
|
||||||
name: Build & lint
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v1
|
|
||||||
- uses: actions/setup-node@v2
|
|
||||||
with:
|
|
||||||
node-version: '16'
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
uses: bahmutov/npm-install@v1
|
|
||||||
|
|
||||||
- name: Run lint
|
|
||||||
run: yarn lint
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: yarn build
|
|
||||||
|
|
||||||
release:
|
release:
|
||||||
name: Release snapshot
|
name: Release snapshot
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
52
.github/workflows/publish-image.yml
vendored
52
.github/workflows/publish-image.yml
vendored
|
@ -1,52 +0,0 @@
|
||||||
name: Publish Docker image
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: master
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
main:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Set up Buildx
|
|
||||||
uses: docker/setup-buildx-action@v1
|
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v1
|
|
||||||
|
|
||||||
- name: Cache Docker layers
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: /tmp/.buildx-cache
|
|
||||||
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-buildx-
|
|
||||||
|
|
||||||
- name: Login to DockerHub
|
|
||||||
uses: docker/login-action@v1
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Limit concurrent builds to 1
|
|
||||||
uses: softprops/turnstyle@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build and push
|
|
||||||
id: docker_build
|
|
||||||
uses: docker/build-push-action@v2
|
|
||||||
with:
|
|
||||||
push: true
|
|
||||||
tags: codetheweb/muse:latest
|
|
||||||
platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64
|
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache,mode=max
|
|
||||||
|
|
||||||
- name: Update Docker Hub description
|
|
||||||
uses: peter-evans/dockerhub-description@v2.1.0
|
|
||||||
env:
|
|
||||||
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
|
|
||||||
DOCKERHUB_REPOSITORY: codetheweb/muse
|
|
||||||
|
|
90
.github/workflows/publish.yml
vendored
Normal file
90
.github/workflows/publish.yml
vendored
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
name: Make release & publish Docker image
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Get version from tag
|
||||||
|
id: tag_name
|
||||||
|
run: |
|
||||||
|
echo ::set-output name=current_version::${GITHUB_REF#refs/tags/v}
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Get Changelog Entry
|
||||||
|
id: changelog_reader
|
||||||
|
uses: mindsers/changelog-reader-action@v2
|
||||||
|
with:
|
||||||
|
version: ${{ steps.tag_name.outputs.current_version }}
|
||||||
|
path: ./CHANGELOG.md
|
||||||
|
|
||||||
|
- name: Create/update release
|
||||||
|
uses: ncipollo/release-action@v1
|
||||||
|
with:
|
||||||
|
tag: ${GITHUB_REF#refs/tags}
|
||||||
|
name: Release ${{ steps.changelog_reader.outputs.version }}
|
||||||
|
body: ${{ steps.changelog_reader.outputs.changes }}
|
||||||
|
prerelease: ${{ steps.changelog_reader.outputs.status == 'prereleased' }}
|
||||||
|
draft: ${{ steps.changelog_reader.outputs.status == 'unreleased' }}
|
||||||
|
allowUpdates: true
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
publish:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Set up Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
|
||||||
|
- name: Cache Docker layers
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: /tmp/.buildx-cache
|
||||||
|
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-buildx-
|
||||||
|
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Get tags
|
||||||
|
id: get-tags
|
||||||
|
uses: Surgo/docker-smart-tag-action@v1
|
||||||
|
with:
|
||||||
|
docker_image: codetheweb/muse
|
||||||
|
|
||||||
|
- name: Wait on lint & build
|
||||||
|
uses: lewagon/wait-on-check-action@v1.1.1
|
||||||
|
with:
|
||||||
|
ref: ${{ github.sha }}
|
||||||
|
check-name: 'Lint & build'
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
wait-interval: 10
|
||||||
|
|
||||||
|
- name: Build and push
|
||||||
|
id: docker_build
|
||||||
|
uses: docker/build-push-action@v2
|
||||||
|
with:
|
||||||
|
push: true
|
||||||
|
tags: ${{ steps.get-tags.outputs.tag }}
|
||||||
|
platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64
|
||||||
|
cache-from: type=local,src=/tmp/.buildx-cache
|
||||||
|
cache-to: type=local,dest=/tmp/.buildx-cache,mode=max
|
||||||
|
|
||||||
|
- name: Update Docker Hub description
|
||||||
|
uses: peter-evans/dockerhub-description@v2.1.0
|
||||||
|
env:
|
||||||
|
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
DOCKERHUB_REPOSITORY: codetheweb/muse
|
14
CHANGELOG.md
Normal file
14
CHANGELOG.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Changelog
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.1.0]
|
||||||
|
### Added
|
||||||
|
- Initial release
|
||||||
|
|
||||||
|
[Unreleased]: https://github.com/codetheweb/muse/compare/v0.1.0...HEAD
|
||||||
|
[0.1.0]: https://github.com/codetheweb/muse/releases/tag/v0.1.0
|
24
README.md
24
README.md
|
@ -30,12 +30,25 @@ Muse is written in TypeScript. You can either run Muse with Docker (recommended)
|
||||||
|
|
||||||
Muse will log a URL when run. Open this URL in a browser to invite Muse to your server. Muse will DM the server owner after it's added with setup instructions.
|
Muse will log a URL when run. Open this URL in a browser to invite Muse to your server. Muse will DM the server owner after it's added with setup instructions.
|
||||||
|
|
||||||
|
#### Versioning
|
||||||
|
|
||||||
|
The `master` branch acts as the developing / bleeding edge branch and is not guaranteed to be stable.
|
||||||
|
|
||||||
|
When running a production instance, I recommend that you use the [latest release](https://github.com/codetheweb/muse/releases/).
|
||||||
|
|
||||||
|
|
||||||
#### Docker
|
#### Docker
|
||||||
|
|
||||||
|
There are a variety of image tags available:
|
||||||
|
- `:2`: versions >= 2.0.0
|
||||||
|
- `:2.1`: versions >= 2.1.0 and < 2.2.0
|
||||||
|
- `:2.1.1`: an exact version specifier
|
||||||
|
- `:latest`: whatever the latest version is
|
||||||
|
|
||||||
(Replace empty config strings with correct values.)
|
(Replace empty config strings with correct values.)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -it -v "$(pwd)/data":/data -e DISCORD_TOKEN='' -e SPOTIFY_CLIENT_ID='' -e SPOTIFY_CLIENT_SECRET='' -e YOUTUBE_API_KEY='' codetheweb/muse
|
docker run -it -v "$(pwd)/data":/data -e DISCORD_TOKEN='' -e SPOTIFY_CLIENT_ID='' -e SPOTIFY_CLIENT_SECRET='' -e YOUTUBE_API_KEY='' codetheweb/muse:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
This starts Muse and creates a data directory in your current directory.
|
This starts Muse and creates a data directory in your current directory.
|
||||||
|
@ -47,7 +60,7 @@ version: '3.4'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
muse:
|
muse:
|
||||||
image: codetheweb/muse
|
image: codetheweb/muse:latest
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- ./muse:/data
|
- ./muse:/data
|
||||||
|
@ -64,9 +77,10 @@ services:
|
||||||
|
|
||||||
1. `git clone https://github.com/codetheweb/muse.git && cd muse`
|
1. `git clone https://github.com/codetheweb/muse.git && cd muse`
|
||||||
2. Copy `.env.example` to `.env` and populate with values
|
2. Copy `.env.example` to `.env` and populate with values
|
||||||
3. `yarn install` (or `npm i`)
|
3. I recommend checking out a tagged release with `git checkout v[latest release]`
|
||||||
4. `yarn build` (or `npm run build`)
|
4. `yarn install` (or `npm i`)
|
||||||
5. `yarn start` (or `npm run start`)
|
5. `yarn build` (or `npm run build`)
|
||||||
|
6. `yarn start` (or `npm run start`)
|
||||||
|
|
||||||
**Note**: if you're on Windows, you may need to manually set the ffmpeg path. See [#345](https://github.com/codetheweb/muse/issues/345) for details.
|
**Note**: if you're on Windows, you may need to manually set the ffmpeg path. See [#345](https://github.com/codetheweb/muse/issues/345) for details.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue