Merge branch 'master' into feature/slash-commands

This commit is contained in:
Max Isom 2021-12-16 15:06:46 -05:00
commit 556c4080ae
No known key found for this signature in database
GPG key ID: 25C9B1A7F6798880
7 changed files with 153 additions and 103 deletions

5
.github/pull_request_template.md vendored Normal file
View file

@ -0,0 +1,5 @@
Closes #
<!-- A brief description of changes -->
- [ ] I updated the changelog

View file

@ -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

View file

@ -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

View file

@ -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
View 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
View 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

View file

@ -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.