Skip to content

Build Artalk

Build Artalk #17

Workflow file for this run

name: Build Artalk
on:
workflow_dispatch:
workflow_call:
inputs:
version:
required: true
type: string
dry_run:
required: true
type: boolean
jobs:
test:
runs-on: ubuntu-latest
name: Build Artalk
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 'stable'
check-latest: true
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Clone Repo
run: |
export LATEST_APP=$(wget -qO- https://api.github.com/repos/ArtalkJS/Artalk/tags | gawk -F '["v]' '/name/{print "v"$5;exit}')
git clone -b $LATEST_APP https://github.com/ArtalkJS/Artalk
npm install -g pnpm
- name: Build Frontend
run: |
cd Artalk
make build-frontend
cd ..
- name: Build binary
run: |
cd Artalk
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 make all && cp conf/artalk.example.yml bin/artalk.yml && cd bin && tar -czvf ../Artalk-linux-amd64.tar.gz * && cd ..
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 make all && cp conf/artalk.example.yml bin/artalk.yml && cd bin && tar -czvf ../Artalk-windows-amd64.tar.gz * && cd ..
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 make all && cp conf/artalk.example.yml bin/artalk.yml && cd bin && tar -czvf ../Artalk-darwin-amd64.tar.gz * && cd ..
GOOS=freebsd GOARCH=amd64 CGO_ENABLED=0 make all && cp conf/artalk.example.yml bin/artalk.yml && cd bin && tar -czvf ../Artalk-freebsd-amd64.tar.gz * && cd ..
cd ..
- name: Upload artifact
uses: actions/upload-artifact@main
with:
name: artalk-pre-built
path: |
Artalk/Artalk-linux-amd64.tar.gz
Artalk/Artalk-windows-amd64.tar.gz
Artalk/Artalk-darwin-amd64.tar.gz
Artalk/Artalk-freebsd-amd64.tar.gz
- name: Generate release tag
id: tag
run: echo "release_tag=$(wget -qO- https://api.github.com/repos/ArtalkJS/Artalk/tags | gawk -F '["v]' '/name/{print "v"$5;exit}')" >> $GITHUB_OUTPUT
- name: Create release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.tag.outputs.release_tag }}
files: |
Artalk/Artalk-linux-amd64.tar.gz
Artalk/Artalk-windows-amd64.tar.gz
Artalk/Artalk-darwin-amd64.tar.gz
Artalk/Artalk-freebsd-amd64.tar.gz
- name: Delete workflow runs
uses: Mattraks/delete-workflow-runs@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository: 'SinzMise/artalk-deploy'
retain_days: 1
keep_minimum_runs: 8