octoplex/.github/workflows/ci-build.yml
2025-04-03 20:10:48 +02:00

86 lines
2.1 KiB
YAML

name: ci-build
run-name: Building ${{ github.ref_name }}
on:
push:
branches:
- "**"
tags:
- "v[0-9]+*"
pull_request:
jobs:
lint:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: ludeeus/action-shellcheck@2.0.0
build:
runs-on: ubuntu-24.04
needs:
- lint
steps:
- name: install mise
run: |
curl https://mise.run | sh
echo "$HOME/.local/share/mise/bin" >> $GITHUB_PATH
echo "$HOME/.local/share/mise/shims" >> $GITHUB_PATH
- name: install OS dependencies
run: |
sudo apt-get -y update && \
sudo apt-get -y --no-install-recommends install \
nscd \
libx11-dev
- name: setup ffmpeg
uses: FedericoCarboni/setup-ffmpeg@v3
with:
ffmpeg-version: release
- name: checkout
uses: actions/checkout@v4
- name: Setup Go 1.24.2
uses: actions/setup-go@v5
with:
go-version: '1.24.2'
cache: false
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.64.2
- name: check_gomod
run: mise run check_gomod
- name: test
env:
DOCKER_API_VERSION: "1.45"
run: mise run test_ci
- name: test_integration
env:
DOCKER_API_VERSION: "1.45"
run: mise run test_integration_ci
release:
needs:
- lint
- build
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-24.04
permissions:
contents: write
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Go 1.24.2
uses: actions/setup-go@v5
with:
go-version: '1.24.2'
- name: install OS dependencies
run: |
sudo apt-get -y update && \
sudo apt-get -y --no-install-recommends install \
libx11-dev
- name: release
uses: goreleaser/goreleaser-action@v5
with:
version: '~> v2'
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}