Skip to content

Merge pull request #157 from Suwayomi/main #138

Merge pull request #157 from Suwayomi/main

Merge pull request #157 from Suwayomi/main #138

Workflow file for this run

# Copyright (c) 2023 Contributors to the Suwayomi project
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
name: Build
on:
push:
branches: ['Release']
defaults:
run:
shell: bash
jobs:
GenTag:
outputs:
value: ${{steps.GenTagName.outputs.value}}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate Tag Name
id: GenTagName
run: |
genTag="r$(git rev-list HEAD --count)"
echo "$genTag"
echo "value=$genTag" >> $GITHUB_OUTPUT
build:
needs: GenTag
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Use bun 1.0.18
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- name: Install bun dependencies
run: bun i
- run: bun run build
- run: echo "${{ needs.GenTag.outputs.value }}" > ./build/revision
- run: sed -i "s@BUILD_VERSION_PLACEHOLDER@${{ needs.GenTag.outputs.value }}@" ./build/index.html
- run: bun run build-md5
- uses: actions/upload-artifact@v4
with:
name: build-files-${{ needs.GenTag.outputs.value }}
path: |
./build/
./buildZip/md5sum
web:
needs:
- build
- GenTag
runs-on: ubuntu-latest
steps:
- name: get Build files
uses: actions/download-artifact@v4
with:
name: build-files-${{ needs.GenTag.outputs.value }}
path: ./
- run: ls
- name: Generate zip
working-directory: ./build
run: zip -r Suwayomi-VUI-Web.zip ./*
- name: Create release
uses: actions/create-release@v1
id: create_release
with:
tag_name: ${{ needs.GenTag.outputs.value }}
release_name: ${{ needs.GenTag.outputs.value }}
body: ''
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload artifact to release
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/Suwayomi-VUI-Web.zip
asset_name: Suwayomi-VUI-Web-${{ needs.GenTag.outputs.value }}.zip
asset_content_type: application/zip
- name: Upload md5
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./buildZip/md5sum
asset_name: md5sum
asset_content_type: text/plain
docker:
needs:
- build
- GenTag
runs-on: ubuntu-latest
steps:
- name: get Build files
uses: actions/download-artifact@v4
with:
name: build-files-${{ needs.GenTag.outputs.value }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- id: string
uses: ASzc/change-string-case-action@v5
with:
string: ${{ github.repository_owner }}/${{ github.event.repository.name }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
platforms: linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64, linux/386, linux/ppc64le, linux/s390x
context: .
build-args: version=${{ needs.GenTag.outputs.value }}
push: true
tags: |
ghcr.io/${{ steps.string.outputs.lowercase }}:latest,
ghcr.io/${{ steps.string.outputs.lowercase }}:${{ needs.GenTag.outputs.value }},
${{ steps.string.outputs.lowercase }}:latest,
${{ steps.string.outputs.lowercase }}:${{ needs.GenTag.outputs.value }},