name: ci/ci on: push: branches: [main] pull_request: branches: [main] permissions: contents: read jobs: codespell: name: Check for spelling errors runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Annotate locations with typos uses: "https://github.com/codespell-project/codespell-problem-matcher@v1" - name: Codespell uses: "https://github.com/codespell-project/actions-codespell@v2" with: check_filenames: true check_hidden: true skip: ./.git lint: name: GonalgCI lint runs-on: ubuntu-latest needs: - codespell if: ${{ success() }} steps: - name: pull uses: actions/checkout@v4 - name: download golangci-lint run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh - name: install golangci-lint run: sh ./install.sh -s v1.62.2 - name: lint run: ./bin/golangci-lint run compile: name: Make sure build does not fail runs-on: ubuntu-latest needs: - codespell - lint if: ${{ success() }} steps: - uses: actions/checkout@v4 name: checkout - name: install alsa devel run: apt update && apt install libasound2-dev -y - uses: https://code.forgejo.org/actions/setup-go@v5 name: install go with: go-version-file: './go.mod' - run: go version name: Go version - run: make dep name: install dependencies - run: make build name: build app notify-fail: name: notify-fail runs-on: ubuntu-latest needs: - codespell - lint - compile if: ${{ failure() }} env: SERVER_URL: ${{ secrets.GOTIFY_SERVER_URL }} TOKEN: ${{ secrets.GOTIFY_TOKEN }} steps: - name: gotify run: |- curl "${SERVER_URL}?token=${TOKEN}" \ -F "title='CI failed'" \ -F "message='Something failed at ${GITHUB_REPOSITORY} for user ${GITHUB_ACTOR}'" \ -F "priority=7" &> /dev/null