add github actions

This commit is contained in:
Maxi Quoß
2023-01-28 23:41:47 +01:00
parent b1d4257013
commit 7286167586
4 changed files with 145 additions and 2 deletions

40
.github/workflows/deploy-binary.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: Publish binaries
on:
push:
tags:
- "v3.*.*"
jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
# pull code
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
# install latest node
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: latest
# build sveltekit frontend
- name: Build frontend
run: npm --prefix=./frontend ci && npm --prefix=./frontend run build && cp -r ./frontend/build/* ./backend/pb_public/
# install latest golang
- name: Set up Go
uses: actions/setup-go@v3
# build
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v4
with:
distribution: goreleaser
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

59
.github/workflows/deploy-docker.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
name: Publish docker images
on:
push:
tags:
- "v3.*.*"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check Out Repo
uses: actions/checkout@v3
- name: Prepare tags
id: prep
run: |
DOCKER_IMAGE=${{ secrets.DOCKER_HUB_USERNAME }}/upsnap
VERSION=${GITHUB_REF#refs/tags/}
TAGS="${DOCKER_IMAGE}:${VERSION},${DOCKER_IMAGE}:${VERSION:0:2},${DOCKER_IMAGE}:latest"
echo ::set-output name=tags::${TAGS}
- 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: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v3
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7
builder: ${{ steps.buildx.outputs.name }}
push: true
tags: ${{ steps.prep.outputs.tags }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}

44
.goreleaser.yml Normal file
View File

@@ -0,0 +1,44 @@
project_name: upsnap
dist: .builds
before:
hooks:
- go mod tidy
builds:
- main: ./backend
binary: upsnap
ldflags:
- -s -w -X github.com/seriousm4x/UpSnap.Version={{ .Version }}
env:
- CGO_ENABLED=0
goos:
- linux
- windows
- darwin
goarch:
- amd64
- arm64
- arm
goarm:
- 7
ignore:
- goos: windows
goarch: arm
- goos: darwin
goarch: arm
release:
draft: true
archives:
- format: zip
files:
- LICENSE*
checksum:
name_template: "checksums.txt"
snapshot:
name_template: "{{ incpatch .Version }}-next"

View File

@@ -52,5 +52,5 @@ Open up [http://localhost:5173/](http://localhost:5173/)
- [x] [~~#32 API available?~~](https://github.com/seriousm4x/UpSnap/issues/32)
- [x] ~~add db import from v2~~
- [ ] move docker images to github packages and setup new workflow file
- [ ] create dockerfile and docker-compose.yml
- [x] ~~move docker images to github packages and setup new workflow file~~
- [x] ~~create dockerfile and docker-compose.yml~~