From 6f0ed4b8c400cd53ccb42eb83c52ead483646b78 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Thu, 29 Jul 2021 12:12:49 +0200 Subject: [PATCH] github ci: Add Github Actions CI Add Github Actions and delete defunct Travis CI. --- .github/workflows/ci.yml | 33 ++++++++++++++++++++++++++++++ .travis.yml | 43 ---------------------------------------- Makefile | 22 ++++++++++++++++++++ README.md | 2 +- 4 files changed, 56 insertions(+), 44 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..c1b509d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,33 @@ +name: CI + +on: + push: + pull_request: + schedule: + - cron: '0 12 * * *' # Every day noon UTC + +jobs: + build: + runs-on: ubuntu-latest + steps: + + # 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@v2 + with: + fetch-depth: 0 # Make "git describe" work + + # CI platform specific setup steps happen here + - run: sudo apt-get install -qq fuse3 libssl-dev + + # Build & upload static binary + - run: ./build-without-openssl.bash + - uses: actions/upload-artifact@v2 + with: + name: gocryptfs static binary + path: gocryptfs + + # Actual test steps are in the Makefile + - run: make ci diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 9cfc238..0000000 --- a/.travis.yml +++ /dev/null @@ -1,43 +0,0 @@ -language: go -os: linux - -# fuse on travis -sudo: required -dist: bionic # Ubuntu 18.04 "Bionic", https://docs.travis-ci.com/user/reference/bionic/ - -env: - - GO111MODULE=on - -git: - depth: 300 - -# Build with the lastest relevant Go versions -# Relevance is determined from: -# * https://golang.org/dl/ -# * https://packages.debian.org/search?keywords=golang&searchon=names&exact=1&suite=all§ion=all -# * https://packages.ubuntu.com/search?keywords=golang&searchon=names&exact=1&suite=all§ion=all -go: - - 1.11.x # Debian 10 "Buster" - - 1.12.x # Ubuntu 19.10 - - 1.13.x # Debian 11 "Bullseye" - - stable - -before_install: - - sudo apt-get install -qq fuse - - sudo modprobe fuse - - sudo chmod 666 /dev/fuse - - sudo chown root:$USER /etc/fuse.conf - -script: - - openssl version - - df -Th / /tmp - - env GO111MODULE=on go build - - ./build-without-openssl.bash - - ./build.bash - - ./gocryptfs -speed - - ./test.bash - - make root_test - - ./crossbuild.bash - - echo "rebuild with locked dependencies" - - go mod vendor - - ./build.bash -mod=vendor diff --git a/Makefile b/Makefile index bdc05cf..8720678 100644 --- a/Makefile +++ b/Makefile @@ -23,3 +23,25 @@ install: install -Dm644 -t "$(DESTDIR)/usr/share/man/man1/" Documentation/gocryptfs.1 install -Dm644 -t "$(DESTDIR)/usr/share/man/man1/" Documentation/gocryptfs-xray.1 install -Dm644 -t "$(DESTDIR)/usr/share/licenses/gocryptfs" LICENSE + +.phony: ci +ci: + uname -a ; go version ; openssl version + df -Th / /tmp /var/tmp + + ./build-without-openssl.bash + ./build.bash + ./test.bash + make root_test + ./crossbuild.bash + + echo "Rebuild with locked dependencies" + # Download dependencies to "vendor" directory + go mod vendor + # Delete global cache + go clean -modcache + # GOPROXY=off makes sure we fail instead of making network requests + # (we should not need any!) + GOPROXY=off ./build.bash -mod=vendor + # Delete "vendor" dir + git clean -dxff diff --git a/README.md b/README.md index 503c037..7f72973 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![gocryptfs](Documentation/gocryptfs-logo.png)](https://nuetzlich.net/gocryptfs/) -[![Build Status](https://travis-ci.org/rfjakob/gocryptfs.svg?branch=master)](https://travis-ci.org/rfjakob/gocryptfs) +[![CI](https://github.com/rfjakob/gocryptfs/actions/workflows/ci.yml/badge.svg)](https://github.com/rfjakob/gocryptfs/actions/workflows/ci.yml) [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Go Report Card](https://goreportcard.com/badge/github.com/rfjakob/gocryptfs)](https://goreportcard.com/report/github.com/rfjakob/gocryptfs) [![Latest release](https://img.shields.io/github/release/rfjakob/gocryptfs.svg)](https://github.com/rfjakob/gocryptfs/releases)