Add Docker build and test workflow #6
Workflow file for this run
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 script is used to build a docker image and push it to docker hub | |
name: Build and Push Docker Image | |
on: | |
push: | |
branches: | |
[devel] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
# first we need to check out the code | |
steps: | |
- name: Set up Python 3.12 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.12 | |
- name: Check-out repository | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
# The docker image tag is the git release tag | |
# If there is no release tag, then we will use the branch name | |
# as the docker image tag | |
- name: Get latest tag name 2 | |
run: | | |
echo "LATEST_TAG_NEW=$(git describe --tags --abbrev=0 | sed 's/^v//')" >> "$GITHUB_ENV" | |
- name: Print latest tag name | |
run: | | |
printf "%s\n" "${LATEST_TAG_NEW}" | |
- name: Get branch name | |
run: | | |
echo "BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)" >> "$GITHUB_ENV" | |
- name: Print branch name | |
run: | | |
printf "%s\n" "${BRANCH_NAME}" | |
- name: Set docker image tag | |
run: | | |
if [ -z "${LATEST_TAG_NEW}" ]; then | |
echo "DOCKER_IMAGE_TAG=${BRANCH_NAME}" >> "$GITHUB_ENV" | |
else | |
echo "DOCKER_IMAGE_TAG=${LATEST_TAG_NEW}" >> "$GITHUB_ENV" | |
fi | |
- name: Print docker image tag | |
run: | | |
printf "%s\n" "${DOCKER_IMAGE_TAG}" | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Build | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: ./Dockerfile | |
push: true | |
tags: ${{ secrets.DOCKERHUB_USERNAME }}/nbiatoolkit:${{ env.DOCKER_IMAGE_TAG }} | |
- name: Test Image | |
run: | | |
docker run -it --rm --name nbiatoolkit-test \ | |
-v $(pwd)/:/home/nbiatoolkit/ \ | |
-w /home/nbiatoolkit/ \ | |
${{ secrets.DOCKERHUB_USERNAME }}/nbiatoolkit:${{ env.DOCKER_IMAGE_TAG }} \ | |
python -c "import nbiatoolkit; print(nbiatoolkit.__version__)" |