diff --git a/.github/workflows/build_docker_container.yml b/.github/workflows/build_docker_container.yml new file mode 100644 index 0000000..d4248da --- /dev/null +++ b/.github/workflows/build_docker_container.yml @@ -0,0 +1,74 @@ +name: build_container + +on: + push: + branches: + - "dev" + - "main" + # workflow_call: + # inputs: + # git_tag: + # required: true + # type: string + # docker_container_uri_str_list: + # required: true + # type: string + # index_url: # Use test pypi index when downloading from dev + # required: true + # type: string + +jobs: + build_container: + runs-on: ubuntu-latest + steps: + # Checkout repo + - uses: actions/checkout@v4 + + # Extract branch name + - name: Extract branch name + id: get_branch_name + shell: bash + run: | + echo "branch_name=${GITHUB_REF#refs/heads/}" >> "${GITHUB_OUTPUT}" + + # Get tag name + - name: Get Tag Name + id: get_tag_name + shell: bash + run: | + if [[ "${{ steps.get_branch_name.outputs.branch_name }}" == "main" ]]; then + echo "tag_name=latest" >> "${GITHUB_OUTPUT}" + else + echo "tag_name=dev" >> "${GITHUB_OUTPUT}" + fi + + # Use qemu to perform multiplatform builds + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + # Use docker buildx to build multi-platform containers + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + use: true + install: true + config-inline: | + [worker.oci] + max-parallelism = 2 + + # Log in to GitHub Container registry + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ github.token }} + + # Build and push docker images + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 + with: + context: ./ + platforms: linux/amd64 + push: true + tags: ghcr.io/umccr/cttso-ica-to-pieriandx:${{ steps.get_tag_name.outputs.tag_name }} \ No newline at end of file