fix: frontend build issue. #259
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Docker | |
on: | |
pull_request: | |
push: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: '3.11' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
if [ -f backend/requirements.txt ]; then pip install -r backend/requirements.txt; fi | |
pip install pytest | |
- name: Test | |
working-directory: ./backend/src | |
run: | | |
mkdir -p config | |
pytest | |
build-webui: | |
if: > | |
(github.event_name == 'pull_request') || | |
(github.event_name == 'push' && github.ref_type == 'tag' && (contains(github.ref, 'alpha') || contains(github.ref, 'beta'))) | |
runs-on: ubuntu-latest | |
needs: [test] | |
strategy: | |
matrix: | |
node-version: [18] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'pnpm' | |
cache-dependency-path: webui/pnpm-lock.yaml | |
- name: Install dependencies | |
run: cd webui && pnpm install | |
- name: Build | |
run: | | |
cd webui && pnpm build | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: dist | |
path: webui/dist | |
build-docker: | |
runs-on: ubuntu-latest | |
needs: [build-webui] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Create Version info | |
working-directory: ./backend/src | |
run: | | |
echo "VERSION = '$GITHUB_REF_NAME'" > module/__version__.py | |
- name: Create Tag | |
if: ${{ github.pull_request.merged == true }} | |
id: create-tag | |
run: | | |
git config --local user.email " | |
git config --local user.name "github-actions" | |
git tag -a ${{ github.event.pull_request.title }} -m ${{ github.event.pull_request.body }} | |
git push origin ${{ github.event.pull_request.title }} | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Docker metadata main | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
estrellaxd/auto_bangumi | |
ghcr.io/${{ github.repository }} | |
tags: | | |
type=semver,pattern={{version}} | |
type=raw,value=latest | |
- name: Docker metadata dev | |
if: contains(github.ref, 'tags') && contains(github.ref, 'alpha') || contains(github.ref, 'beta') | |
id: meta-dev | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
estrellaxd/auto_bangumi:dev | |
ghcr.io/${{ github.repository }} | |
tags: | | |
type=raw,value=${{ github.ref_name }} | |
type=raw,value=dev-latest | |
- name: Login to DockerHub | |
if: ${{ github.event_name == 'push' }} | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | |
- name: Login to ghcr.io | |
if: ${{ github.event_name == 'push' }} | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.ACCESS_TOKEN }} | |
- name: Download artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: dist | |
path: backend/src/dist | |
- name: View files | |
run: | | |
pwd && ls -al && tree | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
builder: ${{ steps.buildx.output.name }} | |
platforms: linux/amd64,linux/arm64,linux/arm/v7 | |
push: ${{ github.event_name == 'push' }} | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
cache-from: type=gha, scope=${{ github.workflow }} | |
cache-to: type=gha, scope=${{ github.workflow }} | |
release: | |
if: > | |
(github.event_name == 'pull_request' && github.event.pull_request.merged == true) || | |
(github.event_name == 'push' && contains(github.ref, 'tags')) | |
runs-on: ubuntu-latest | |
needs: [build-docker] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Download artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: dist | |
path: webui/dist | |
- name: Zip webui | |
run: | | |
cd webui && ls -al && tree && zip -r dist.zip dist | |
- name: Generate Release | |
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.merged == true }} | |
uses: softprops/action-gh-release@v1 | |
with: | |
tag_name: ${{ github.event.pull_request.title }} | |
name: 🌟${{ github.event.pull_request.title }} | |
body: ${{ github.event.pull_request.body }} | |
draft: false | |
prerelease: false | |
files: | | |
webui/dist.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} | |
- name: Generate dev Release | |
if: ${{ github.event_name == 'push' && contains(github.ref, 'alpha') || contains(github.ref, 'beta') }} | |
uses: softprops/action-gh-release@v1 | |
with: | |
tag_name: ${{ github.ref_name }} | |
name: 🌙${{ github.ref_name }} | |
body: ${{ github.event.pull_request.body }} | |
draft: true | |
prerelease: true | |
files: | | |
webui/dist.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} | |
telegram: | |
runs-on: ubuntu-latest | |
needs: [release] | |
steps: | |
- name: send telegram message on push | |
uses: appleboy/telegram-action@master | |
with: | |
to: ${{ secrets.TELEGRAM_TO }} | |
token: ${{ secrets.TELEGRAM_TOKEN }} | |
message: | | |
New release: ${{ github.event.release.title }} | |
Link: ${{ github.event.release.html_url }} |