From b76c770cab34e52aca4483d0cef69a2ff595bd45 Mon Sep 17 00:00:00 2001 From: Andreas Holm <60451789+holm10@users.noreply.github.com> Date: Fri, 10 Jan 2025 11:59:21 -0800 Subject: [PATCH] Adds checks on each job --- .github/workflows/build-test-wheel.yml | 85 +++++++++++++++++++++++++- .github/workflows/wheeltest.yml | 5 +- 2 files changed, 84 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-test-wheel.yml b/.github/workflows/build-test-wheel.yml index 26ef98ae..2ee57208 100644 --- a/.github/workflows/build-test-wheel.yml +++ b/.github/workflows/build-test-wheel.yml @@ -14,25 +14,69 @@ jobs: tests: [fulltests, unittests/D+C, unittests/D_mols, unittests/D_only, unittests/slab_D_only] steps: - uses: actions/checkout@v4 + + - name: Set UBUNTU tags env variables. + if: matrix.os == 'ubuntu-latest' + run: | + # Set "checking" variable to false by default. + echo "has_tags=false" >> $GITHUB_ENV + # Get your last commit message, not the merge commit. + text=$(git log -1 --no-merges --pretty=%B) + # Read the commit message into an array split by "#". + readarray -d "#" -t commit_message <<< "$text" + # Sanity check. + echo "the tags are: ${commit_message[1]}" + # Add tags and overwrite "checking" variable to true if there are tags. + if [[ "${commit_message[1]}" == *"@"* ]]; then + echo "spec_tags=${commit_message[1]}" >> $GITHUB_ENV + fi + + - name: Set macOS tags env variables. + if: (matrix.os == 'macos-13') || (matrix.os == 'macos-14') + run: | + + # Set "checking" variable to false by default. + echo "has_tags=false" >> $GITHUB_ENV + # Get your last commit message, not the merge commit. + text=$(git log -1 --no-merges --pretty=%B) + # Read the commit message into an array split by "#". + echo $(echo $text|tr -d '\n') + commit_args=${text#*#} + # Sanity check. + echo "the tags are: ${commit_message[1]}" + # Add tags and overwrite "checking" variable to true if there are tags. + if [[ "${commit_args}" == *"@"* ]]; then + echo "spec_tags=${commit_args}" >> $GITHUB_ENV + fi + - name: Set up Python ${{ matrix.python-version }} + if: ${{ ! contains(env.spec_tags, '@notest') }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} + - name: Install pip dependencies + if: ${{ ! contains(env.spec_tags, '@notest') }} run: | python -m pip install --upgrade pip python -m pip install forthon>=0.10.7 numpy==1.26.4 h5py python -m pip install flake8 python -m pip install pytest-isolate pytest-xdist + - name: Build UEDGE + if: ${{ ! contains(env.spec_tags, '@notest') }} run: | python -m pip install . -C "--build-option=--serial" + - name: Return to pytests branch + if: ${{ ! contains(env.spec_tags, '@notest') }} uses: actions/checkout@v4 with: ref: pytests-develop repository: LLNL/UEDGE + - name: Test with pytest + if: ${{ ! contains(env.spec_tags, '@notest') }} run: | # Create a clean UEDGE instance for every test pytest --isolate --tb=long pytests/${{ matrix.tests }} -s @@ -41,7 +85,7 @@ jobs: build_wheels: name: Build wheels on ${{ matrix.os }} for Python ${{ matrix.pyver }} # if: github.event_name == 'pull_request' - needs: run-all-tests +# needs: run-all-tests runs-on: ${{ matrix.os }} continue-on-error: true strategy: @@ -54,8 +98,42 @@ jobs: - name: Checks out repo uses: actions/checkout@v4 - - name: Set up macOS-specific paths and libraries + - name: Set UBUNTU tags env variables. + if: matrix.os == 'ubuntu-latest' + run: | + # Set "checking" variable to false by default. + echo "has_tags=false" >> $GITHUB_ENV + # Get your last commit message, not the merge commit. + text=$(git log -1 --no-merges --pretty=%B) + # Read the commit message into an array split by "#". + readarray -d "#" -t commit_message <<< "$text" + # Sanity check. + echo "the tags are: ${commit_message[1]}" + # Add tags and overwrite "checking" variable to true if there are tags. + if [[ "${commit_message[1]}" == *"@"* ]]; then + echo "spec_tags=${commit_message[1]}" >> $GITHUB_ENV + fi + + - name: Set macOS tags env variables. if: (matrix.os == 'macos-13') || (matrix.os == 'macos-14') + run: | + + # Set "checking" variable to false by default. + echo "has_tags=false" >> $GITHUB_ENV + # Get your last commit message, not the merge commit. + text=$(git log -1 --no-merges --pretty=%B) + # Read the commit message into an array split by "#". + echo $(echo $text|tr -d '\n') + commit_args=${text#*#} + # Sanity check. + echo "the tags are: ${commit_message[1]}" + # Add tags and overwrite "checking" variable to true if there are tags. + if [[ "${commit_args}" == *"@"* ]]; then + echo "spec_tags=${commit_args}" >> $GITHUB_ENV + fi + + - name: Set up macOS-specific paths and libraries + if: ((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && ${{ ! contains(env.spec_tags, '@nowheel') }} run: | # Symlink the correct gfortran compiler ln -s $(brew --prefix)/bin/gfortran-13 $(brew --prefix)/bin/gfortran @@ -66,6 +144,7 @@ jobs: echo "LLVMCLANG=$(brew --prefix llvm@15)" >> $GITHUB_ENV - name: Build wheels + if: ${{ ! contains(env.spec_tags, '@nowheel') }} uses: pypa/cibuildwheel@v2.17.0 env: CIBW_BUILD: ${{matrix.pyver}}-* @@ -76,6 +155,7 @@ jobs: LDFLAGS: "-L${{env.LIBOMPPATH }}/lib" - name: Upload Artifacts + if: ${{ ! contains(env.spec_tags, '@nowheel') }} uses: actions/upload-artifact@v4 with: name: cibw-wheels-${{ matrix.os }}-${{ matrix.pyver }}-${{ strategy.job-index }} @@ -83,6 +163,7 @@ jobs: build_wheels_pypy: name: Build PyPy wheels on ${{ matrix.os }} + if: false # if: github.event_name == 'pull_request' needs: run-all-tests runs-on: ${{ matrix.os }} diff --git a/.github/workflows/wheeltest.yml b/.github/workflows/wheeltest.yml index 5701b8ce..9d2e15df 100644 --- a/.github/workflows/wheeltest.yml +++ b/.github/workflows/wheeltest.yml @@ -31,7 +31,6 @@ jobs: echo "the tags are: ${commit_message[1]}" # Add tags and overwrite "checking" variable to true if there are tags. if [[ "${commit_message[1]}" == *"@"* ]]; then - echo "has_tags=true" >> $GITHUB_ENV echo "spec_tags=${commit_message[1]}" >> $GITHUB_ENV fi @@ -47,11 +46,9 @@ jobs: echo $(echo $text|tr -d '\n') commit_args=${text#*#} # Sanity check. - echo "Arguments are:" - echo $commit_args + echo "the tags are: ${commit_message[1]}" # Add tags and overwrite "checking" variable to true if there are tags. if [[ "${commit_args}" == *"@"* ]]; then - echo "has_tags=true" >> $GITHUB_ENV echo "spec_tags=${commit_args}" >> $GITHUB_ENV fi