Merge pull request #73 from cnescatlab/dependabot/pip/tests/py-1.11.0 #56
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
# Description | |
# =========== | |
# This workflow builds a docker image each time | |
# commits are pushed to GitHub or a pull request is opened. | |
# It also runs a container of this image to test it. | |
--- | |
name: CI | |
# This workflow is triggered each time commits are pushed to GitHub | |
# and also on each pull request (on the commit that would be created | |
# after the merge) but is not triggered if only markdown files were edited. | |
on: | |
push: | |
branches: | |
- "*" | |
paths-ignore: | |
- "*.md" | |
pull_request: | |
branches: | |
- "*" | |
paths-ignore: | |
- "*.md" | |
# Variables to configure the workflow | |
env: | |
DOCKERFILE_PATH: "." | |
DOCKERFILE_FILENAME: "Dockerfile" | |
DOCKER_IMAGE_NAME: "lequal/docker-cat" | |
jobs: | |
# Job that builds the image and upload it as an artifact | |
build: | |
name: Build the docker image | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build docker image | |
run: docker build -t $DOCKER_IMAGE_NAME $DOCKERFILE_PATH | |
- name: Save Docker image | |
run: docker image save -o image.tar $DOCKER_IMAGE_NAME | |
- name: Upload image as an artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: image | |
path: image.tar | |
# Job that tests the image | |
test: | |
name: Test the Docker image | |
runs-on: ubuntu-20.04 | |
needs: build | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Retrieve the image | |
uses: actions/download-artifact@v2 | |
with: | |
name: image | |
- name: Load the image | |
run: docker image load -i image.tar | |
# Run the tests | |
- name: Test docker image | |
run: | | |
echo -e "Results of the CI pipeline\n" > tests_logs.txt | |
cd tests/ | |
python3 -m pip install -r requirements.txt | |
python3 -m pytest -v |& tee -a ../tests_logs.txt | |
# Have the job fail if at least one test failed | |
- name: Check all tests passed | |
run: grep -v -q "FAILED" tests_logs.txt |