From ec5886e3548708c34b29177c9f0cbb3ef30d099f Mon Sep 17 00:00:00 2001 From: Ivan Cao-Berg Date: Thu, 18 Apr 2024 18:15:31 -0400 Subject: [PATCH] Added GitHub Actions --- .github/workflows/main.yml | 38 ++++++++++++ .github/workflows/pretty.yml | 109 +++++++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+) create mode 100644 .github/workflows/main.yml create mode 100644 .github/workflows/pretty.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..3f6b0d1 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,38 @@ +name: Container build +on: [push, pull_request] +jobs: + build: + name: Build + runs-on: ubuntu-latest + strategy: + matrix: + singularity_version: + - '3.7.3' + container: + image: quay.io/singularity/singularity:v${{ matrix.singularity_version }} + options: --privileged + steps: + - name: Check out code for the container build + uses: actions/checkout@v1 + + - name: Build and test container + run: | + for DIRECTORY in * + do + if [ -d $DIRECTORY ]; then + if [ $DIRECTORY != 'images' ]; then + cd $DIRECTORY + + echo "Building container" + bash ./build.sh + + if [ -f ./test.sh ]; then + echo "Running tests" + bash ./test.sh + else + echo "Test file not found. Skipping tests." + fi + cd .. + fi + fi + done diff --git a/.github/workflows/pretty.yml b/.github/workflows/pretty.yml new file mode 100644 index 0000000..0914987 --- /dev/null +++ b/.github/workflows/pretty.yml @@ -0,0 +1,109 @@ +name: Publishing ready +on: [push, pull_request] +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v2 + + - name: Install useful utilities + run: sudo apt-get install -y tree + + - name: Checking if LICENSE exists + run: | + FILE=LICENSE + if [ -f "$FILE" ]; then + echo "File "$FILE" exists." + exit 0 + else + echo "File $FILE does not exist." + exit 1 + fi + + - name: Checking if Apache License Version 2.0, January 2004 is being used + run: | + if grep --quiet "Apache License" LICENSE && grep --quiet "Version 2.0, January 2004" LICENSE; then + echo "Using Apache License Version 2.0, January 2004" + exit 0 + else + echo "Not using Apache License Version 2.0, January 2004" + exit 1 + fi + + - name: Checking if CONTRIBUTING guide exists + run: | + FILE=CONTRIBUTING.md + if [ -f "$FILE" ]; then + echo "File "$FILE" exists." + exit 0 + else + echo "File $FILE does not exist." + exit 1 + fi + + - name: Checking if README file exists + run: | + FILE=README.md + if [ -f "$FILE" ]; then + echo "File "$FILE" exists." + exit 0 + else + echo "File $FILE does not exist." + exit 1 + fi + + - name: Checking if copyrighted to Pittsburgh Supercomputing Center + run: | + if grep --quiet "Pittsburgh Supercomputing Center. All Rights Reserved." README.md; then + echo "Copyright (c) Pittsburgh Supercomputing Center" + exit 0 + else + echo "No reference to Pittsburgh Supercomputing Center" + exit 1 + fi + + - name: Checking if there exists at least one Singularity definition file + run: | + FILE=Singularity + if [ $(find . -name "$FILE" -mmin -5 | wc -l) -gt 0 ]; then + echo "File "$FILE" was found."; + exit 0 + else + echo "File "$FILE" was not found."; + exit 1 + fi + + - name: Checking if there exists at least one build script + run: | + FILE=build.sh + if [ $(find . -name "$FILE" -mmin -5 | wc -l) -gt 0 ]; then + echo "File "$FILE" was found."; + exit 0 + else + echo "File "$FILE" was not found."; + exit 1 + fi + + - name: Checking if there exists at least one remote build script + run: | + FILE=rbuild.sh + if [ $(find . -name "$FILE" -mmin -5 | wc -l) -gt 0 ]; then + echo "File "$FILE" was found."; + exit 0 + else + echo "File "$FILE" was not found."; + exit 1 + fi + + - name: Checking if there exists at least one test script + run: | + FILE=test.sh + if [ $(find . -name "$FILE" -mmin -5 | wc -l) -gt 0 ]; then + echo "File "$FILE" was found."; + exit 0 + else + echo "File "$FILE" was not found."; + exit 1 + fi