chore(tooling): add build, deploy and release actions workflow steps
Some checks failed
/ test (push) Successful in 11s
/ build (push) Successful in 16s
/ publish (push) Has been cancelled
/ deploy (push) Has been cancelled

This commit is contained in:
Julien Dessaux 2025-03-13 01:26:18 +01:00
parent 76b31ba945
commit 08828efbb4
Signed by: adyxax
GPG key ID: F92E51B86E07177E

View file

@ -4,15 +4,6 @@ on:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
fmt:
runs-on: 'self-hosted'
steps:
- uses: 'actions/checkout@v4'
- uses: 'actions/setup-go@v5'
with:
go-version-file: 'go.mod'
- run: |
make tidy no-dirty
test: test:
runs-on: 'self-hosted' runs-on: 'self-hosted'
steps: steps:
@ -20,5 +11,64 @@ jobs:
- uses: 'actions/setup-go@v5' - uses: 'actions/setup-go@v5'
with: with:
go-version-file: 'go.mod' go-version-file: 'go.mod'
- run: | - name: 'fmt'
run: |
make tidy no-dirty
- name: 'check'
run: |
make check tidy no-dirty make check tidy no-dirty
build:
if: "${{ startsWith(github.ref, 'refs/tags/') }}"
needs:
- 'test'
runs-on: 'self-hosted'
steps:
- uses: 'actions/checkout@v4'
- uses: 'actions/setup-go@v5'
with:
go-version-file: 'go.mod'
- name: 'build'
run: |
printf '%s' "$GIT_CRYPT_SECRET" | base64 -d > secret
git-crypt unlock secret
make build
env:
GIT_CRYPT_SECRET: '${{ secrets.GIT_CRYPT }}'
- uses: 'actions/upload-artifact@v3'
with:
if-no-files-found: 'error'
name: 'ods'
path: 'ods'
deploy:
needs:
- 'build'
runs-on: 'self-hosted'
steps:
- uses: 'actions/download-artifact@v3'
with:
name: 'ods'
- run: |
umask 077
printf '%s' "$SSH_PRIVATE_KEY" > private_key
SSHOPTS="-i private_key -o StrictHostKeyChecking=accept-new"
rsync -e "ssh ${SSHOPTS}" ods root@ods.adyxax.org:/usr/local/bin/
ssh ${SSHOPTS} root@ods.adyxax.org "systemctl restart ods"
env:
SSH_PRIVATE_KEY: '${{ secrets.SSH_PRIVATE_KEY }}'
publish:
needs:
- 'build'
runs-on: 'self-hosted'
steps:
- uses: 'actions/download-artifact@v3'
with:
name: 'ods'
- uses: 'actions/forgejo-release@v2'
with:
direction: 'upload'
tag: '${{ github.ref_name }}'
sha: '${{ github.sha }}'
release-dir: './'
token: '${{ env.GITHUB_TOKEN }}'
hide-archive-link: true
release-notes-assistant: true