Skip to content

bindings-go

bindings-go #139

Workflow file for this run

# libpathrs: safe path resolution on Linux
# Copyright (C) 2019-2024 Aleksa Sarai <cyphar@cyphar.com>
# Copyright (C) 2019-2024 SUSE LLC
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License along
# with this program. If not, see <https://www.gnu.org/licenses/>.
on:
push:
branches: [ main ]
tags:
- 'v*'
pull_request:
branches: [ main ]
release:
types: [ published ]
schedule:
- cron: '0 0 * * *'
name: bindings-go
env:
GO_VERSION: 1.22.x
jobs:
lint:
permissions:
contents: read
pull-requests: read
checks: write # to allow the action to annotate code in the pr.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Build and install libpathrs.so.
- uses: dtolnay/rust-toolchain@stable
- name: build libpathrs
run: make release
- name: install libpathrs
run: sudo ./install.sh --libdir=/usr/lib
# Run golangci-lint.
- uses: golangci/golangci-lint-action@v6
with:
version: v1.61
working-directory: go-pathrs
go-fix:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
# Build and install libpathrs.so.
- uses: dtolnay/rust-toolchain@stable
- name: build libpathrs
run: make release
- name: install libpathrs
run: sudo ./install.sh --libdir=/usr/lib
# Run go-fix.
- uses: actions/setup-go@v5
with:
go-version: "${{ env.GO_VERSION }}"
- name: run go fix
run: |
cd go-pathrs
go fix ./...
git diff --exit-code
smoke-test:
strategy:
fail-fast: false
matrix:
go-version: ["1.18.x", "1.21.x", "1.22.x"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Build and install libpathrs.so.
- uses: dtolnay/rust-toolchain@stable
- name: build libpathrs
run: make release
- name: install libpathrs
run: sudo ./install.sh --libdir=/usr/lib
# Setup go.
- name: install go ${{ matrix.go-version }}
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
check-latest: true
# Run smoke-tests.
- run: make -C examples/go smoke-test
complete:
needs:
- lint
- go-fix
- smoke-test
runs-on: ubuntu-latest
steps:
- run: echo "Go CI jobs completed successfully."