104 lines
2.7 KiB
YAML
104 lines
2.7 KiB
YAML
name: release-message-nest
|
|
|
|
on:
|
|
push:
|
|
# run only against tags
|
|
tags:
|
|
- '*'
|
|
# workflow_dispatch:
|
|
# inputs:
|
|
# version:
|
|
# description: 'Release version tag (e.g., v1.2.3).'
|
|
# required: true
|
|
# type: string
|
|
# release:
|
|
# types: [published]
|
|
|
|
permissions:
|
|
contents: write
|
|
packages: write
|
|
# issues: write
|
|
|
|
jobs:
|
|
|
|
build-and-release-message-nest:
|
|
runs-on: ubuntu-latest
|
|
|
|
env:
|
|
NODE_ENV: prod
|
|
CUSTOM_PROJ_NAME: Message-Nest
|
|
DOCKER_IMAGE_NAME: message-nest
|
|
|
|
steps:
|
|
- uses: actions/checkout@main
|
|
with:
|
|
fetch-depth: 0
|
|
- run: git fetch --force --tags
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v3
|
|
|
|
- name: Docker Login to Docker Hub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: docker.io
|
|
username: ${{ secrets.DOCKER_USER }}
|
|
password: ${{ secrets.DOCKER_PASSWD }}
|
|
|
|
- name: Docker Login to GitHub Container Registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.REPO_GITHUB_TOKEN }}
|
|
|
|
- uses: actions/setup-go@main
|
|
with:
|
|
go-version: '>=1.20.2'
|
|
cache: true
|
|
|
|
- name: Install npm dependencies
|
|
run: npm i
|
|
working-directory: web/
|
|
|
|
- name: Run npm build
|
|
run: export NODE_ENV=prod && npm run build
|
|
working-directory: web/
|
|
|
|
- name: Check build static
|
|
run: ls dist/ -la
|
|
working-directory: web/
|
|
|
|
- name: Git File Restore
|
|
run: git checkout .
|
|
working-directory: web/
|
|
|
|
- name: Get Release version
|
|
id: get_version
|
|
run: |
|
|
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
|
echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: Update Local Version File
|
|
run: echo ${{ steps.get_version.outputs.VERSION }} > .release_version
|
|
|
|
# More assembly might be required: Docker logins, GPG, etc. It all depends
|
|
# on your needs.
|
|
- uses: goreleaser/goreleaser-action@v5
|
|
with:
|
|
# either 'goreleaser' (default) or 'goreleaser-pro':
|
|
distribution: goreleaser
|
|
version: latest
|
|
args: release --clean
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.REPO_GITHUB_TOKEN }}
|
|
GORELEASER_CURRENT_TAG: ${{ steps.get_version.outputs.VERSION }}
|
|
# Your GoReleaser Pro key, if you are using the 'goreleaser-pro'
|
|
# distribution:
|
|
# GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
|
|
|
|