name: Docker Publish on: workflow_call: inputs: image_name: required: false type: string default: 'solucetechnologies/portabase' image_name2: required: false type: string default: 'portabase/portabase' add_latest: required: false type: boolean default: false target: required: false type: string default: 'prod' dockerfile: required: false type: string default: './docker/dockerfile/Dockerfile' secrets: DOCKER_USERNAME: required: true DOCKER_PASSWORD: required: true DOCKER_USERNAME_2: required: true DOCKER_PASSWORD_2: required: true jobs: build-and-push: runs-on: ubuntu-latest permissions: packages: write contents: read steps: - name: Check out the repo uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set tags id: set-tags run: | REF_NAME=${GITHUB_REF#refs/tags/} TAGS="${{ inputs.image_name }}:$REF_NAME" TAGS2="${{ inputs.image_name2 }}:$REF_NAME" if [[ "${{ inputs.add_latest }}" == "true" ]]; then TAGS="$TAGS,${{ inputs.image_name }}:latest" fi echo "tags=$TAGS" >> $GITHUB_OUTPUT echo "tags=$TAGS2" >> $GITHUB_OUTPUT - name: Log in to Docker Hub account 1 uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push to solucetechnologies/portabase uses: docker/build-push-action@v6 with: context: . file: ${{ inputs.dockerfile }} push: true tags: ${{ steps.set-tags.outputs.tags1 }} target: ${{ inputs.target }} - name: Log in to Docker Hub account 2 uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a with: username: ${{ secrets.DOCKER_USERNAME_2 }} password: ${{ secrets.DOCKER_PASSWORD_2 }} - name: Build and push to portabase/portabase uses: docker/build-push-action@v6 with: context: . file: ${{ inputs.dockerfile }} push: true tags: ${{ steps.set-tags.outputs.tags2 }} target: ${{ inputs.target }}