diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..71b8596 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,44 @@ +name: Singularity 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: Install useful utilities + run: apk update && apk add --no-cache tree figlet wget + + - name: Build and test container + run: | + for DIRECTORY in * + do + if [ -d $DIRECTORY ]; then + if [[ $DIRECTORY != 'images' ]]; then + cd $DIRECTORY + + if [ ! -f .ignore ]; then + 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 + 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