Loading .github/workflows/build-test.yml 0 → 100644 +100 −0 Original line number Diff line number Diff line name: Build and Test on: workflow_dispatch: #push: #branches: concurrency: group: "${{ github.ref }}" cancel-in-progress: true env: NDIP_DOCKER_USER: "${{ secrets.NDIP_DOCKER_USER }}" NDIP_DOCKER_PASSWORD: "${{ secrets.NDIP_DOCKER_PASSWORD }}" NDIP_DOCKER_REPOSITORY: "${{ secrets.NDIP_DOCKER_REPOSITORY }}" jobs: lint-check: runs-on: ubuntu-latest timeout-minutes: 60 env: GIT_STRATEGY: clone IMAGE_NAME: "${NDIP_DOCKER_REPOSITORY}/${{ github.repository }}" steps: - uses: actions/checkout@v4.1.0 with: fetch-depth: 20 lfs: true - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O - run: source rse-bash-modules.sh - run: func_rse_docker_cleanup - run: docker login -u $NDIP_DOCKER_USER -p $NDIP_DOCKER_PASSWORD $NDIP_DOCKER_REPOSITORY - run: export VERSION=$(cat pyproject.toml | grep "version =" | head -n 1 | awk '{ print $3 }' | tr -d '"') - run: docker build -f dockerfiles/Dockerfile --target source -t image . - run: docker run -u `id -u`:`id -g` image poetry run ruff check - run: docker run -u `id -u`:`id -g` image poetry run ruff format --check - run: docker run -u `id -u`:`id -g` image poetry run mypy . - run: docker tag image ${IMAGE_NAME}:src-${{ github.sha }} - run: docker push ${IMAGE_NAME}:src-${{ github.sha }} - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O if: always() - run: source rse-bash-modules.sh if: always() - run: func_rse_docker_cleanup if: always() unit-tests: needs: lint-check runs-on: ubuntu-latest timeout-minutes: 60 env: GIT_STRATEGY: clone IMAGE_NAME: "${NDIP_DOCKER_REPOSITORY}/${{ github.repository }}" steps: - uses: actions/checkout@v4.1.0 with: fetch-depth: 20 lfs: true - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O - run: source rse-bash-modules.sh - run: func_rse_docker_cleanup - run: docker login -u $NDIP_DOCKER_USER -p $NDIP_DOCKER_PASSWORD $NDIP_DOCKER_REPOSITORY - run: export VERSION=$(cat pyproject.toml | grep "version =" | head -n 1 | awk '{ print $3 }' | tr -d '"') - run: mkdir reports - run: docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${{ github.sha }} poetry run coverage run - run: docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${{ github.sha }} poetry run coverage report - run: docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${{ github.sha }} poetry run coverage xml -o reports/coverage.xml - run: sed -i "s:<source>/src:<source>${{ github.workspace }}/${{ github.repository }}:" reports/coverage.xml # need to figure out coverage rules - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O if: always() - run: source rse-bash-modules.sh if: always() - run: func_rse_docker_cleanup if: always() docs-test: needs: lint-check runs-on: ubuntu-latest timeout-minutes: 60 env: GIT_STRATEGY: clone IMAGE_NAME: "${NDIP_DOCKER_REPOSITORY}/${{ github.repository }}" steps: - uses: actions/checkout@v4.1.0 with: fetch-depth: 20 lfs: true - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O - run: source rse-bash-modules.sh - run: func_rse_docker_cleanup - run: docker login -u $NDIP_DOCKER_USER -p $NDIP_DOCKER_PASSWORD $NDIP_DOCKER_REPOSITORY - run: export VERSION=$(cat pyproject.toml | grep "version =" | head -n 1 | awk '{ print $3 }' | tr -d '"') - run: docker run -u `id -u`:`id -g` ${IMAGE_NAME}:src-${{ github.sha }} bash build_docs.sh - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O if: always() - run: source rse-bash-modules.sh if: always() - run: func_rse_docker_cleanup if: always() Loading
.github/workflows/build-test.yml 0 → 100644 +100 −0 Original line number Diff line number Diff line name: Build and Test on: workflow_dispatch: #push: #branches: concurrency: group: "${{ github.ref }}" cancel-in-progress: true env: NDIP_DOCKER_USER: "${{ secrets.NDIP_DOCKER_USER }}" NDIP_DOCKER_PASSWORD: "${{ secrets.NDIP_DOCKER_PASSWORD }}" NDIP_DOCKER_REPOSITORY: "${{ secrets.NDIP_DOCKER_REPOSITORY }}" jobs: lint-check: runs-on: ubuntu-latest timeout-minutes: 60 env: GIT_STRATEGY: clone IMAGE_NAME: "${NDIP_DOCKER_REPOSITORY}/${{ github.repository }}" steps: - uses: actions/checkout@v4.1.0 with: fetch-depth: 20 lfs: true - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O - run: source rse-bash-modules.sh - run: func_rse_docker_cleanup - run: docker login -u $NDIP_DOCKER_USER -p $NDIP_DOCKER_PASSWORD $NDIP_DOCKER_REPOSITORY - run: export VERSION=$(cat pyproject.toml | grep "version =" | head -n 1 | awk '{ print $3 }' | tr -d '"') - run: docker build -f dockerfiles/Dockerfile --target source -t image . - run: docker run -u `id -u`:`id -g` image poetry run ruff check - run: docker run -u `id -u`:`id -g` image poetry run ruff format --check - run: docker run -u `id -u`:`id -g` image poetry run mypy . - run: docker tag image ${IMAGE_NAME}:src-${{ github.sha }} - run: docker push ${IMAGE_NAME}:src-${{ github.sha }} - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O if: always() - run: source rse-bash-modules.sh if: always() - run: func_rse_docker_cleanup if: always() unit-tests: needs: lint-check runs-on: ubuntu-latest timeout-minutes: 60 env: GIT_STRATEGY: clone IMAGE_NAME: "${NDIP_DOCKER_REPOSITORY}/${{ github.repository }}" steps: - uses: actions/checkout@v4.1.0 with: fetch-depth: 20 lfs: true - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O - run: source rse-bash-modules.sh - run: func_rse_docker_cleanup - run: docker login -u $NDIP_DOCKER_USER -p $NDIP_DOCKER_PASSWORD $NDIP_DOCKER_REPOSITORY - run: export VERSION=$(cat pyproject.toml | grep "version =" | head -n 1 | awk '{ print $3 }' | tr -d '"') - run: mkdir reports - run: docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${{ github.sha }} poetry run coverage run - run: docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${{ github.sha }} poetry run coverage report - run: docker run -u `id -u`:`id -g` -v `pwd`/reports:/src/reports ${IMAGE_NAME}:src-${{ github.sha }} poetry run coverage xml -o reports/coverage.xml - run: sed -i "s:<source>/src:<source>${{ github.workspace }}/${{ github.repository }}:" reports/coverage.xml # need to figure out coverage rules - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O if: always() - run: source rse-bash-modules.sh if: always() - run: func_rse_docker_cleanup if: always() docs-test: needs: lint-check runs-on: ubuntu-latest timeout-minutes: 60 env: GIT_STRATEGY: clone IMAGE_NAME: "${NDIP_DOCKER_REPOSITORY}/${{ github.repository }}" steps: - uses: actions/checkout@v4.1.0 with: fetch-depth: 20 lfs: true - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O - run: source rse-bash-modules.sh - run: func_rse_docker_cleanup - run: docker login -u $NDIP_DOCKER_USER -p $NDIP_DOCKER_PASSWORD $NDIP_DOCKER_REPOSITORY - run: export VERSION=$(cat pyproject.toml | grep "version =" | head -n 1 | awk '{ print $3 }' | tr -d '"') - run: docker run -u `id -u`:`id -g` ${IMAGE_NAME}:src-${{ github.sha }} bash build_docs.sh - run: curl https://code.ornl.gov/rse-deployment/rse-sharables/raw/master/rse-bash-modules.sh -O if: always() - run: source rse-bash-modules.sh if: always() - run: func_rse_docker_cleanup if: always()