donetick/.github/workflows/go-release.yml
2024-12-15 18:13:35 -05:00

77 lines
No EOL
2 KiB
YAML

name: Go Release
permissions:
contents: write
on:
push:
tags:
- 'v*'
jobs:
build:
runs-on: ubuntu-latest
name: Build and Push Docker Image
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Checkout Frontend
uses: actions/checkout@v4
with:
repository: 'donetick/frontend'
token: ${{ secrets.GITHUB_TOKEN }}
path: 'frontend-code'
# build frontend
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install Dependencies
run: |
cd frontend-code
npm install
- name: Build Frontend
run: |
cd frontend-code
npm run build-selfhosted
- name: Copy Frontend
run: |
rm -rf ./frontend/dist
cp -r frontend-code/dist ./frontend/dist
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.22
check-latest: true
cache: true
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
# either 'goreleaser' (default) or 'goreleaser-pro'
distribution: goreleaser
# 'latest', 'nightly', or a semver
version: latest
args: release --clean --skip=validate
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Your GoReleaser Pro key, if you are using the 'goreleaser-pro' distribution
# GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
# Log in to Docker Hub
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# Build and tag Docker image
- name: Build Docker image
run: |
docker build -t ${{ secrets.DOCKER_USERNAME }}/donetick:latest .
# Push Docker image
- name: Push Docker image
run: |
docker push ${{ secrets.DOCKER_USERNAME }}/donetick:latest