public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/vendors/microsoft/heads/main)] Refactor gcc build and test steps (#38)
@ 2021-04-16 20:36 Eugene Rozenfeld
  0 siblings, 0 replies; only message in thread
From: Eugene Rozenfeld @ 2021-04-16 20:36 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:ff046e366cfe82197ae69ed74a4a865aa514e9c7

commit ff046e366cfe82197ae69ed74a4a865aa514e9c7
Author: vitong <53017530+vitong@users.noreply.github.com>
Date:   Fri Feb 19 10:38:58 2021 -0800

    Refactor gcc build and test steps (#38)
    
    * Bring over workflow yamls and scripts to build and test gcc
    
    * Remove hack to find a particular build
    
    * Update configure script to work with new repo layout
    
    * update path to validate_failures.py
    
    * Add xfail file
    
    * Disable more failing ASAN tests
    
    * Update x86_64-pc-linux-gnu.xfail
    
    * Remove SHA paramter from DownloadBuildArtifact
    
    * Fix objdir paths
    
    * Update build-gcc with objdir path
    
    * Update objdir path when uploading artifact
    
    * Update build.yaml
    
    * Update gccWorkflow.py
    
    * Update build.yaml
    
    * Disable build-gcc.yaml
    
    * Test matrix
    
    * Add temp hack to get faster results
    
    * Add space for test-gcc.sh argument passing
    
    * Disable failfast
    
    * Add more gcc-c failures
    
    * Update x86_64-pc-linux-gnu.xfail
    
    * Temp remove hack
    
    * Update build.yaml
    
    * Move wait loop to a separate job so the test run doesn't exceed the 6h limit
    
    * Fix syntax erros
    
    * Fix missing logger def
    
    * Fix accesstoken
    
    * Debugging
    
    * More debug
    
    * Add hack to shortcut waiting on gcc build
    
    * Fix Reload method overloading
    
    * More debugigng
    
    * Don't print access token for future jobs
    
    * Zero out string in place with replace function
    
    * Fix printing
    
    * Remove shortcut hack
    
    * Remove commented out shortcut hack
    
    * Remove debugging prints
    
    * Address PR feedback
    
    * Fix error detection and reduce sleep times
    
    * Use composite for build step
    
    * Add composite branch for testing
    
    * Fix path to action
    
    * Add test composite
    
    * Temporarily add fetch-rebase to PR testing
    
    * Add test composite actioin
    
    * Temporarily comment out current ref checkout
    
    * Add python 3.7 and requests installation
    
    * Update fetch-rebase-test.yaml
    
    * Update config.py
    
    * Update action.yaml
    
    * Update action.yaml
    
    * Update test-gcc.yaml
    
    * Update test-gcc.yaml
    
    * Update gccWorkflow.py
    
    * Update fetch-rebase-test.yaml
    
    * Update build.yaml
    
    * Update build.yaml
    
    * Update test-gcc.yaml
    
    * Update config.py
    
    * Fix build being downloaded
    
    * Fix syntax
    
    * Fix inputs in yaml
    
    * Update inputs
    
    * Add missing slash
    
    * Print buildDownloaded
    
    * Add matrix chunking to fetch-rebase-test
    
    * Add dependencies yaml
    
    * Create action.yaml
    
    * Update action.yaml
    
    * Update build.yaml
    
    * Update fetch-rebase-test.yaml
    
    * Update test-gcc.yaml
    
    * Update fetch-rebase-test.yaml
    
    * Update action.yaml
    
    * Update gccWorkflow.py
    
    * Debug
    
    * Add outputs variable in fetch-rebase-test
    
    * Convert string param into bool
    
    * Increase artifact wait time to 30 minutes
    
    * Add unzipping of gcc build in fetch-rebase
    
    * Update downloadBuildArtifact.py
    
    * Debug
    
    * Add rename
    
    * Debug artifact downloading
    
    * Debug 2g
    
    * More debug
    
    * Test
    
    * Cleanup
    
    * Update branch ref
    
    * Address PR feedback
    
    * Add shell line in composite
    
    * Remove TODOs

Diff:
---
 .github/actions/build-composite/action.yaml   |  19 +++++
 .github/actions/rebase-gcc-master/action.yaml |  24 ++++++
 .github/actions/test-composite/action.yaml    |  36 ++++++++
 .github/scripts/config.py                     |   6 +-
 .github/scripts/downloadBuildArtifact.py      |  21 +++--
 .github/scripts/gccWorkflow.py                |  44 +++++++---
 .github/workflows/build.yaml                  |  20 ++---
 .github/workflows/fetch-rebase-test.yaml      | 118 +++++++++++++++++++++-----
 .github/workflows/test-gcc.yaml               |  31 +++----
 9 files changed, 239 insertions(+), 80 deletions(-)

diff --git a/.github/actions/build-composite/action.yaml b/.github/actions/build-composite/action.yaml
new file mode 100644
index 00000000000..1857886a994
--- /dev/null
+++ b/.github/actions/build-composite/action.yaml
@@ -0,0 +1,19 @@
+# Composite yaml that's re-usable in multiple workflows to build gcc
+inputs:
+  configjson:
+    description: 'Config object converted into json'
+    required: true
+    default: ''
+runs:
+  using: "composite"
+  steps: 
+    - name: Build gcc
+      run: | 
+        chmod +x .github/scripts/gccWorkflow.py
+        echo "$PYTHONPATH"
+        export PYTHONPATH=${PYTHONPATH}:${PWD}/.github/scripts
+        echo "$PYTHONPATH"
+        python -c 'import sys; from gccWorkflow import *; GccWorkflow.Build(sys.argv[1])' "${CONFIG_JSON}"
+      shell: bash
+      env:
+        CONFIG_JSON: ${{ inputs.configJson }}
\ No newline at end of file
diff --git a/.github/actions/rebase-gcc-master/action.yaml b/.github/actions/rebase-gcc-master/action.yaml
new file mode 100644
index 00000000000..2236536f501
--- /dev/null
+++ b/.github/actions/rebase-gcc-master/action.yaml
@@ -0,0 +1,24 @@
+# Composite yaml to rebase to upstream gcc master
+runs:
+  using: "composite"
+  steps: 
+    - name: Add remote
+      run: |
+        git remote add gcc git://gcc.gnu.org/git/gcc.git
+      shell: bash
+    - name: Fetch
+      run: |
+        git fetch gcc master
+      shell: bash
+    - name: Rebase
+      run: |
+        git log gcc/master -1
+        git config --global user.email "erozen@microsoft.com"
+        git config --global user.name "Eugene Rozenfeld"
+        git rebase gcc/master
+      shell: bash
+    - name: Check commits
+      run: |
+        git status
+        git log -15
+      shell: bash
diff --git a/.github/actions/test-composite/action.yaml b/.github/actions/test-composite/action.yaml
new file mode 100644
index 00000000000..b6f8b458fc5
--- /dev/null
+++ b/.github/actions/test-composite/action.yaml
@@ -0,0 +1,36 @@
+# Composite yaml that's re-usable in multiple workflows to run gcc tests
+inputs:
+  configjson:
+    description: 'Config object converted into json'
+    required: true
+    default: ''
+  testSet:
+    description: 'gcc test set to run'
+    required: true
+    default: ''
+  githubtoken:
+    description: 'GitHub auth token'
+    required: true
+    default: ''
+  buildDownloaded:
+    description: 'Whether the build is already available on the machine this composite action is running on'
+    required: true
+    default: true
+runs:
+  using: "composite"
+  steps: 
+    - name: Download build and run tests
+      run: | 
+        chmod +x .github/scripts/gccWorkflow.py
+        echo "$PYTHONPATH"
+        echo "$CONFIG_JSON"
+        export PYTHONPATH=${PYTHONPATH}:${PWD}/.github/scripts
+        echo "$PYTHONPATH"
+        echo "$BUILD_DOWNLOADED"
+        python -c 'import sys; from gccWorkflow import *; GccWorkflow.Test(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])' "${CONFIG_JSON}" "${TEST_SET}" "${GITHUB_TOKEN}" "${BUILD_DOWNLOADED}"
+      shell: bash
+      env:
+        CONFIG_JSON: ${{ inputs.configJson }}
+        TEST_SET: ${{ inputs.testSet }}
+        GITHUB_TOKEN: ${{ inputs.githubtoken }}
+        BUILD_DOWNLOADED: ${{ inputs.buildDownloaded }}
diff --git a/.github/scripts/config.py b/.github/scripts/config.py
index 44d01526540..96e81a3fc8d 100644
--- a/.github/scripts/config.py
+++ b/.github/scripts/config.py
@@ -19,7 +19,7 @@ class Config(object):
         logger.info('creating an instance of Config')
 
     @staticmethod
-    def Setup(githubObject, accessToken):
+    def Setup(githubObject, accessToken, isBuild):
         logger = GetLogger()
         
         logger.debug("In Setup")
@@ -34,8 +34,8 @@ class Config(object):
         logger.info("SHA = " + commit)
         workflowName = githubJson["workflow"]
 
-        # If this isn't the GCC build, wait for the GCC build to complete with the needed artifacts
-        if (workflowName != GetGccBuildName()):
+        # If this isn't a GCC build, wait for the GCC build to complete with the needed artifacts
+        if (not isBuild):
             gccBuildArtifactID = WaitOnGccBuild(commit, accessToken)
         else:
             gccBuildArtifactID = 0
diff --git a/.github/scripts/downloadBuildArtifact.py b/.github/scripts/downloadBuildArtifact.py
index 1dd8626d05d..51405afad54 100644
--- a/.github/scripts/downloadBuildArtifact.py
+++ b/.github/scripts/downloadBuildArtifact.py
@@ -55,13 +55,13 @@ def WaitOnGccBuild(commit, accessToken):
                 RaiseWorkflowError("Build run ID " + str(latestBuildId) + " failed")
         else:
             # Sleep for 30 seconds
-            sleepTime = 30
-            logger.error("Sleeping for " + str(sleepTime) + " seconds while waiting on build number " + str(latestBuildId) + " to finish")
-            time.sleep(sleepTime) # Sleep takes parameter in seconds
+            sleepTimeSeconds = 30
+            logger.error("Sleeping for " + str(sleepTimeSeconds) + " seconds while waiting on build number " + str(latestBuildId) + " to finish")
+            time.sleep(sleepTimeSeconds)
 
     logger.info("Workflow run ID = " + str(workflowRunID))
 
-    numArtifactRetries = 1
+    numArtifactRetries = 60
     # Add error checking for the number of artifacts
     while True:
         res = requests.get("https://api.github.com/repos/microsoft/test-gcc/actions/runs/" + str(workflowRunID) + "/artifacts", headers={'Authorization': "token " + accessToken})
@@ -81,12 +81,12 @@ def WaitOnGccBuild(commit, accessToken):
         numArtifactRetries = numArtifactRetries-1
 
         # We need this sleep here because even if the build job status is "completed", the gccBuild artifacts aren't
-        # immediately ready. If for some reason they aren't, sleep for a bit and retry once more.
+        # immediately ready. If for some reason they aren't, sleep for a bit and retry.
         
-        # Sleep for 3 minutes
-        sleepTime = 3
-        logger.info("Sleeping for " + str(sleepTime) + " minutes while waiting on artifacts for workflow run ID " + str(workflowRunID))
-        time.sleep(sleepTime * 60) # Sleep takes parameter in seconds
+        # Sleep for 30 seconds
+        sleepTimeSeconds = 30
+        logger.info("Sleeping for " + str(sleepTimeSeconds) + " seconds while waiting on artifacts for workflow run ID " + str(workflowRunID))
+        time.sleep(sleepTimeSeconds)
 
     logger.info("GCC Build artifact ID = " + str(gccBuildArtifactID))
 
@@ -95,7 +95,6 @@ def WaitOnGccBuild(commit, accessToken):
 def DownloadBuildArtifact():
     logger = GetLogger()
     gccBuildArtifactID = globals.configObj.gccBuildArtifactID
-
     # TODO: Support downloading build artifact without a config object setup so the script can be used outside of workflows by developers
     res = requests.get("https://api.github.com/repos/microsoft/test-gcc/actions/artifacts/" + str(gccBuildArtifactID) +"/zip", headers={'Authorization': "token " + globals.configObj.accessToken})
     
@@ -105,6 +104,6 @@ def DownloadBuildArtifact():
 
     logger.info("Unzipping zip")
     with zipfile.ZipFile('gccBuild.zip', 'r') as zip_ref:
-        zip_ref.extractall('gccBuild')   
+        zip_ref.extractall('gccBuild')
 
     logger.info("Done downloading")
diff --git a/.github/scripts/gccWorkflow.py b/.github/scripts/gccWorkflow.py
index e0b82413dd1..f686e3f6ce2 100644
--- a/.github/scripts/gccWorkflow.py
+++ b/.github/scripts/gccWorkflow.py
@@ -4,14 +4,15 @@ from downloadBuildArtifact import *
 import sys
 import globals
 from common import *
+import os.path 
 
 class GccWorkflow(object):
     
     # Setup the config object and wait for any runs necessary to finish before proceeding onto the next job section
     # to avoid exceeding the 6 hr limit on Github Actions that run on Github machines
     @staticmethod
-    def Init(githubContext, accessToken):
-        Config.Setup(githubContext, accessToken)
+    def Init(githubContext, accessToken, isInitForBuild=False):
+        Config.Setup(githubContext, accessToken, isInitForBuild)
 
     # Runs the configure script to set up gcc configuration environment prior to building and running tests
     # Creates the objdir directory as part of this process
@@ -47,26 +48,43 @@ class GccWorkflow(object):
             sys.exit(res.returncode)
 
     @staticmethod
-    def Test(configJson, testSet, accessToken):
+    def Test(configJson, testSet, accessToken, buildDownloadedStr):
         logger = GetLogger()
         logger.info("Gcc Test start")
+
+        # Convert the input string (because that's how it's passed via the composite template) into a boolean
+        buildDownloaded = buildDownloadedStr == 'True' or buildDownloadedStr == 'true'
+        Config.Reload(configJson, accessToken)  
         
-        Config.Reload(configJson, accessToken)
-        
-        logger.info("Downloading build artifact...")
-        try:
-            DownloadBuildArtifact()
-        except:
-            logger.error("Could not download build artifact")
-            RaiseWorkflowError("Error downloading build artifact for GCC workflow")
+        if (not buildDownloaded):
+            logger.info("Downloading gccBuild artifact from 'build' workflow...")
+            try:
+                DownloadBuildArtifact()
+            except:
+                logger.error("Could not download build artifact")
+                RaiseWorkflowError("Error downloading build artifact for GCC workflow")
+            
+            GccWorkflow.Configure()
+            res = subprocess.run('''
+                mv gccBuild/* ../objdir -f
+                ''',
+                shell=True, check=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+                
+            logger.info("mv cmd output = " + str(res.stdout, 'utf-8'))
+
+            if (res.returncode != 0):
+                logger.error("Failed to copy gccBuild into objdir directory")    
+                logging.shutdown()
+                sys.exit(res.returncode)
         
-        GccWorkflow.Configure()
+        # The gcc build should be in the objdir folder one level above
+        currentDir = os.getcwd()
+        assert os.path.isdir(currentDir + "/../objdir")
         
         # Copy over downloaded build artifact into objdir directory that was created in the configure script
         # For more details on the subprocess function and its parameters, 
         # see https://stackoverflow.com/questions/4256107/running-bash-commands-in-python
         res = subprocess.run('''
-            mv gccBuild/* ../objdir -f
             chmod +x .github/scripts/test-gcc.sh
             ''' 
             + ".github/scripts/test-gcc.sh " + testSet,
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 8e2da1b82a2..89ceaae0c42 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -33,10 +33,8 @@ jobs:
         uses: actions/setup-python@v1
         with:
           python-version: 3.7
-          
+        
       # Install requests package which is used in downloadBuildArtifact.py 
-      # We need this since python will import packages and even though we aren't using this script in this workflow,
-      # the GCC workflow relies on the download script so the script will end up getting pulled in
       - name: Pip Install Requests
         run: |
           python -m pip install requests
@@ -51,23 +49,15 @@ jobs:
           export PYTHONPATH=${PYTHONPATH}:${PWD}/.github/scripts
           echo "$PYTHONPATH"
           echo "${GITHUB_CONTEXT}"
-          python -c 'import sys; from gccWorkflow import *; GccWorkflow.Init(sys.argv[1], sys.argv[2])' "${GITHUB_CONTEXT}" "${GITHUB_TOKEN}"
+          python -c 'import sys; from gccWorkflow import *; GccWorkflow.Init(sys.argv[1], sys.argv[2], True)' "${GITHUB_CONTEXT}" "${GITHUB_TOKEN}"
         shell: bash
         env:
           GITHUB_CONTEXT: ${{ toJson(github) }}
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 
-      # build.yaml creates the gccBuild artifact
-      - name: Build gcc
-        run: | 
-          chmod +x .github/scripts/gccWorkflow.py
-          echo "$PYTHONPATH"
-          export PYTHONPATH=${PYTHONPATH}:${PWD}/.github/scripts
-          echo "$PYTHONPATH"
-          python -c 'import sys; from gccWorkflow import *; GccWorkflow.Build(sys.argv[1])' "${CONFIG_JSON}"
-        shell: bash
-        env:
-          CONFIG_JSON: ${{ steps.setupconfig.outputs.configJson }}
+      - uses: ./.github/actions/build-composite
+        with: 
+          configjson: ${{ steps.setupconfig.outputs.configJson }}
 
       - name: Move objdir to be in repo so it can be uploaded
         run: mv ../objdir objdir
diff --git a/.github/workflows/fetch-rebase-test.yaml b/.github/workflows/fetch-rebase-test.yaml
index 85133ec749f..ef9abc703bb 100644
--- a/.github/workflows/fetch-rebase-test.yaml
+++ b/.github/workflows/fetch-rebase-test.yaml
@@ -7,8 +7,10 @@ on:
   workflow_dispatch:
 
 jobs:    
-  fetch-rebase-test:
+  fetch-rebase-build:
     runs-on: ubuntu-18.04
+    outputs:
+      config: ${{ steps.printNoSecretJson.outputs.noSecretConfigJson }}
     steps:
       - name: Checkout
         uses: actions/checkout@v2
@@ -16,26 +18,104 @@ jobs:
           fetch-depth: 0
           submodules: recursive
           lfs: true
-          ref: current
-      - name: Add remote
+          ref: current 
+    
+      - name: Setup Python 3.7
+        uses: actions/setup-python@v1
+        with:
+          python-version: 3.7
+        
+      # Install requests package which is used in downloadBuildArtifact.py 
+      - name: Pip Install Requests
         run: |
-          git remote add gcc git://gcc.gnu.org/git/gcc.git          
-      - name: Fetch
+          python -m pip install requests
+        shell: bash
+        
+      - uses: ./.github/actions/rebase-gcc-master
+      
+        # Setup config
+      - name: Setup config
+        id: setupconfig
         run: |
-          git fetch gcc master
-      - name: Rebase
+          chmod +x .github/scripts/gccWorkflow.py
+          echo "$PYTHONPATH"
+          export PYTHONPATH=${PYTHONPATH}:${PWD}/.github/scripts
+          echo "$PYTHONPATH"
+          echo "${GITHUB_CONTEXT}"
+          python -c 'import sys; from gccWorkflow import *; GccWorkflow.Init(sys.argv[1], sys.argv[2], True)' "${GITHUB_CONTEXT}" "${GITHUB_TOKEN}"
+        shell: bash
+        env:
+          GITHUB_CONTEXT: ${{ toJson(github) }}
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          
+      - uses: ./.github/actions/build-composite
+        with: 
+          configjson: ${{ steps.setupconfig.outputs.configJson }}
+
+      - name: Move objdir to be in repo so it can be uploaded
+        run: mv ../objdir objdir
+
+      - name: Upload build output
+        uses: actions/upload-artifact@v2
+        with:
+          name: gccBuild
+          path: objdir
+
+      # This should be the last step on this machine since it will clear out fields in the config json
+      - name: Print No Secret Json
+        id: printNoSecretJson
         run: |
-          git log gcc/master -1
-          git config --global user.email "erozen@microsoft.com"
-          git config --global user.name "Eugene Rozenfeld"
-          git rebase gcc/master
-      - name: Check commits
+          chmod +x .github/scripts/config.py
+          export PYTHONPATH=${PYTHONPATH}:${PWD}/.github/scripts
+          python -c 'import sys; from config import *; Config.PrintNoSecretConfigJson(sys.argv[1])' "${CONFIG_JSON}"
+        shell: bash
+        env:
+          CONFIG_JSON: ${{ steps.setupconfig.outputs.configJson }}
+
+  fetch-rebase-test: 
+    needs: fetch-rebase-build
+    strategy:
+      matrix:
+        # If this test is updated, make sure you update the duplicate line in test-gcc.yaml
+        testSet: [check-target-libstdc++-v3, check-gcc-c++, check-gcc-c, check-target-libgomp, check-target-libitm, check-target-libatomic]
+      # Avoid cancelling other matrix chunks even if one fails
+      fail-fast: false        
+    runs-on: ubuntu-18.04
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+          submodules: recursive
+          lfs: true
+          ref: current 
+
+      - name: Setup Python 3.7
+        uses: actions/setup-python@v1
+        with:
+          python-version: 3.7
+        
+      # Install requests package which is used in downloadBuildArtifact.py 
+      - name: Pip Install Requests
         run: |
-          git status
-          git log -15
-                
-      - name: Run build script
-        run: | 
-          chmod +x .github/scripts/build-gcc.sh
-          .github/scripts/build-gcc.sh
+          python -m pip install requests
         shell: bash
+        
+      - uses: ./.github/actions/rebase-gcc-master
+
+      - name: Download gccBuild from fetch-rebase-build step
+        uses: actions/download-artifact@v2
+        with:
+          name: gccBuild
+          path: objdir
+
+      - name: Move objdir up one directory
+        run: mv objdir ../objdir
+        
+      # build.yaml creates the gccBuild artifact
+      - uses: ./.github/actions/test-composite
+        with: 
+          configjson: ${{needs.fetch-rebase-build.outputs.config}}
+          testSet: ${{ matrix.testSet }}
+          githubtoken: ${{ secrets.GITHUB_TOKEN }}
+          buildDownloaded: True
diff --git a/.github/workflows/test-gcc.yaml b/.github/workflows/test-gcc.yaml
index a994e1ec56c..831b171a2d2 100644
--- a/.github/workflows/test-gcc.yaml
+++ b/.github/workflows/test-gcc.yaml
@@ -43,7 +43,7 @@ jobs:
         with:
           python-version: 3.7
 
-      # Install requests package so we can use it for downloading the build artifacts in downloadBuildArtifact.py 
+      # Install requests package which is used in downloadBuildArtifact.py 
       - name: Pip Install Requests
         run: |
           python -m pip install requests
@@ -55,7 +55,7 @@ jobs:
         run: |
           chmod +x .github/scripts/gccWorkflow.py
           export PYTHONPATH=${PYTHONPATH}:${PWD}/.github/scripts
-          python -c 'import sys; from gccWorkflow import *; GccWorkflow.Init(sys.argv[1], sys.argv[2])' "${GITHUB_CONTEXT}" "${GITHUB_TOKEN}"
+          python -c 'import sys; from gccWorkflow import *; GccWorkflow.Init(sys.argv[1], sys.argv[2], False)' "${GITHUB_CONTEXT}" "${GITHUB_TOKEN}"
         shell: bash
         env:
           GITHUB_CONTEXT: ${{ toJson(github) }}
@@ -75,6 +75,7 @@ jobs:
     needs: init
     strategy:
       matrix:
+        # If this test is updated, make sure you update the duplicate line in fetch-rebase-test.yaml
         testSet: [check-target-libstdc++-v3, check-gcc-c++, check-gcc-c, check-target-libgomp, check-target-libitm, check-target-libatomic]
       # Avoid cancelling other matrix chunks even if one fails
       fail-fast: false        
@@ -95,26 +96,18 @@ jobs:
         uses: actions/setup-python@v1
         with:
           python-version: 3.7
-          
-      # Install requests package so we can use it for downloading the build artifacts in downloadBuildArtifact.py 
+        
+    # Install requests package which is used in downloadBuildArtifact.py 
       - name: Pip Install Requests
         run: |
           python -m pip install requests
         shell: bash
 
       # build.yaml creates the gccBuild artifact
-      - name: Download build and run tests
-        run: | 
-          chmod +x .github/scripts/gccWorkflow.py
-          echo ${{needs.init.outputs.config}}
-          echo "$PYTHONPATH"
-          echo "$CONFIG_JSON"
-          export PYTHONPATH=${PYTHONPATH}:${PWD}/.github/scripts
-          echo "$PYTHONPATH"
-          python -c 'import sys; from gccWorkflow import *; GccWorkflow.Test(sys.argv[1], sys.argv[2], sys.argv[3])' "${CONFIG_JSON}" "${TEST_SET}" "${GITHUB_TOKEN}"
-        shell: bash
-        env:
-          CONFIG_JSON: ${{needs.init.outputs.config}}
-          TEST_SET: ${{ matrix.testSet }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-      
\ No newline at end of file
+      - uses: ./.github/actions/test-composite
+        with: 
+          configjson: ${{needs.init.outputs.config}}
+          testSet: ${{ matrix.testSet }}
+          githubtoken: ${{ secrets.GITHUB_TOKEN }}
+          buildDownloaded: False
+


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-04-16 20:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-16 20:36 [gcc(refs/vendors/microsoft/heads/main)] Refactor gcc build and test steps (#38) Eugene Rozenfeld

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).