name: Build and Push Docker Image on: push: branches: - 'release/**' - 'develop*' jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Compute image tags id: meta run: | VERSION=$(node -p "require('./package.json').version") BRANCH=${GITHUB_REF#refs/heads/} echo "version=${VERSION}" >> $GITHUB_OUTPUT if [[ "$BRANCH" == develop* ]]; then # Sanitise branch name for tag: replace slashes with dashes SAFE_BRANCH=$(echo "$BRANCH" | tr '/' '-') echo "tags=reg.i3omb.com/sofarr:${SAFE_BRANCH}" >> $GITHUB_OUTPUT echo "Building develop image ${SAFE_BRANCH} (version ${VERSION})" else RELEASE_NAME=${BRANCH#release/} TAGS="reg.i3omb.com/sofarr:${VERSION}" TAGS="${TAGS},reg.i3omb.com/sofarr:${RELEASE_NAME}" TAGS="${TAGS},reg.i3omb.com/sofarr:latest" echo "tags=${TAGS}" >> $GITHUB_OUTPUT echo "Building release image ${VERSION} from branch ${BRANCH}" fi - name: Build and push Docker image uses: docker/build-push-action@v5 with: context: . push: true tags: ${{ steps.meta.outputs.tags }} labels: | org.opencontainers.image.version=${{ steps.meta.outputs.version }} org.opencontainers.image.created=${{ github.event.head_commit.timestamp }}