Improve PWA support.

This commit is contained in:
FireMasterK 2021-12-28 19:39:02 +00:00
parent ce4be5d217
commit b32e868e8f
No known key found for this signature in database
GPG Key ID: 49451E4482CC5BCD
5 changed files with 103 additions and 84 deletions

View File

@ -1,18 +1,18 @@
name: Build and Lint
on:
pull_request:
push:
pull_request:
push:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.4.0
- name: Setup Node.js
uses: actions/setup-node@v2.5.1
with:
cache: "yarn"
- run: yarn install --prefer-offline
- run: yarn build
- run: yarn lint --no-fix
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.4.0
- name: Setup Node.js
uses: actions/setup-node@v2.5.1
with:
cache: "yarn"
- run: yarn install --prefer-offline
- run: yarn build
- run: yarn lint --no-fix

View File

@ -1,38 +1,38 @@
name: Docker Multi-Architecture Build
on:
push:
paths-ignore:
- "**.md"
branches:
- master
push:
paths-ignore:
- "**.md"
branches:
- master
jobs:
build-docker-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.4.0
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v1.2.0
with:
platforms: all
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1.6.0
with:
version: latest
- name: Login to DockerHub
uses: docker/login-action@v1.12.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v2.7.0
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: 1337kavin/piped-frontend:latest
build-docker-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.4.0
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v1.2.0
with:
platforms: all
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1.6.0
with:
version: latest
- name: Login to DockerHub
uses: docker/login-action@v1.12.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v2.7.0
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: 1337kavin/piped-frontend:latest

29
.github/workflows/ipfs-build.yml vendored Normal file
View File

@ -0,0 +1,29 @@
name: Build and Deploy
on:
push:
paths-ignore:
- "**.md"
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.4.0
- name: Setup Node.js
uses: actions/setup-node@v2.5.1
with:
cache: "yarn"
- run: yarn install --prefer-offline
- run: yarn build && sed -i 's/fonts.gstatic.com/fonts.kavin.rocks/g' dist/assets/*.css
- uses: aquiladev/ipfs-action@v0.1.6
id: ipfs-add
with:
path: ./dist
service: infura
- name: Update DNSLink
run: npx dnslink-cloudflare -d kavin.rocks -l /ipfs/${{ steps.ipfs-add.outputs.hash }} -r _dnslink.piped-ipfs
env:
CF_API_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}

View File

@ -13,7 +13,34 @@ export default defineConfig({
vueI18n({
include: path.resolve(__dirname, "./src/locales/**"),
}),
VitePWA({ registerType: "autoUpdate" }),
VitePWA({
registerType: "autoUpdate",
workbox: {
globPatterns: ["**/*.{js,css,html,ico,svg,png}", "manifest.webmanifest"],
},
manifest: {
name: "Piped",
short_name: "Piped",
background_color: "#000000",
theme_color: "#fa4b4b",
icons: [
{ src: "./img/icons/android-chrome-192x192.png", sizes: "192x192", type: "image/png" },
{ src: "./img/icons/android-chrome-512x512.png", sizes: "512x512", type: "image/png" },
{
src: "./img/icons/android-chrome-maskable-192x192.png",
sizes: "192x192",
type: "image/png",
purpose: "maskable",
},
{
src: "./img/icons/android-chrome-maskable-512x512.png",
sizes: "512x512",
type: "image/png",
purpose: "maskable",
},
],
},
}),
],
resolve: {
alias: {

View File

@ -1,37 +0,0 @@
module.exports = {
pwa: {
name: "Piped",
themeColor: "#fa4b4b",
msTileColor: "#000000",
appleMobileWebAppCapable: "yes",
appleMobileWebAppStatusBarStyle: "black",
workboxPluginMode: "GenerateSW",
workboxOptions: {
navigateFallback: "index.html",
skipWaiting: true,
importWorkboxFrom: "local",
runtimeCaching: [
{
urlPattern: /\.(?:png|svg|ico)$/,
handler: "CacheFirst",
},
],
},
},
configureWebpack: {
resolve: {
alias: {
"vue-i18n": "vue-i18n/dist/vue-i18n.runtime.esm-bundler.js",
},
},
},
pluginOptions: {
i18n: {
locale: "en",
fallbackLocale: "en",
localeDir: "locales",
fullInstall: true,
enableLegacy: false,
},
},
};