Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
vscodev committed Jul 18, 2024
0 parents commit d6ce4d7
Show file tree
Hide file tree
Showing 13 changed files with 473 additions and 0 deletions.
49 changes: 49 additions & 0 deletions .github/workflows/docker-image-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Publish Docker dev image

on:
workflow_dispatch:

jobs:
docker:
name: Push Docker dev image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
repository: ${{ secrets.GH_REPO }}
token: ${{ secrets.GH_PAT }}

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18.x'
cache: 'yarn'
cache-dependency-path: web/yarn.lock

- name: Build frontend
run: |
yarn install --frozen-lockfile --non-interactive
yarn quasar build
cp -a dist/spa/. $GITHUB_WORKSPACE/public/dist/
working-directory: ./web

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64
push: true
tags: vscodev/kikoeru:dev
49 changes: 49 additions & 0 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Publish Docker image

on:
workflow_dispatch:

jobs:
docker:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
repository: ${{ secrets.GH_REPO }}
token: ${{ secrets.GH_PAT }}

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18.x'
cache: 'yarn'
cache-dependency-path: web/yarn.lock

- name: Build frontend
run: |
yarn install --frozen-lockfile --non-interactive
yarn quasar build
cp -a dist/spa/. $GITHUB_WORKSPACE/public/dist/
working-directory: ./web

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/386,linux/arm/v6,linux/s390x
push: true
tags: vscodev/kikoeru:latest
81 changes: 81 additions & 0 deletions .github/workflows/linux-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: Linux Release

on:
workflow_dispatch:

permissions:
contents: write

env:
CGO_ENABLED: 1

jobs:
release:
name: Release
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
platform:
- amd64
- arm64

steps:
- name: Checkout
uses: actions/checkout@v4
with:
repository: ${{ secrets.GH_REPO }}
token: ${{ secrets.GH_PAT }}
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.21'
check-latest: true

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'
cache: 'yarn'
cache-dependency-path: web/yarn.lock

- name: Install dependencies for arm64
if: matrix.platform == 'arm64'
run: |
sudo apt-get update
sudo apt install gcc-aarch64-linux-gnu
- name: Build frontend
run: |
yarn install --frozen-lockfile --non-interactive
yarn quasar build
cp -a dist/spa/. $GITHUB_WORKSPACE/public/dist/
working-directory: ./web

- name: Build
run: |
go mod download
if [ "${{ matrix.platform }}" == "arm64" ]; then
export CC=aarch64-linux-gnu-gcc
fi
GOARCH=${{ matrix.platform }} go build -ldflags '-s -w -extldflags "-static"' -o kikoeru
- name: Package
run: |
dist="kikoeru-linux-${{ matrix.platform }}"
mkdir $dist
cp kikoeru $dist
tar zcf "$dist.tar.gz" $dist
- name: Publish
uses: softprops/action-gh-release@v2
with:
name: v0.0.1
tag_name: v0.0.1
body: |
When updating to a new version, it may not be compatible with previous ones. If an error occurs, you can manually delete the `data` folder and try again, everything would work but the whole data will be lost.
files: |
kikoeru-*.*
72 changes: 72 additions & 0 deletions .github/workflows/macos-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: macOS Release

on:
workflow_dispatch:

permissions:
contents: write

env:
CGO_ENABLED: 1

jobs:
release:
name: Release
runs-on: macos-latest

strategy:
fail-fast: false
matrix:
platform:
- amd64
- arm64

steps:
- name: Checkout
uses: actions/checkout@v4
with:
repository: ${{ secrets.GH_REPO }}
token: ${{ secrets.GH_PAT }}
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.21'
check-latest: true

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'
cache: 'yarn'
cache-dependency-path: web/yarn.lock

- name: Build frontend
run: |
yarn install --frozen-lockfile --non-interactive
yarn quasar build
cp -a dist/spa/. $GITHUB_WORKSPACE/public/dist/
working-directory: ./web

- name: Build
run: |
go mod download
GOARCH=${{ matrix.platform }} go build -ldflags "-s -w" -o kikoeru
- name: Package
run: |
dist="kikoeru-macos-${{ matrix.platform }}"
mkdir $dist
cp kikoeru $dist
tar zcf "$dist.tar.gz" $dist
- name: Publish
uses: softprops/action-gh-release@v2
with:
name: v0.0.1
tag_name: v0.0.1
body: |
When updating to a new version, it may not be compatible with previous ones. If an error occurs, you can manually delete the `data` folder and try again, everything would work but the whole data will be lost.
files: |
kikoeru-*.*
74 changes: 74 additions & 0 deletions .github/workflows/windows-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: Windows Release

on:
workflow_dispatch:

permissions:
contents: write

env:
CGO_ENABLED: 1

jobs:
release:
name: Release
runs-on: windows-latest

strategy:
fail-fast: false
matrix:
platform:
- amd64

steps:
- name: Checkout
uses: actions/checkout@v4
with:
repository: ${{ secrets.GH_REPO }}
token: ${{ secrets.GH_PAT }}
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.21'
check-latest: true

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'
cache: 'yarn'
cache-dependency-path: web/yarn.lock

- name: Build frontend
shell: bash
run: |
yarn install --frozen-lockfile --non-interactive
yarn quasar build
cp -a dist/spa/. $GITHUB_WORKSPACE/public/dist/
working-directory: ./web

- name: Build
shell: bash
run: |
go mod download
GOARCH=${{ matrix.platform }} go build -ldflags "-s -w" -o kikoeru.exe
- name: Package
shell: bash
run: |
dist="kikoeru-windows-${{ matrix.platform }}"
mkdir $dist
cp kikoeru.exe $dist
7z a "$dist.zip" $dist
- name: Publish
uses: softprops/action-gh-release@v2
with:
name: v0.0.1
tag_name: v0.0.1
body: |
When updating to a new version, it may not be compatible with previous ones. If an error occurs, you can manually delete the `data` folder and try again, everything would work but the whole data will be lost.
files: |
kikoeru-*.*
31 changes: 31 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Created by .ignore support plugin (hsz.mobi)
### Go template
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib

# Test binary, built with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Dependency directories (remove the comment below to include it)
# vendor/
public/dist/*
!public/dist/README.md

# JetBrains
.idea/

# MacOS
.DS_Store
.AppleDouble
.LSOverride

# Kikoeru
kikoeru
kikoeru.log
Loading

0 comments on commit d6ce4d7

Please sign in to comment.