forked from e-mission/e-mission-server
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Testing build only on successful tests
Github actions didn't have out of the box solution for running a workflow based on results of multiple workflows where ALL workflows must have completed successfully. We need this since both the test-with-docker and test-with-manual-install must pass. So this needs an "AND" logic. "workflow_run" is there but this triggers the dependent workflow when either of the workflow dependencies defined as prerequisites are completed. So this has an "OR" logic. ---- Found an alternative suggestion here: https://stackoverflow.com/a/75597437 This suggests converting the pre-requisite workflows into reusable workflows. These workflows can then be called in jobs in the workflow that needs these workflows to be run before. Finally, these jobs can be added as dependencies for the requisite job. In our scenario, two new jobs are added to the image_build_push.yml for each of the two tests environments. These will run parallelly. Then in the build image job, these jobs are added in the "needs" field, indicating that these jobs must pass successfully before running the build job.
- Loading branch information
1 parent
8adfed0
commit c2f2ed8
Showing
3 changed files
with
142 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,69 +5,86 @@ name: ubuntu-only-test-with-manual-install | |
# Controls when the action will run. Triggers the workflow on push or pull request | ||
# events but only for the master branch | ||
on: | ||
push: | ||
branches: | ||
- master | ||
- gis-based-mode-detection | ||
pull_request: | ||
branches: | ||
- master | ||
- gis-based-mode-detection | ||
# push: | ||
# branches: | ||
# - master | ||
# - gis-based-mode-detection | ||
# pull_request: | ||
# branches: | ||
# - master | ||
# - gis-based-mode-detection | ||
schedule: | ||
# * is a special character in YAML so you have to quote this string | ||
- cron: '5 4 * * 0' | ||
|
||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | ||
jobs: | ||
# This workflow contains a single job called "build" | ||
build: | ||
# The type of runner that the job will run on | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
matrix: | ||
os: [ubuntu-latest] | ||
workflow_call: | ||
|
||
# Steps represent a sequence of tasks that will be executed as part of the job | ||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | ||
- uses: actions/checkout@v2 | ||
- name: Run test-with-manual-install for 1 minute | ||
run: | | ||
echo "Starting 1-minute workflow" | ||
sleep 60 | ||
echo "1-minute workflow completed" | ||
- name: Success-Failure Test Case | ||
run: | | ||
echo "Test successful" && exit 0 | ||
# echo "Test failed" && exit 1 | ||
# # A workflow run is made up of one or more jobs that can run sequentially or in parallel | ||
# jobs: | ||
# # This workflow contains a single job called "build" | ||
# build: | ||
# # The type of runner that the job will run on | ||
# runs-on: ${{ matrix.os }} | ||
# strategy: | ||
# matrix: | ||
# os: [ubuntu-latest] | ||
|
||
# # Steps represent a sequence of tasks that will be executed as part of the job | ||
# steps: | ||
# # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | ||
# - uses: actions/checkout@v2 | ||
|
||
- name: Install and start MongoDB | ||
uses: supercharge/[email protected] | ||
with: | ||
mongodb-version: 4.4.0 | ||
# - name: Install and start MongoDB | ||
# uses: supercharge/[email protected] | ||
# with: | ||
# mongodb-version: 4.4.0 | ||
|
||
- name: Check existing version of miniconda | ||
shell: bash -l {0} | ||
run: conda info -a | ||
# - name: Check existing version of miniconda | ||
# shell: bash -l {0} | ||
# run: conda info -a | ||
|
||
- name: Install miniconda | ||
shell: bash -l {0} | ||
run: | | ||
source setup/setup_conda.sh Linux-x86_64 | ||
# - name: Install miniconda | ||
# shell: bash -l {0} | ||
# run: | | ||
# source setup/setup_conda.sh Linux-x86_64 | ||
|
||
- name: Check whether the CI environment variable is set | ||
shell: bash -l {0} | ||
run: | | ||
source setup/activate_conda.sh | ||
echo $CI | ||
# - name: Check whether the CI environment variable is set | ||
# shell: bash -l {0} | ||
# run: | | ||
# source setup/activate_conda.sh | ||
# echo $CI | ||
|
||
- name: Setup the emission environment for testing | ||
shell: bash -l {0} | ||
run: | | ||
conda --version | ||
which conda | ||
source setup/activate_conda.sh | ||
conda --version | ||
source setup/setup_tests.sh | ||
# - name: Setup the emission environment for testing | ||
# shell: bash -l {0} | ||
# run: | | ||
# conda --version | ||
# which conda | ||
# source setup/activate_conda.sh | ||
# conda --version | ||
# source setup/setup_tests.sh | ||
|
||
- name: Switch to emission and run the tests | ||
shell: bash -l {0} | ||
run: | | ||
source setup/activate_tests.sh | ||
conda --version | ||
./runAllTests.sh | ||
# - name: Switch to emission and run the tests | ||
# shell: bash -l {0} | ||
# run: | | ||
# source setup/activate_tests.sh | ||
# conda --version | ||
# ./runAllTests.sh | ||
|
||
- name: Teardown the test environment | ||
shell: bash -l {0} | ||
run: source setup/teardown_tests.sh | ||
# - name: Teardown the test environment | ||
# shell: bash -l {0} | ||
# run: source setup/teardown_tests.sh |