diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 00000000..6925e39b --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,56 @@ +name: publish_docker_image + +on: + push: + branches: + - "stable" + - "build-dev" + +jobs: + build: + runs-on: ubuntu-latest + env: + dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} + steps: + - + name: Get branch names. + id: branch-names + uses: tj-actions/branch-names@v8 + - + name: Checkout + uses: actions/checkout@v4 + - + name: Login to Docker Hub + if: ${{ env.dockerhub_username != '' }} + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - + name: Get current date + run: echo "NOW=$(date -u +'%Y-%m-%d')" >> $GITHUB_ENV + - + name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ github.repository }} + labels: | + org.${{ github.repository_owner }}.ontology-publisher.release-date=${{ env.NOW }} + org.${{ github.repository_owner }}.ontology-publisher.version=${{ steps.branch-names.outputs.current_branch }} + - + name: Build and push ${{ github.repository }}:${{ steps.meta.outputs.version }} + uses: docker/build-push-action@v5 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: ${{ env.dockerhub_username != '' }} + tags: ${{ github.repository }}:${{ steps.meta.outputs.version }} + annotations: ${{ steps.meta.outputs.annotations }} + labels: ${{ steps.meta.outputs.labels }}