name: CI on: push: pull_request: workflow_dispatch: schedule: - cron: '0 12 * * *' # Every day noon UTC jobs: build: strategy: matrix: # Each major Go release is supported until there are two newer major releases. # https://go.dev/doc/devel/release#policy go: - "1.18.x" # Ubuntu 22.04 LTS "jammy" - "1.19.x" # Debian bookworm, bullseye-backports - "1.20.x" - "1.21.x" - "oldstable" # 2nd-latest Golang upstream stable - "stable" # Latest Go upstream stable # Don't cancel everything when one Go version fails fail-fast: false runs-on: ubuntu-latest steps: - name: Install Go ${{ matrix.go }} uses: actions/setup-go@v3 with: go-version: ${{ matrix.go }} # Looks like Github Actions leaks fds to child processes # https://github.com/actions/runner/issues/1188 - run: ls -l /proc/self/fd - uses: actions/checkout@v3 with: fetch-depth: 0 # Make "git describe" work # CI platform specific setup steps happen here - run: sudo apt-get install -qq fuse3 libssl-dev # Fix "/usr/bin/fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf" - run: echo user_allow_other | sudo tee -a /etc/fuse.conf # Build & upload static binary - run: ./build-without-openssl.bash - uses: actions/upload-artifact@v3 with: name: gocryptfs static binary (Go ${{ matrix.go }}) path: gocryptfs # Actual test steps are in the Makefile - run: make ci